Я пытаюсь определить символ как реальный и положительный, чтобы отсеять нерелевантные корни (т.е. четыре корня, которые он мне дает, должны быть сокращены до двух. Как мне сделать sh это?
import sympy as sp
w=sp.Symbol('w',positive=True,real=True)
J2,k=sp.symbols('J2 k')
J=sp.Matrix([[3,0],[0,1]]) #need to be defined as sp.Matrix in order for det() functiont to work
K=sp.Matrix([[2,-1],[-1,1]])
J=J2*J
K=k*K
x=-w**2*J+K
xx=x.det()
ww=sp.solve(xx,w)
ww
output:
[-sqrt(6)*sqrt(-sqrt(13)*k/J2 + 5*k/J2)/6,
sqrt(6)*sqrt(-sqrt(13)*k/J2 + 5*k/J2)/6,
-sqrt(6)*sqrt(sqrt(13)*k/J2 + 5*k/J2)/6,
sqrt(6)*sqrt(sqrt(13)*k/J2 + 5*k/J2)/6]
Вы можете визуально увидеть, что для w = real, положительные элементы 1 и 3 в этом списке должны быть исключены