As Oscar said, the equation is essentially a quartic with symbolic 
coefficients for which it is not possible to write a single generally valid 
solution (since the solutions depend on the relationship between the 
coefficients);

eq = Eq(omega_nf, C0 + C1*omega**2 + C2*omega**4 + C3*omega**6 + C4*omega**8
)
d = Dict({C0: -k_phiphi*k_thetatheta*k_yy*k_zz + k_phiphi*k_yy*k_ztheta**2 + 
k_thetatheta*k_yphi**2*k_zz - k_yphi**2*k_ztheta**2, 
C1: J_d*k_phiphi*k_yy*k_zz + J_d*k_thetatheta*k_yy*k_zz - J_d*k_yphi**2*k_zz 
- J_d*k_yy*k_ztheta**2 + J_p**2*Omega**2*k_yy*k_zz + 0.382*k_phiphi*
k_thetatheta*k_yy + 0.382*k_phiphi*k_thetatheta*k_zz - 0.382*k_phiphi*
k_ztheta**2 - 0.382*k_thetatheta*k_yphi**2, 
C2: -J_d**2*k_yy*k_zz - 0.382*J_d*k_phiphi*k_yy - 0.382*J_d*k_phiphi*k_zz - 
0.382*J_d*k_thetatheta*k_yy - 0.382*J_d*k_thetatheta*k_zz + 0.382*J_d*k_yphi
**2 + 0.382*J_d*k_ztheta**2 - 0.382*J_p**2*Omega**2*k_yy - 0.382*J_p**2*
Omega**2*k_zz - 0.145924*k_phiphi*k_thetatheta, 
C3: 0.382*J_d**2*k_yy + 0.382*J_d**2*k_zz + 0.145924*J_d*k_phiphi + 0.145924
*J_d*k_thetatheta + 0.145924*J_p**2*Omega**2, 
C4: -0.145924*J_d**2, x: J_g1 + omega})



real_roots(eq.xreplace(d.subs({...}))) should very quickly give you the 
real solution when you put in for {...} the known values, e.g. `{J_d: 1, 
k_zz: 2, etc...}`. If the solution is written in terms of RootOf you can 
evaluate those to whateve precision is needed, e.g. 
`RootOf(x+x**3-4*x**4,1).n(3) -> 0.725`


BTW, I have been experimenting with a constant-extracting routine:

def cify(eq, v):
 from sympy.core.rules import Transform
 sym=numbered_symbols('C')
 def do(e, x):
 if e.is_Add:
 e = collect(e, x)
 c, fx = e.as_independent(x)
 s = next(sym)
 did[s] = c
 return e.func(s,fx)
 did={}
 e = None
 while e != eq:
 e = eq
 eq = eq.xreplace(Transform(lambda x: do(x, v), lambda x:(x.is_Add or x.
is_Mul) and x.as_independent(v)[0].args))
 r, d = cse(did.values())
 did = dict(zip(did.keys(), d))
 r = dict(r)
 return r, did, eq
eq = omega_nf_eq.rhs
print(cify(eq,omega))
({
x0: k_ztheta**2, 
x1: k_phiphi*x0, 
x2: k_yphi**2, 
x3: k_thetatheta*x2, 
x4: k_phiphi*k_thetatheta, 
x5: k_yy*k_zz, 
x6: 0.382*k_yy, 
x7: 0.382*k_zz, 
x8: J_d*k_phiphi, 
x9: J_d*k_thetatheta, 
x10: J_d*x2, 
x11: J_d*x0, 
x12: J_p**2*Omega**2, 
x13: 0.145924*k_phiphi, 
x14: J_d**2, 
x15: k_yy*x14
}, 
{
C0: k_yy*x1 + k_zz*x3 - x0*x2 - x4*x5, 
C1: -k_yy*x11 - k_zz*x10 - 0.382*x1 + x12*x5 - 0.382*x3 + x4*x6 + x4*x7 + x5
*x8 + x5*x9, 
C2: -k_thetatheta*x13 - k_zz*x15 + 0.382*x10 + 0.382*x11 - x12*x6 - x12*x7 - 
x6*x8 - x6*x9 - x7*x8 - x7*x9, 
C3: J_d*x13 + 0.145924*x12 + x14*x7 + 0.382*x15 + 0.145924*x9, 
C4: -0.145924*x14
}, 
C0 + C1*omega**2 + C2*omega**4 + C3*omega**6 + C4*omega**8)




On Thursday, June 6, 2019 at 6:13:23 PM UTC-5, pull_over93 wrote:
>
> Hi everybody, I'm tring to solve this equation without succes: omega_nf_eq 
> = 0
>
> import sympy as sym    
> m,J_d,J_p,y,Y,omega,Omega,phi,Phi,z,Z,theta,Theta,k_yy,k_zz,k_phiphi,k_yphi,k_ztheta,k_thetatheta,plane_xy1,plane_xy2,plane_xz1,plane_xz2
>  
> = 
> sym.symbols('m,J_d,J_p,y,Y,omega,Omega,phi,Phi,z,Z,theta,Theta,k_yy,k_zz,k_phiphi,k_yphi,k_ztheta,k_thetatheta,plane_xy1,plane_xy2,plane_xz1,plane_xz2',
>  
> real  = True) 
> t, omega_nf = sym.symbols('t, omega_nf', real = True)
>
> omega_nf_eq = sym.Eq(omega_nf, -J_d**2*k_yy*k_zz*omega**4 + 
> 0.382*J_d**2*k_yy*omega**6 + 0.382*J_d**2*k_zz*omega**6 - 
> 0.145924*J_d**2*omega**8 + J_d*k_phiphi*k_yy*k_zz*omega**2 - 
> 0.382*J_d*k_phiphi*k_yy*omega**4 - 0.382*J_d*k_phiphi*k_zz*omega**4 + 
> 0.145924*J_d*k_phiphi*omega**6 + J_d*k_thetatheta*k_yy*k_zz*omega**2 - 
> 0.382*J_d*k_thetatheta*k_yy*omega**4 - 0.382*J_d*k_thetatheta*k_zz*omega**4 
> + 0.145924*J_d*k_thetatheta*omega**6 - J_d*k_yphi**2*k_zz*omega**2 + 
> 0.382*J_d*k_yphi**2*omega**4 - J_d*k_yy*k_ztheta**2*omega**2 + 
> 0.382*J_d*k_ztheta**2*omega**4 + J_p**2*Omega**2*k_yy*k_zz*omega**2 - 
> 0.382*J_p**2*Omega**2*k_yy*omega**4 - 0.382*J_p**2*Omega**2*k_zz*omega**4 + 
> 0.145924*J_p**2*Omega**2*omega**6 - k_phiphi*k_thetatheta*k_yy*k_zz + 
> 0.382*k_phiphi*k_thetatheta*k_yy*omega**2 + 
> 0.382*k_phiphi*k_thetatheta*k_zz*omega**2 - 
> 0.145924*k_phiphi*k_thetatheta*omega**4 + k_phiphi*k_yy*k_ztheta**2 - 
> 0.382*k_phiphi*k_ztheta**2*omega**2 + k_thetatheta*k_yphi**2*k_zz - 
> 0.382*k_thetatheta*k_yphi**2*omega**2 - k_yphi**2*k_ztheta**2)
>
> solution = sym.solve(omega_nf_eq.rhs, omega, dict = True , force=True, 
> manual=True, set=True)
>
> Even after half an hour, sympy is unable to give a solution.
> I also tried sage math, but I had the same failure.
> Suggestions?
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/18a9fc5a-7569-4496-9f04-47c415e64f05%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to