有人可以告诉同情者如何表达O作为(全部)O_g,O_s,O_r,O_m的函数 其中O = O_g + O_s,O_g = O_r + O_m ? sympy.solve()最接近,但我无法访问解决方案表达式! sympy。版本 - > '1.1.2.dev'
import numpy as np;import sympy;sympy.init_printing();#help(sympy.init_printing)
O=sympy.Symbol("O")
O_g=sympy.Symbol("O_g")
O_s=sympy.Symbol("O_s")
Oe=sympy.Eq(O,O_g+O_s)
#then...
O_r=sympy.Symbol("O_r")
O_m=sympy.Symbol("O_m")
Og=sympy.Eq(O_g,O_r+O_m)
sympy.linsolve([Oe,Og],O)#empty set result
sympy.solve([Oe,Og],O)#ignores Og, as per documentation for solve
sympy.solve([Oe,Og])#give me what I want, in a dictionary along with every other possible solution...
list(_)#gives only the variables, not the solutions!
答案 0 :(得分:0)
我无法访问解决方案表达式
访问字典中的值有什么问题?
sol = sympy.solve([Oe, Og])
print(sol[O])
对于sympy.linsolve([Oe,Og],O)
,问题是方程之一没有你要解决的任何变量,因此无法表达解决方案。像
sympy.linsolve([Oe,Og], [O, O_g])
或
sympy.linsolve([Oe,Og], [O, O_r])
工作正常。