2017-05-10 10 views
0

a = [1;2;3];Wie man eine komplexe Zahl mit sich selbst quadriert

square_real = a'*a;

ans =

14 

a =

1 
2 
3 

In diesem Beispiel I die Zahlen mit sich selbst am Quadrierung in variable a (ein Array).

TO die gleiche Operation, d. H. Quadrat für eine komplexe Zahl mit sich selbst, was ist die Operation? Soll ich ctranspose oder konjugiert transponieren? Ich bin verwirrt.

>> ac=[1 + 1j; 2 + 2j; 3 + 0.1j] 

ac = 

    1.0000 + 1.0000i 
    2.0000 + 2.0000i 
    3.0000 + 0.1000i 

>> ac'*ac 

ans = 

    19.0100 

Ich weiß nicht, ob ich den richtigen Operator nehme.

UPDATE auf der Grundlage eingegangener Kommentare: Ich möchte nicht, dass die Elemente des komplexwertigen Arrays sein Vorzeichen ändern. Ich möchte das Array mit sich selbst multiplizieren, um eine skalare Antwort auf die Multiplikation zu bekommen. Um das zu tun, was sollte das Symbol in Mathe und das entsprechende Kommando in Matlab sein?

+2

Suchen Sie nach dem komplex konjugierten Transponieren (''') oder nach dem Transponieren ('.''). Sie sind die gleichen für reelle Zahlen, nicht für imaginäre obwohl. (Hinweis: Sie wollen die Transponierte) –

+0

Was ist Ihr Ziel, eine Funktion, die Polynom in den Eingaben oder der Norm des Vektors ist? – LutzL

+0

@AnderBiguri: Sei 'x' eine skalarwertige Zahl. Wenn es real bewertet ist, kann ich das Quadrat als "x^2" erhalten. Wenn 'x' ein skalarer Komplexwert ist, was ist die Operation, um das Quadrat der Zahl mit sich selbst zu tun? Als nächstes möchte ich für ein Array oder einen Vektor "a" (wie in meiner Frage erwähnt) die Zahlen im Array mit sich selbst für die 2 Fälle - real und imaginär - quadrieren. –

Antwort

1

Wie in den Kommentaren und von Ihnen erwähnt, benötigen Sie transpose .' hier nicht complex conjugate transpose '. Für reelle Zahlen sind Transponierte und komplex konjugierte Transponierte gleich, da kein Iota i oder j involviert ist. Also, was Sie suchen, ist dies:

ac = [1 + 1j; 2 + 2j; 3 + 0.1j]; 
req = ac.' * ac; 

Wenn Sie seine skalare Größe als Ausgabe möchten, verwenden Sie abs dh

abs(req) 

Soweit Notationen in Mathematik betrifft, transponieren ist in der Regel vertreten durch:
• Aᵀ
• A‘(es ist komplex Konjugat in MATLAB transponiert obwohl)

während komplexe konjugierte Transponierte ist in der Regel durch bezeichnet:
• Aᴴ
• (A) T
• A *

Aber Vorsicht, wie Wikipedia erwähnt:

In manchen Kontexten A* bezeichnet die Matrix mit komplexen konjugierten Einträgen, und die konjugierte Transponierung wird dann mit A*ᵀ oder Aᵀ*

bezeichnet

Es ist immer eine gute Übung, die Notationen zu definieren, die Sie in Ihrem Text verwenden werden.

+0

Vielen Dank für die Antwort. Eine letzte Sache, was ist das mathematische Symbol für "." Für komplexe Zahlen, so dass ich die Multiplikation mathematisch ausdrücken kann? Ich bin verwirrt, wenn ich "*" und wann "H" als mathematische Symbole verwenden soll. Die erste ist ein Konjugat und die letztere ist die konjugierte Transponierte. Also, in Matlab was mache ich? Ist ac, ac die konjugierte Funktion? –

+0

Ich habe gesehen, mathematisch zu verwenden '*' und nicht 'H' für komplexe conugate –

+0

Nur zur Bestätigung, für komplexe Zahlen ist die Matlab Operation' a. '* A' geschrieben mathematisch als 'A^H A'? –

Verwandte Themen