如何使用给定的变量和方程找到未知变量?
How to find the unknown variables using the given variables and equations?
我有一个方程 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
我有一个方程 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