使用不等式简化Sympy中的方程

时间:2016-12-13 07:30:42

标签: sympy reduce inequality

我在Sympy尝试使用简化方程式的标准工程方法,你知道一个变量比另一个大得多或小。例如,给出方程式

C1*R2*s+C1*R2+R1+R2

并且知道这一点

R1 >> R2

等式可以简化为

C1*R2*s+C1*R2+R1

你通常手工做的是除以R1,给出

C1*R2*s/R1+C1*R2/R1+1+R2/R1

然后你可以在任何地方看到R2 / R1 你可以将它设置为零,然后再乘以R1。我无法想象如何在Sympy中做到这一点。显然,分割步骤很容易,但我无法弄清楚如何进行搜索和替换步骤 - 只需使用subs给你

R1

这不是正确的答案。因素,扩展,收集,似乎没有让我到任何地方。

1 个答案:

答案 0 :(得分:2)

使用replace代替subs可以在这里工作。

C1, C2, R1, R2 = sp.symbols('C1, C2, R1, R2', real = True)
s = sp.symbols('s')

expr = C1*R2*s+C1*R2+R1+R2
print('original expression:', expr)

expr_approx = (R1 * ((expr/R1).expand().replace(R2/R1,0))).simplify()
print('approximate expression:', expr_approx)
original expression: C1*R2*s + C1*R2 + R1 + R2
approximate expression: C1*R2*s + C1*R2 + R1