could not find explicit solution

1 vue (au cours des 30 derniers jours)
saeed abdallah
saeed abdallah le 24 Avr 2018
Commenté : Walter Roberson le 24 Avr 2018
syms Ae ct cd clt clw cl
ht=2000.0976;m= 6300;h=0.29; Ve=0; g=9.81;
ro=1.006;vi=51.5;s=25.08;k=0;cm0=-0.0711;K=0.045;h0=-0.08;
st=7.79;lt=6.184;cw=1.716;cd0=0.03;
Vt=(st*lt)/(s*cw);
ztw=0.312;a=5.19;awr=1/57.3;aw0=-2/57.3;
[Ae,ct,cd,clt,clw,cl]=solve('(((2*m*g)/(ro*vi^2*s))*sin(Ae+Ve))-ct*cos(k)+cd*cos(Ae)-cl*sin(Ae)==0','(((2*m*g)/(ro*s*vi^2))*cos(Ae+Ve))-cl*cos(Ae)-cd*sin(Ae)-cd*sin(k)==0','(cm0+((h-h0)*clw))-(Vt*clt)+ct*(ztw/cw)==0','cl-clw-(clt*St/s)==0','cd-cd0-Kcl^2==0','clw-a(Ae+awr-aw0)==0','Ae','ct','cd','clt','clw','cl')

Réponses (1)

Walter Roberson
Walter Roberson le 24 Avr 2018
All of those assignments are ignored when you solve() something written in '' form. Remove all of the '' in the solve() call
  2 commentaires
saeed abdallah
saeed abdallah le 24 Avr 2018
Still facing the same problem
Walter Roberson
Walter Roberson le 24 Avr 2018

There is no closed form solution for those equations, even after you repair them.

Repaired equations:

Ae = sym('Ae');
cd = sym('cd');
cl = sym('cl');
clt = sym('clt');
clw = sym('clw');
ct = sym('ct');
K = 0.045;   %I wonder what the difference is between K and k ?
Ve = 0;
a = 5.19;
aw0 = -2/57.3;
awr = 1/57.3;
cd0 = 0.03;
cm0 = -0.0711;
cw = 1.716;
g = 9.81;
h = 0.29;
h0 = -0.08;
ht = 2000.0976;
k = 0;
lt = 6.184;
m =  6300;
ro = 1.006;
s = 25.08;
st = 7.79;
vi = 51.5;
ztw = 0.312;
Kcl = K*cl;   %a guess!
Vt=(st*lt)/(s*cw);
eqn = [(((2*m*g)/(ro*vi^2*s))*sin(Ae+Ve))-ct*cos(k)+cd*cos(Ae)-cl*sin(Ae)==0, ...
       (((2*m*g)/(ro*s*vi^2))*cos(Ae+Ve))-cl*cos(Ae)-cd*sin(Ae)-cd*sin(k)==0, ...
       (cm0+((h-h0)*clw))-(Vt*clt)+ct*(ztw/cw)==0, ...
       cl-clw-(clt*st/s)==0, ...
       cd-cd0-Kcl^2==0, ...
       clw-a*(Ae+awr-aw0)==0 ];
[Ae,ct,cd,clt,clw,cl] = solve(eqn,Ae,ct,cd,clt,clw,cl);
Ae, ct, cd, clt, clw, cl

There are an infinite number of real-valued solutions (I think).

Do iterative solving starting from the end of eqn: solve eqn(6) for Ae, substitute result into eqn(1:5), solve the last of those for cd, substitute result back into the others, solve the last of what is left for cl... then clt. This is solving in alphabetic order so far. You should now be down to two equations. Solve the last of them for ct (not clw which would be next in alphabetic order). This will give you two solutions because it involves a quadratic.

At this point, substitute the first solution for ct into the only remaining equation. That will give you something that there is no closed form solution for, but which has only one real-valued solution, which is approximately 1.68198547688709 . You can then do back substitution one by one on the forms for the other variables, leading you to one fundamental numeric solution path.

Now, go back and substitute the second solution for ct into that one last equation. This will give you something that there is no closed form solution for, and for which there are an infinite number of solutions and an infinite number of discontinuities.

The equation to be solved is

 eqn7 = (1/8891794514289623040000)*((-194334729004422424166400*clw+3477136244812957089792)*cos((100/519)*clw-10/191)^2+1677721600000*(773*sin((100/519)*clw-10/191)+39)*(((1126173500519986757632*cos((100/519)*clw-10/191)^2+16845518524734071775*cos((100/519)*clw-10/191)*sin((100/519)*clw-10/191)-273593677362757632)/cos((100/519)*clw-10/191)^2)^(1/2)+33554432000)*cos((100/519)*clw-10/191)+194334729004422424166400*clw+16424380561615719980625*sin((100/519)*clw-10/191)-3477136244812957089792)/sin((100/519)*clw-10/191)^2

If you just naively plot this you will probably be misled. A naive plot would miss the fact that this function goes complex valued for short segments. A sub-expression if this is the square root of

(1126173500519986757632*cos(100*clw*(1/519)-10/191)^2+16845518524734071775*cos(100*clw*(1/519)-10/191)*sin(100*clw*(1/519)-10/191)-273593677362757632)/cos(100*clw*(1/519)-10/191)^2

This is like A*cos(x)^2 + B*cos(x)*sin(x) - C, all divided by cos(x)^2. As cos(x) nears 0, A*cos(x)^2 nears 0, and B*cos(x)*sin(x) nears 0, leaving the expression controlled by the residue of the "near zeros" and the -C . That numerator therefore sometimes goes negative, and as cos(x) nears 0 you get a division by 0, so the subexpression tends towards sqrt(-infinity) near there.

I mention this because the actual zeros of the overall function are just after the places where the expression recovers and becomes real-valued again. Therefore you can predict the general location of the zeros of the expression by looking for the places where cos(100*clw*(1/519)-10/191) goes to 0, which is the places where 100*clw*(1/519)-10/191 goes to an odd multiple of Pi/2 .

Each of w values that zeros eqn7 gives you a numeric value for w that you can then back substitute through the solutions you found for the other variables until you have a complete set of values.

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by