i am facing Warning: Cannot find explicit solution

2 次查看(过去 30 天)
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 个评论
samicorp
samicorp 2017-3-20
sorry here it is: f=e1*i1*omega^2-((2*mu2)/(nu*omega)); f=diff(f,omega); f=simplify(f); critf=solve(f==0,omega);

请先登录,再进行评论。

回答(2 个)

Torsten
Torsten 2017-3-20
编辑:Torsten 2017-3-20
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.

John D'Errico
John D'Errico 2017-3-20
编辑:John D'Errico 2017-3-20
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.

类别

Help CenterFile Exchange 中查找有关 Number Theory 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by