i am facing Warning: Cannot find explicit solution
2 views (last 30 days)
Show older comments
i am trying to solve this equation but i face this error "Warning: Cannot find explicit solution". i would appreciate if anyone can take a look at this:
syms nu2 nus mu2 mus kapas kesi e2 es h2 e1 i1 omega
assume(nu2>0& nus>0& mu2>0& mus>0& kapas>0& kesi>0 &e2>0& es>0 &h2>0& e1>0 &i1>0 &omega>0);
kapa2 = 3 - 4*nu2;
mu2 = e2/(2*(1 + nu2));
mus = es/(2*(1 + nus));
kapas=3-4*nus;
kesi=mu2/mus;
alpha=(kesi*(kapas+1)-(kapa2+1))/(kesi*(kapas+1)+(kapa2+1));
beta=(kesi*(kapas-1)-(kapa2-1))/(kesi*(kapas+1)+(kapa2+1));
P=1/4/(beta-alpha)/(1+beta);
Q=1-alpha^2;
R=(1-alpha)*(alpha-1-2*beta);
S=(1+alpha)^2+2*beta*(alpha-1-2*beta);
B=(((P*R+1)*sinh(omega*h2)-(P*Q-(omega*h2))*cosh(omega*h2))/((omega*h2)^2-P*S*(P*R+1)+P*(S-R)*cosh(omega*h2)^2+P*Q*(sinh(2*omega*h2)-P*Q)));
D1=(-(P*S+1)*cosh(omega*h2)-(P*Q+omega*h2)*sinh(omega*h2))/((omega*h2)^2-P*S*(P*R+1)+P*(S-R)*cosh(omega*h2)^2+P*Q*(sinh(2*omega*h2)-P*Q));
C=P*(S*B-Q*D1);
A=P*(Q*B+R*D1);
nu=(0.5*(kapa2-1)*B-C-D1*omega*h2)*cosh(omega*h2)+(0.5*(kapa2-1)*D1-A-B*omega*h2)*sinh(omega*2);
ke=(-2*mu2*omega)/nu;
f=e1*i1*omega^2-((2*mu2)/(nu*omega));
f=diff(f,omega);
f=simplify(f);
critf=solve(f==0,omega);
2 Comments
Answers (2)
Torsten
on 20 Mar 2017
Edited: Torsten
on 20 Mar 2017
Seems your function f is to complicated for the "solve"-command to be successful.
Remove the "syms" command, assign values to the parameters and use "fzero" or "fsolve" to get the root(s) of your equation numerically.
Best wishes
Torsten.
0 Comments
John D'Errico
on 20 Mar 2017
Edited: John D'Errico
on 20 Mar 2017
I'm sorry, but this is simply not going to happen. Never. Mathematically impossible to solve this problem. Ok, at least unless your name is Harry Potter. Even Harry was never good at math. :)
It was proven long ago that the solution of a 5th degree polynomial or higher will in general have no analytical solution. Why is that pertinent to your problem? Even if we completely ignore the nasty sinh and cosh terms that would make it impossible because omega falls both inside and outside of those terms. Even if we ignore that, if we could reduce this to one equation by algebraic manipulations, it would be a very high order polynomial in omega.
So, again, Abel-Ruffini comes to bat. No explicit solution was found because none can be found. There is no mathematical algorithm that can solve the problem in terms of the coefficients and radicals. Give this to a bigger computer, one with more memory, even Skynet if you have access to it, the solution will still be impossible to find.
And because your problem is one with fully symbolic coefficients, no numerical solver can ever solve it either. Numerical solvers cannot work with symbolic coefficients. Wanting magic to happen is never sufficient. You need a wand, and you need to know how to use it. :)
At the very best, you could substitute values for ALL of the other unknown coefficients. EVERY SINGLE ONE, except for omega of course. Then you could try to use numerical solvers. There is no assurance a solution will exist there either. Ot there may be many solutions, some real, some complex. Even there, solving for all of the solutions will not be easy. And numerical solvers can sometimes be difficult.
See Also
Categories
Find more on Number Theory in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!