Фильтр решений с допущениями в симп - PullRequest
0 голосов
/ 30 марта 2019

У меня есть система из четырех переменных, связанных через два ограничения:

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)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...