sympyのsolveで行列の方程式の解をルート等をそのままの形で出力したい(解析解のまま?)
pythonのsympyで行列の方程式を解こうとしているのですが、解が数値解(?)で出力されてしまいます。
例えば、0.866025403784439ではなくsqrt(3)/2のように出力したい(解析解というのでしょうか?)のですが、可能でしょうか?
当方プログラミングの初心者でして質問内容におかしな点があるかも知れませんが、ご容赦ください。
該当のソースコード
Python
1from sympy import Matrix, solve, sqrt, var 2 3var('x, y, z, w') 4A = Matrix([[1/2,-sqrt(3)/2],[sqrt(3)/2,1/2]]) 5X = Matrix([[x,y],[z,w]]) 6 7ans = solve(X**2 - A, [x,y,z,w]) 8 9print(ans)
出力結果(見やすいように一部改行しています)
[(-0.866025403784439, 0.500000000000000, -0.500000000000000, -0.866025403784439), (0.866025403784439, -0.500000000000000, 0.500000000000000, 0.866025403784439), (-0.5*I, -0.866025403784439*I, 0.866025403784439*I, -0.5*I), (0.5*I, 0.866025403784439*I, -0.866025403784439*I, 0.5*I)]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/14 09:59