下記ソースコードは変数a,b,c,d,eの5元連立方程式を解くものです。
実行すると、
[1]
a = 2.20873478523683
b = -3.06122464206139 - 1.35525271560688e-20I
c = 1.47248985682455 + 0.e-20I
d = 0.0960000000000000
e = 0.144000000000000
[2]
a = -1.15104515778236 + 2.03287907341032e-20I
b = 2.53840859630394 - 2.71050543121376e-20I
c = -0.767363438521576 + 0.e-20I
d = 0.0960000000000000
e = 0.144000000000000
[3]
a = 9.7309770392122 - 2.16840434497101e-19I
b = -15.5982950653537 + 0.e-22I
c = 6.48731802614147 - 0.e-21I
d = 0.0960000000000000
e = 0.144000000000000
と解が表示されます。
a,b,cは虚部も含んだ複素数として算出されています。
ここでa,b,cの実部のみ、また絶対値をprintさせる方法を知りたいです。
ご存じの方は教えていただけないでしょうか。
よろしくお願い致します。
Python
1from sympy import Symbol 2from sympy import solve 3from sympy import pprint 4 5a = Symbol('a'); 6b = Symbol('b'); 7c = Symbol('c'); 8d = Symbol('d'); 9e = Symbol('e'); 10 11exp1 = a+b+c-d*a*b-d*a*c-e*a*c-e*b*c+d*e*a*b*c-1; 12exp2 = a+b+c-0.62; 13exp3 = d+e-0.24; 14exp4 = d*a-e*c; 15exp5 = e-1.5*d; 16 17result = solve((exp1, exp2, exp3, exp4, exp5),dict=True); 18for i, r in enumerate(result, start=1): #解の組を配列毎にわけている。 19 print("[{}]" .format(i)); 20 for s in [a,b,c,d,e]: 21 print("{} = {} ".format(s, r[s]));
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。