2016-12-24 11 views
0

は、私が読んでいる本によると、なぜSymPyは本の逆行列結果を私に見せてくれなかったのですか?

matrix

の逆行列は

inverse matrixです。

場合 = E ^(π*(2/3)* J)、jの位相が90°であるが、aのそれは120°であることだけを複素数j、等。

だから私はSymPyでこれを試してみました:

from sympy import * 
a = symbols('a') 
T = Matrix([ 
[1, 1, 1], 
[1, a**2, a], 
[1, a, a**2] 
]) 
simplify(T.inv()) 

をこれはIPythonで結果である:全くの本の中で逆行列のように見えるしていません

IPython


なぜ私はこれを手に入れましたか?
そして、SymPyを使ってどのようにして結果を得ることができますか?

答えて

3

編集後、aはパラメータではなく、正確な値、つまり-0.5 + i*sqrt(3)/2を持つことが明らかです。 SymPyにその値が何であるかを伝えないと、それはパラメータとして扱われ、逆行列はそのように見えます。

from sympy import * 

a = -0.5 + I*sqrt(3)/2 

T = Matrix([ 
[1, 1, 1], 
[1, a**2, a], 
[1, a, a**2] 
]) 

invT = Matrix([ 
[1, 1, 1], 
[1, a, a**2], 
[1, a**2, a] 
]) 

simplify(1/3*(T*invT)) 

をし、予想通り、これは恒等行列を与える:しかし、あなたは正しい値をaを与える場合は、すべてが動作します。


これは私のオリジナルの答えだった:それは間違っているので、あなたは、あなたの本によって与えられた結果を得ることができません

Emathelp.netはSymPyで見つかった結果が正しい、とsymbolab.comはあなたが* -1を掛ける場合は単位行列を得ることはありませんので、あなたの本が提供する結果は、間違っていることを示していることを確認します。

+0

申し訳ありませんが、結果に影響するかもしれないa = e ^(π*(2/3)* j)を明らかにしていませんでした。 –

関連する問題