4
Kapitel 4 Komplexe Zahlen Der Umgang mit komplexen Zahlen erfordert in MatLab keine speziellen Darstellungsfor- men, da MatLab routinem¨ aßig alle Variablen als Matrizen mit komplexen Elementen be- trachtet. So liefert MatLb auf die Eingabe sqrt(-5) ohne weitere Kommentare die Antwort ans = 0 + 1.4142i, d.h. eine komplexe L¨ osung. 1 4.1 Darstellungsformen Die imagin¨ are Einheit wird in MatLab durch i oder j dargestellt. Eine komplexe Zahl c, i, j bestehend aus einem Realteil a und einem Imagin¨ arteil b onnen wir in MATLAB schreiben als >> a=2;b=3; c=a+b*i c= 2.0000 + 3.0000i Die direkte Eingabe der komplexen Zahl als >> c=2+3i c= 2.0000 + 3.0000i ist ebenfalls m¨ oglich, ebenso wie die Bestimmung von Real- und Imagin¨ arteil mit Hilfe der Funktionen real und imag: real imag >> c=2+3i; real(c)= ans = 2 >> imag(c) = ans = 3 Das konjugiert Komplexe einer Zahl ergibt sich durch ihre Spiegelung an der x-Achse bzw. durch Vorzeichenwechsel im Imagin¨ arteil. MatLab kennt als Abk¨ urzung f¨ ur die Bestimmung der konjugiert komplexen den Befehl conj. conj Mit Hilfe des Befehls compass stellt MatLab komplexe Zahlen in einem Polarplot dar, compass 1 Die Antwort ist nat¨ urlich unbefriedigend, da wir eine zweite L¨ osung erwarten: auch der negative Wert von ans erf¨ ullt die Gleichung. MatLab gibt bei dem Befehl sqrt nur jeweils einen Wert zur¨ uck: zum einen kann die zweite L¨ osung daraus leicht gefunden werden, zum anderen kann dadurch die Funktion sqrt auch auf Vektoren oder Matrizen angewandt werden, ohne dass deren Struktur durch das Auftreten der zweiten L¨ osung ver¨ andert wird. Eine M¨ oglichkeit, in MtLab beide L¨ osungen f¨ ur die Wurzel zu erhalten, ist die Verwendung von roots, d.h. die Frage nach -5 wird ¨ uberf¨ uhrt in die Suche nach den Nullstellen des Polyonoms x 2 + 5. Oder in MatLab-Codierung: roots([1 0 5]) mit den Antworten 0 + 2.2361i und 0 - 2.2361i. 47

Komplexe Zahlen - · PDF fileKapitel 4 Komplexe Zahlen Der Umgang mit komplexen Zahlen erfordert in MatLab keine speziellen Darstellungsfor-men, da MatLab routinem¨aßig alle

  • Upload
    lamthuy

  • View
    215

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Komplexe Zahlen -  · PDF fileKapitel 4 Komplexe Zahlen Der Umgang mit komplexen Zahlen erfordert in MatLab keine speziellen Darstellungsfor-men, da MatLab routinem¨aßig alle

Kapitel 4Komplexe Zahlen

Der Umgang mit komplexen Zahlen erfordert in MatLab keine speziellen Darstellungsfor-men, da MatLab routinemaßig alle Variablen als Matrizen mit komplexen Elementen be-trachtet. So liefert MatLb auf die Eingabe sqrt(-5) ohne weitere Kommentare die Antwortans = 0 + 1.4142i, d.h. eine komplexe Losung.1

4.1 Darstellungsformen

Die imaginare Einheit wird in MatLab durch i oder j dargestellt. Eine komplexe Zahl c, i, j

bestehend aus einem Realteil a und einem Imaginarteil b konnen wir in MATLAB schreibenals

>> a=2;b=3; c=a+b*i ←↩c =

2.0000 + 3.0000i

Die direkte Eingabe der komplexen Zahl als

>> c=2+3i ←↩c =

2.0000 + 3.0000i

ist ebenfalls moglich, ebenso wie die Bestimmung von Real- und Imaginarteil mit Hilfe derFunktionen real und imag: real

imag>> c=2+3i; real(c)= ←↩ans =

2>> imag(c) = ←↩ans =

3

Das konjugiert Komplexe einer Zahl ergibt sich durch ihre Spiegelung an der x-Achse bzw.durch Vorzeichenwechsel im Imaginarteil. MatLab kennt als Abkurzung fur die Bestimmungder konjugiert komplexen den Befehl conj. conj

Mit Hilfe des Befehls compass stellt MatLab komplexe Zahlen in einem Polarplot dar, compass

1Die Antwort ist naturlich unbefriedigend, da wir eine zweite Losung erwarten: auch der negative Wert vonans erfullt die Gleichung. MatLab gibt bei dem Befehl sqrt nur jeweils einen Wert zuruck: zum einen kanndie zweite Losung daraus leicht gefunden werden, zum anderen kann dadurch die Funktion sqrt auch aufVektoren oder Matrizen angewandt werden, ohne dass deren Struktur durch das Auftreten der zweiten Losungverandert wird. Eine Moglichkeit, in MtLab beide Losungen fur die Wurzel zu erhalten, ist die Verwendungvon roots, d.h. die Frage nach

√−5 wird uberfuhrt in die Suche nach den Nullstellen des Polyonoms x2 + 5.

Oder in MatLab-Codierung: roots([1 0 5]) mit den Antworten 0 + 2.2361i und 0 - 2.2361i.

47

Page 2: Komplexe Zahlen -  · PDF fileKapitel 4 Komplexe Zahlen Der Umgang mit komplexen Zahlen erfordert in MatLab keine speziellen Darstellungsfor-men, da MatLab routinem¨aßig alle

48 KAPITEL 4. KOMPLEXE ZAHLEN

1

2

3

4

30

210

60

240

90

270

120

300

150

330

180 0

Abbildung 4.1: Darstellung komplexer Zahlen in der Gauß’schen Zahlenebene mit compass

ein Beispiel ist in Abb. 4.1 gegeben. Zur Darstellung mehrerer komplexer Zahlen muss nachdem ersten compass-Befehl ein hold on gegeben werden, da MatLab mit jedem Aufruf voncompass ein neues Bild offnet. Alternativ kann man die Realteile der verschiedenen komplexenZahlen in einen Vektor x und ihre Imaginarteile in einen anderen Vektor y schreiben und danndiese Vektoren an die Funktion ubergeben: compass(x,y).

Die Umwandlung in eine Polardarstellung R,ϑ kann mit Hilfe der Befehle angle und absangle

abs erfolgen:

c=2+3i; theta = angle(c) ←↩theta =

0.9821R = abs(c) ←↩R =

3.6056

MatLab bedient sich der gleichen Algorithmen, die wir auch von Hand verwenden wurden:angle(z) = atan((img(z)/real(z)) und abs(z) = sqrt(real(z).∧2 + img(z).∧2). Dader Winkel aus der Umkehrfunktion des Tangens bestimmt wird, ist er nicht eindeutig. Et-waige Abweichungen um π mussen daher von Hand korrigiert werden – oder mit Hilfe einesSkripts, vgl. Aufgabe 18.

Die Ruckwandlung aus der Polarform in die kartesische Darstellung erfolgt mit Hilfe derEuler’schen Formel

eiϕ = cos ϕ + i sinϕ

als

R=2.5; theta=pi/3; Z=R.*exp(i*theta) ←↩Z =

1.2500 + 2.1651 i

4.2 Rechnen mit komplexen Großen

Da MATLAB intern alle Variablen als komplex behandelt, konnen alle MATLAB-Operationenauch mit komplexen Variablen ausgefuhrt werden.

Allerdings sind die Besonderheiten komplexer Zahlen zu berucksichtigen. Als Beispiel seidas Skalarprodukt erwahnt. Im Reellen erhalten wir das Skalarprodukt als

~a ·~b =∑

i

(aibi)

12. Januar 2005 c© M.-B. Kallenrode

Page 3: Komplexe Zahlen -  · PDF fileKapitel 4 Komplexe Zahlen Der Umgang mit komplexen Zahlen erfordert in MatLab keine speziellen Darstellungsfor-men, da MatLab routinem¨aßig alle

4.3. PLOTTEN KOMPLEXER GROSSEN 49

−1 −0.5 0 0.5 1−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

0.2

0.4

0.6

0.8

1

30

210

60

240

90

270

120

300

150

330

180 0

Abbildung 4.2: Links: Plotten komplexer Großen am Beispiel der sich aus der zehnten undzwanzigsten Wurzel von 1 ergebenden n-Ecke; Rechts: gleiche Werte statt mit plot mitcompass dargestellt

oder in einer MatLab-tauglichen Formulierung c = sum(a.*b). Eine direkte Anwendungdieses Ausdrucks auf komplexe Zahlen ist nicht sinnvoll: das Skalarprodukt wird zu Bestim-mung des Betrages eines Vektors oder einer komplexen Zahl verwendet. Ein Betrag ist abereine positive reelle Zahl. Der Vektor ~a = (i, 0, 0) dagegen liefert mit sich selbst multipliziert-1 und damit eine negative Große. Daher wird bei komplexen Großen der Vektor nicht mitsich selbst sondern mit seinem konjugiert komplexen multipliziert.

Diese Erweiterung gilt allgemein: um das Skalarprodukt aus zwei komplexen Vektoren ~aund ~b zu bilden, wird vom ersten Vektor das konjugiert Komplexe genommen: ~c = ~a∗ · ~b.MATLAB berucksichtigt die Rechenregel automatisch: verwenden wir die Funktion dot furdas Skalarprodukt, so wird diese von MATLAB interpretiert als c = sum(conj(a).*b), d.h.MATLAB erzeugt das Skalarprodukt auf folgende Weise: es wird das konjugiert Komplexedes ersten Vektors ~a erzeugt mit Hilfe der Funktion conj(a). Dieses wird als Array betrach-tet und elementweise multipliziert mit dem Vektor ~b: conj(a).*b. Damit haben wir einenVektor erhalten, dessen einzelne Komponenten jeweils die Produkte aus den entsprechendenKomponenten des konjugiert komplexen ersten Vektors und des normalen zweiten Vektorssind. Uber diese Komponenten ist zu summieren, so dass sich die oben gegebene Funktion c= sum(conj(a).*b) ergibt. Sind die Vektoren reell, so kann die gleiche Funktion verwendetwerden, da eine relle Zahl mit ihrer konjugiert komplexen identisch ist.

4.3 Plotten komplexer Großen

Eine komplexe Große besteht aus zwei Komponenten, ihrem Real- und ihrem Imaginarteil.Verwenden wir eine komplexe Große beim Aufruf der Funktion plot, so plottet MATLABden Imaginarteil gegen den Realteil.

Die Befehlssequenz

>> t = 0:pi/10:2*pi; plot(exp(i*t),’-o’); axis equal ←↩

z.B. erzeugt ein 20-Eck, durch Anderung der Schrittweite in t konnen auch andere n-Eckemit gleicher Sequenz erzeugt werden. Die hier verwendete Funktion ist nichts anderes als diekomplexe Wurzel aus 1. Ein Beispiel fur ein 10- und ein 20-Eck ist im linken Teil von Abb. 4.2gegeben.

Die Funktion compass interpretiert ebenfalls den Real- und Imaginarteil jeweils als die x-und y-Komponente eines Vektors, verbindet jedoch nicht auf einander folgende Wertepaaresondern jeweils Null mit dem Wertepaar:

c© M.-B. Kallenrode 12. Januar 2005

Page 4: Komplexe Zahlen -  · PDF fileKapitel 4 Komplexe Zahlen Der Umgang mit komplexen Zahlen erfordert in MatLab keine speziellen Darstellungsfor-men, da MatLab routinem¨aßig alle

50 KAPITEL 4. KOMPLEXE ZAHLEN

>> t = 0:pi/10:2*pi; compass(exp(i*t)); axis equal ←↩

liefert das Bild im rechten Teil von Abb. 4.2.Andere sehr interessante Varianten von Plots komplexer Großen finden sich be den MatLab-

Demos im Unterpunkt Graphics unter dem Thema Functions of Complex Variables.

Aufgaben

Aufgabe 18 Schreiben Sie ein MatLab-Fragment, mit dessen Hilfe Sie uberprufen konnen, ob die

Funktion angle den korrekten oder einen um π verschobenen Winkel zuruck gegeben hat.

12. Januar 2005 c© M.-B. Kallenrode