Komplexe Rechnung < komplexe Zahlen < Analysis < Oberstufe < Schule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 22:24 Sa 04.12.2004 | Autor: | shifty |
Hallo,
unser Prof. hat uns in Programmierung ein Beispiel programmiert, auf dem wir dann aufsetzen sollten.
Nun alle Liebe zum Praxisbezug in der Analysis, aber es ist ganz und gar falsch, oder?
Complex mult (Complex c2)
{
Complex CHilf = new Complex();
CHilf.real = real * c2.real - imag * c2.imag;
CHilf.imag = real * c2.imag + imag * c2.real;
return CHilf;
}
So wird doch nie und nimmer der richtige Imaginärteil herauskommen!!
Sie berücksichtigt nicht, dass bei i² ein -1 erzeugt wird und beim letzten Term ein Vorzeichenwechsel entsteht.
Wo wir gerade dabei sind, die Division ist auch falsch oder?
Complex div (Complex c2)
{
Complex CHilf = new Complex();
CHilf.real = (real * c2.real + imag * c2.imag)/
(c2.real * c2.real + c2.imag * c2.imag);
CHilf.imag = (c2.real * imag - real * c2.imag)/
(c2.real * c2.real + c2.imag * c2.imag);
return CHilf;
}
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 01:16 So 05.12.2004 | Autor: | Palin |
Sieht aber richtig aus.
(a+ib)*(c+id)= (ac+aid+cib+ib*ic) da ib*ic =-1*dc
= ac-dc+( aid+aid)
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 12:04 So 05.12.2004 | Autor: | Loddar |
Moin Shifty,
> Nun alle Liebe zum Praxisbezug in der Analysis, aber es ist
> ganz und gar falsch, oder?
Warum so negativ??
Beide Rechenoperationen sind völlig richtig!!
> Complex mult (Complex c2)
> {
> Complex CHilf = new Complex();
> CHilf.real = real * c2.real - imag * c2.imag;
> CHilf.imag = real * c2.imag + imag * c2.real;
> return CHilf;
> }
>
> So wird doch nie und nimmer der richtige Imaginärteil
> herauskommen!!
> Sie berücksichtigt nicht, dass bei i² ein -1 erzeugt wird
> und beim letzten Term ein Vorzeichenwechsel entsteht.
Dieser Vorzeichenwechsel wird doch in folgender Zeile durch das Minuszeichen berücksichtigt:
> CHilf.real = real * c2.real - imag * c2.imag
> Wo wir gerade dabei sind, die Division ist auch falsch
> oder?
Siehe oben: alles OK !!
Grüße Loddar
PS: In der Antwort von Palin muß es heißen:
$(a + i*b) * (c + i*d) = ac + i*ad + i*bc + [mm] i^2*bd [/mm] = ac + i*ad + i*bc - bd = (ac-bd) + i*(ad+bc)$
|
|
|
|