Ich habe ein Programm, das den Nullraum einer Matrix mithilfe von scipy null_space berechnet. Mein Code funktioniert absolut perfekt, wenn die Matrix real ist, scheint aber den Ergebnissen in MATLAB für komplexe Matrizen zu widersprechen.
Zum Beispiel
Code: Select all
[[ 1. +0.j 0. +0.j 0. +0.j -0.28867513+0.5j]
[ 0. +0.j 1. +0.j 0. +0.j -0.28867513-0.5j]
[ 0. +0.j 0. +0.j 1. +0.j 0.57735027-0.j ]]
wenn es in scipy.linalg.null_space eingebunden wird, ergibt sich:
Code: Select all
[[ 0.24235958-0.32852474j]
[ 0.16333098+0.37415192j]
[-0.40569056-0.04562718j]
[ 0.70267665+0.0790286j ]]
Die exakt gleiche Matrix in MATLAB ergibt:
Code: Select all
0.2235 - 0.3134i
0.1596 + 0.3502i
-0.4151 + 0.2949i
0.6636 + 0.0639i
Diese sind bis zur Skalierung eindeutig nicht gleich. Was passiert also? Ist Scipy für komplexe Matrizen einfach nicht sehr genau oder mache ich etwas falsch? Auch hier funktioniert mein Code absolut perfekt, wenn die Matrizen real sind. Vielen Dank im Voraus!