Login
Newsletter
Werbung

Do, 12. Februar 2015, 15:00

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

z = a − bi. Beides kann in Octave mit Funktionen bestimmt werden:

>> 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·e 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)

Die Vektordarstellung von z=4 + 2i

Jens Dörpinghaus

Die Vektordarstellung von z=4 + 2i

Funktionen hingegen muss man parametrisieren, denn eine komplexe Funktion CC 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 R im unteren linken Bereich aktiv, womit die Darstellung rotiert werden kann.

Der Plot von plot3(a,imag(f(a+i*3)),real(f(a+i*3)),'-r')

Jens Dörpinghaus

Der Plot von plot3(a,imag(f(a+i*3)),real(f(a+i*3)),'-r')

Der Plot von plot3(a,imag(sin(a+i)),real(sin(a+i)),'-r')

Jens Dörpinghaus

Der Plot von plot3(a,imag(sin(a+i)),real(sin(a+i)),'-r')

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.

  • Das Werk darf vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden, Abwandlungen und Bearbeitungen des Werkes müssen unter den gleichen Bedingungen weitergegeben werden. Der Name des Autors/Rechteinhabers muss in der von ihm festgelegten Weise genannt werden.

    - Weitere Informationen
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung