使用sympy中的假设过滤解决方案集

时间:2019-03-30 17:44:56

标签: python sympy

我有一个通过两个约束连接的四个变量的系统:

L = sympy.Symbol('L')
C = sympy.Symbol('C')
Z = sympy.Symbol('Z')
omega = sympy.Symbol('omega')

constraints = [
    Z - sympy.sqrt(L/C),
    omega - 1 / sympy.sqrt(L*C)]

如果我们要求

sympy.nonlinsolve(constraints, [omega, C, Z])

结果是

{
  ({omega} \ {0}, 1/(L*omega**2), -L*omega),
  ({omega} \ {0}, 1/(L*omega**2), L*omega),  # <- Want
  ({omega} \ {0}, 1/(L*omega**2), -sqrt(L**2*omega**2)),
  ({omega} \ {0}, 1/(L*omega**2), sqrt(L**2*omega**2))
}

告诉sympy所有参数都是正数和实数的正确方法是什么,以便它可以抛出除第二个解集之外的所有参数(并且知道omega> 0)?

0 个答案:

没有答案