我正在尝试使用Sympy解决方程式。我已经使用for循环生成了相关方程,并且已经具有r1,r2,r3和c的值。我想用SymPy解决r4。但是,当我尝试使用Solveset时,我没有得到r4的解决方案,而是
这是我的方程式,当我尝试使用Solveset时:
101.947638 - (c/2)*(exp(-0.252054794520548*r1 - 0.252054794520548*r2 - 0.00273972602739726*r3) + exp(-0.252054794520548*r1 - 0.252054794520548*r2 - 0.476712328767123*r3 - 1.02465753424658*r4) + exp(-0.252054794520548*r1 - 0.252054794520548*r2 - 0.476712328767123*r3 - 0.526027397260274*r4) + exp(-0.252054794520548*r1 - 0.252054794520548*r2 - 0.476712328767123*r3 - 0.0246575342465753*r4) - 100*exp(-0.252054794520548*r1 - 0.252054794520548*r2 - 0.476712328767123*r3 - 1.02465753424658*r4)
我得到:
ConditionSet(r4, Eq(-1.0625*2.71828182845905**(-0.252054794520548*r1 - 0.252054794520548*r2 - 0.00273972602739726*r3) - 101.0625*2.71828182845905**(-0.252054794520548*r1 - 0.252054794520548*r2 - 0.476712328767123*r3 - 1.02465753424658*r4) - 1.0625*2.71828182845905**(-0.252054794520548*r1 - 0.252054794520548*r2 - 0.476712328767123*r3 - 0.526027397260274*r4) - 1.0625*2.71828182845905**(-0.252054794520548*r1 - 0.252054794520548*r2 - 0.476712328767123*r3 - 0.0246575342465753*r4) + 100.0918, 0), Complexes(S.Reals x S.Reals, False))
有人可以帮助我使用SymPy求解此方程吗?
答案 0 :(得分:0)
您似乎做了这样的事情:
>>> from sympy.abc import x, y
>>> eq = y + 2*x
>>> for x in range(2):
... print(eq)
y + 2*x
y + 2*x
请注意,循环中的值为x
并不能为您神奇地将值替换为eq
。创建x
时的eq
定义是一个符号。循环开始时,x变成in,但是eq
的定义没有改变;这就是Python的工作方式。您需要做的是对要替换为方程式的值使用不同的变量,如下所示:
>>> for xi in range(2):
... print(eq.subs({x: xi}))
y
y + 2
因此,在尝试求解方程之前,请确保用r1,r2,r3和c的值替代。