Sympy 微分方程:如何将一些 lhs 项移到 rhs?
Sympy Differential Equation : How to mowe some lhs terms to rhs?
我有以下微分方程:eq1
t = sp.Symbol("t")
f1=sp.Function("f1")(t)
f2=sp.Function("f2")(t)
eq1=sp.Eq(f1+f1.diff(t,2)-f2+f2.diff(t,1),0)
为了将 f2 项从 lhs 移动到 rhs,我使用了以下代码:
eq2=sp.Eq(eq1.lhs.subs(f2,0).doit(),eq1.lhs.subs(f1,0).doit()*-1)
这样做是正确的方法还是有更简单的解决方案?
感谢您的回答。
这可能会失败,例如你在某处有一个 1/f1
。我会这样做:
In [18]: eq1
Out[18]:
2
d d
f₁(t) - f₂(t) + ───(f₁(t)) + ──(f₂(t)) = 0
2 dt
dt
In [19]: lhs, neg_rhs = (eq1.lhs - eq1.rhs).as_independent(f2, as_Add=True)
In [20]: eq2 = Eq(lhs, -neg_rhs)
In [21]: eq2
Out[21]:
2
d d
f₁(t) + ───(f₁(t)) = f₂(t) - ──(f₂(t))
2 dt
dt
https://docs.sympy.org/latest/modules/core.html#sympy.core.expr.Expr.as_independent
我有以下微分方程:eq1
t = sp.Symbol("t")
f1=sp.Function("f1")(t)
f2=sp.Function("f2")(t)
eq1=sp.Eq(f1+f1.diff(t,2)-f2+f2.diff(t,1),0)
为了将 f2 项从 lhs 移动到 rhs,我使用了以下代码:
eq2=sp.Eq(eq1.lhs.subs(f2,0).doit(),eq1.lhs.subs(f1,0).doit()*-1)
这样做是正确的方法还是有更简单的解决方案?
感谢您的回答。
这可能会失败,例如你在某处有一个 1/f1
。我会这样做:
In [18]: eq1
Out[18]:
2
d d
f₁(t) - f₂(t) + ───(f₁(t)) + ──(f₂(t)) = 0
2 dt
dt
In [19]: lhs, neg_rhs = (eq1.lhs - eq1.rhs).as_independent(f2, as_Add=True)
In [20]: eq2 = Eq(lhs, -neg_rhs)
In [21]: eq2
Out[21]:
2
d d
f₁(t) + ───(f₁(t)) = f₂(t) - ──(f₂(t))
2 dt
dt
https://docs.sympy.org/latest/modules/core.html#sympy.core.expr.Expr.as_independent