no explicit solution for solve
이전 댓글 표시
I tried to solve a system of non-linear equations and it came back with the comment,"Explicit solution could not be found." Here is the part of codes with involved the equations. Anything undefined in the syms were considered as the constants:
value=50;
syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 positive
solve(...
x10==value,...
x11==N*x8^4/(x8^4+Kb*x9^4),...
x1*(lamQs+muD)==(kPqloop*x11+kPqunloop*(N-x11))*(Kq*x5)/(1+Kq*x5),...
x2*(lamQl+muD)==(kPqloop*x11+kPqunloop*(N-x11))/(1+Kq*x5),...
x3*(lamQar+muD+kar*x5+kar*x4)==kPqloop*x11+kPqunloop*(N-x11),...
x4*(lamX+muD+kar*x3)==kxloop*x11+kxunloop*(N-x11),...
x5*(lamXar+muD+kar*x3)==kXarloop*x11+kXarunloop*(N-x11)-(kPqloop*x11+kPqunloop*(N-x11))*(Kq*x5)/(1+Kq*x5),...
x6*lameI==ki*(x1+x2)*DDensity-kTi*(x6-x8)*DDensity,...
x8*(lamiI+muD)==kTi*(x6-x8),...
x9*(lamiC+muD)==kTc*(x7-x9),...
x10*(lamPrgB+muD)==kdown*x2,...
x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11);
and here are the constants:
N=5/0.602;
muD=log(2)/(45*60);
%muR=3.35*10^-4;
kPqloop=7.23*10^-3;
kPqunloop=8.871*10^-2;
kXarloop=1.021*10^-2;
kXarunloop=1.21*10^-3;
kxloop=8.23*10^-3;
kxunloop=1.21*10^-3;
kQarloop=1.8*10^-3;
kQarunloop=1.08*10^-2;
kconj=2*10^-4;
ki=10^-2;
p=10^-11;
kTi=10^-4;
kTc=10^-3;
%kc=1.2*10^-1;
kar=10^-3;
Kq=4.43;
Kb=10^6;
kdown=10^-3;
lamQs=10^-4;
lamQl=0.1;
lamXar=3.851*10^-4;
lamQar=10^-3;
lamX=10^-4;
lameI=10^-6;
lameC=10^-6;
lamiI=10^-6;
lamiC=10^-6;
lamPrgB=10^-3;
DDensity=5*10^7;
Thanks
댓글 수: 5
John D'Errico
2014년 7월 30일
So either no solution exists, or it could not find an analytical solution to what is equivalent to a high order polynomial. Lets see, total order > 4 implies something about whether analytical solutions will exist in general.
Vu
2014년 7월 30일
John D'Errico
2014년 7월 30일
There will surely be no analytical solution. Just a brief glance tells me this is equivalent to some high order polynomial, greater than 5th order. So never will a solution be found.
However, what is the problem with using a numerical solver? Try it. You will need to supply starting values of course.
Vu
2014년 7월 31일
John D'Errico
2014년 7월 31일
So? That is the problem with ANY root finding problem. Only global methods can try to find all solutions, and even they can only try. Given a nasty enough problem, any root finder can have problems finding them all.
Accept that you will never be able to find all solutions using exact methods. Wanting to do the impossible is a nice goal, but still impossible.
답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!