我有一个方程a-bcd/e = 0
,其中缺少任何一个变量,而给出了所有其他变量。我目前的方法是使用sympy和很多if条件。
a,b,c,d,e = [sympy.Dummy()]*5
equation = a-b*c*d/e
if a is None:
a = sympy.solve(equation.subs([(b,12),(c,10),(d,5),(e,4)]),a)
elif b is None:
.....
elif e is None:
e = sympy.solve(equation.subs([(b,12),(c,10),(d,5),(a,3)]),e)
当需要实现多个方程时,这是非常麻烦的,并且绝对不可扩展。有更好的方法吗?
使用循环迭代所有变量,当您点击None
时,求解它。
伪代码
For variable in ListOfVariables
if variable is None:
knowns = # Make a list of tuples of everything except this variable
answer = solve(knowns, solve)
break