Octave – Teil 2: Funktionen, Graphen und komplexe Zahlen
Der Real- und Imaginärteil kann dabei mit den beiden einfachen Funktionen imag
und real
erhalten werden:
>> imag(z) ans = 2 >> real(z) ans = 4
Der Betrag einer komplexen Zahl z = a + bi ist definiert als |z|=√{a2+b2}, also als Länge der Geraden von (0,0) nach (a,b), und das komplex Konjugierte als
>> abs(z) ans = 4.4721 >> zk = conj(z) zk = 4 - 2i
Eine kurze Probe zeigt
>> z*zk ans = 20 >> abs(z)^2 ans = 20.000
Ansonsten können komplexe Zahlen wie normale Variablen verwendet werden. Bei einigen Funktionen müssen die Argumente aber entsprechend angepasst werden. Hier ist also Vorsicht angebracht. Will man beispielsweise eine komplexe Zahl in Polarkoordinatenschreibweise z=r·eiϕ umwandeln, so gibt es die Funktion [theta, r] = cart2pol (x, y)
, der jedoch Real- und Imaginärteil als x- und y-Wert übergeben werden müssen:
>> cart2pol([real(z),imag(z)]) ans = 0.46365 4.47214
Alternativ kann man auch die Funktion angle(z)
verwenden, um diese Darstellung in mehreren Schritten zu bekommen. Die Funktion gibt den Winkel zwischen dem Vektor (a,b) und der x-Achse an:
>> angle(z) ans = 0.46365
Um komplexe Zahlen darzustellen gibt es beispielsweise die Funktion compass
, die einen Vektor vom Koordinatenursprung zeichnet:
>>compass(z)
Funktionen hingegen muss man parametrisieren, denn eine komplexe Funktion C
→ C
kann nur mit vier Dimensionen korrekt dargestellt werden. Entweder zeichnet man also nur Real- oder Imaginärteil des Ergebnisses auf oder verändert nur Real- oder Imaginärteil des Parameters.
Grundsätzlich können dreidimensionale Plots genauso wie mit dem Befehl plot
erstellt werden. Der Befehl plot3
hat dazu einfach einen dritten Parameter: plot3(x,y,z)
.
>> a=-10:0.1:10; >> plot3(a,imag(f(a+i*3)),real(f(a+i*3)),'-r')
Hier wird also nur der Realteil der Funktion f(x)=x2 verändert und auf der y-Achse der Imaginärteil und auf der y-Achse der Realteil aufgetragen. Zur Erinnerung: -
verbindet alle Punkte und r
färbt den Graphen rot.
Nun ist auch das Icon
im unteren linken Bereich aktiv, womit die Darstellung rotiert werden kann.
Interessanter ist allerdings die Darstellung der Funktion (y,z)=sin(x+1):
>> a=-50:0.1:50; >> plot3(a,imag(sin(a+i)),real(sin(a+i)),'-r')
Im folgenden dritten Teil wird stärker in die Programmierung eingestiegen und es werden die fundamentalen Matrizen und Vektoren eingeführt. Dabei fließen auch einige Aspekte der numerischen Mathematik mit ein.
Autoreninformation
Jens Dörpinghaus arbeitet seit vielen Jahren mit Matlab und Octave.
Dieser Artikel ist in freiesMagazin 02/2015 (ISSN 1867-7991) erschienen. Veröffentlichung mit freundlicher Genehmigung.