I have 5 nonlinear algebraic equations with many terms, fsolve command is ineffective in solving these nonlinear equations.
1 view (last 30 days)
Show older comments
Hi All. I have a system of 5 nonlinear equations that is expected to have three roots (three solutions).
I try to solve these nonlinear equations with fsolve. when I run the code, I get errors, like no solutions found, or fslove stopped prematurely. etc. It does not achieve anysolution, and sometimes achieve only one of the solutions.
Thus I decided to use 5 for loops for initial guesses in the fsolve command to get all the solutions, but running the program in this approach takes too much time. Even after two days, it couldn't solve the system of equations.
Is there a way to solve this problem?I would be grateful if you guide me on how I can solve the system of equations correctly.
for V_DC=1:1:400
for inia=0:0.5:1.5
for inib=0:0.5:1.5
for inic=0:0.5:1.5
for inid=0:0.5:1.5
for inie=0:0.5:1.5
u0=[inia inib inic inid inie]
f_u=@(u)[A1*u(1)^3+B1*u(2)^3+Z1*u(3)^3+D1*u(4)^3+E1*u(5)^3+F1*u(1)^2*u(2)+G1*u(1)^2*u(3)+H1*u(1)^2*u(4)+I1*u(1)^2*u(5)+J1*u(2)^2*u(1)+K1*u(2)^2*u(3)+L1*u(2)^2*u(4)+M1*u(2)^2*u(5)+N1*u(3)^2*u(1)+O1*u(3)^2*u(2)+P1*u(3)^2*u(4)+Q1*u(3)^2*u(5)+R1*u(4)^2*u(1)+S1*u(4)^2*u(2)+T1*u(4)^2*u(3)+V1*u(4)^2*u(5)+Aa1*u(5)^2*u(1)+Ba1*u(5)^2*u(2)+Za1*u(5)^2*u(3)+Da1*u(5)^2*u(4)+Ea1*u(1)*u(2)*u(3)+Fa1*u(1)*u(2)*u(4)+Ga1*u(1)*u(2)*u(5)+Ha1*u(1)*u(3)*u(4)+Ia1*u(1)*u(3)*u(5)+Ja1*u(1)*u(4)*u(5)+Ka1*u(2)*u(3)*u(4)+La1*u(2)*u(3)*u(5)+Ma1*u(2)*u(4)*u(5)+Na1*u(3)*u(4)*u(5)+Oa1*u(1)^2+Pa1*u(2)^2+Qa1*u(3)^2+Ra1*u(4)^2+Sa1*u(5)^2+Ta1*u(1)*u(2)+Va1*u(1)*u(3)+Ab1*u(1)*u(4)+Bb1*u(1)*u(5)+Zb1*u(2)*u(3)+Db1*u(2)*u(4)+Eb1*u(2)*u(5)+Fb1*u(3)*u(4)+Gb1*u(3)*u(5)+Hb1*u(4)*u(5)+Ib1*u(1)+Jb1*u(2)+Kb1*u(3)+Lb1*u(4)+Mb1*u(5)+(P*C41)+(-alfa2*V_DC^2*L_e/(3*2))*(((phi1((1-L_e)/2)*(w0((1-L_e)/2)+phi1((1-L_e)/2)*u(1)+phi2((1-L_e)/2)*u(2)+phi3((1-L_e)/2)*u(3)+phi4((1-L_e)/2)*u(4)+phi5((1-L_e)/2)*u(5)))/(1+q*(w0((1-L_e)/2)+phi1((1-L_e)/2)*u(1)+phi2((1-L_e)/2)*u(2)+phi3((1-L_e)/2)*u(3)+phi4((1-L_e)/2)*u(4)+phi5((1-L_e)/2)*u(5))^s))+4*((phi1(((1-L_e)/2)+(L_e/2))*(w0(((1-L_e)/2)+(L_e/2))+phi1(((1-L_e)/2)+(L_e/2))*u(1)+phi2(((1-L_e)/2)+(L_e/2))*u(2)+phi3(((1-L_e)/2)+(L_e/2))*u(3)+phi4(((1-L_e)/2)+(L_e/2))*u(4)+phi5(((1-L_e)/2)+(L_e/2))*u(5)))/(1+q*(w0(((1-L_e)/2)+(L_e/2))+phi1(((1-L_e)/2)+(L_e/2))*u(1)+phi2(((1-L_e)/2)+(L_e/2))*u(2)+phi3(((1-L_e)/2)+(L_e/2))*u(3)+phi4(((1-L_e)/2)+(L_e/2))*u(4)+phi5(((1-L_e)/2)+(L_e/2))*u(5))^s))+((phi1((1+L_e)/2)*(w0((1+L_e)/2)+phi1((1+L_e)/2)*u(1)+phi2((1+L_e)/2)*u(2)+phi3((1+L_e)/2)*u(3)+phi4((1+L_e)/2)*u(4)+phi5((1+L_e)/2)*u(5)))/(1+q*(w0((1+L_e)/2)+phi1((1+L_e)/2)*u(1)+phi2((1+L_e)/2)*u(2)+phi3((1+L_e)/2)*u(3)+phi4((1+L_e)/2)*u(4)+phi5((1+L_e)/2)*u(5))^s)))
A2*u(1)^3+B2*u(2)^3+Z2*u(3)^3+D2*u(4)^3+E2*u(5)^3+F2*u(1)^2*u(2)+G2*u(1)^2*u(3)+H2*u(1)^2*u(4)+I2*u(1)^2*u(5)+J2*u(2)^2*u(1)+K2*u(2)^2*u(3)+L2*u(2)^2*u(4)+M2*u(2)^2*u(5)+N2*u(3)^2*u(1)+O2*u(3)^2*u(2)+P2*u(3)^2*u(4)+Q2*u(3)^2*u(5)+R2*u(4)^2*u(1)+S2*u(4)^2*u(2)+T2*u(4)^2*u(3)+V2*u(4)^2*u(5)+Aa2*u(5)^2*u(1)+Ba2*u(5)^2*u(2)+Za2*u(5)^2*u(3)+Da2*u(5)^2*u(4)+Ea2*u(1)*u(2)*u(3)+Fa2*u(1)*u(2)*u(4)+Ga2*u(1)*u(2)*u(5)+Ha2*u(1)*u(3)*u(4)+Ia2*u(1)*u(3)*u(5)+Ja2*u(1)*u(4)*u(5)+Ka2*u(2)*u(3)*u(4)+La2*u(2)*u(3)*u(5)+Ma2*u(2)*u(4)*u(5)+Na2*u(3)*u(4)*u(5)+Oa2*u(1)^2+Pa2*u(2)^2+Qa2*u(3)^2+Ra2*u(4)^2+Sa2*u(5)^2+Ta2*u(1)*u(2)+Va2*u(1)*u(3)+Ab2*u(1)*u(4)+Bb2*u(1)*u(5)+Zb2*u(2)*u(3)+Db2*u(2)*u(4)+Eb2*u(2)*u(5)+Fb2*u(3)*u(4)+Gb2*u(3)*u(5)+Hb2*u(4)*u(5)+Ib2*u(1)+Jb2*u(2)+Kb2*u(3)+Lb2*u(4)+Mb2*u(5)+(P*C42)+(-alfa2*V_DC^2*L_e/(3*2))*(((phi2((1-L_e)/2)*(w0((1-L_e)/2)+phi1((1-L_e)/2)*u(1)+phi2((1-L_e)/2)*u(2)+phi3((1-L_e)/2)*u(3)+phi4((1-L_e)/2)*u(4)+phi5((1-L_e)/2)*u(5)))/(1+q*(w0((1-L_e)/2)+phi1((1-L_e)/2)*u(1)+phi2((1-L_e)/2)*u(2)+phi3((1-L_e)/2)*u(3)+phi4((1-L_e)/2)*u(4)+phi5((1-L_e)/2)*u(5))^s))+4*((phi2(((1-L_e)/2)+(L_e/2))*(w0(((1-L_e)/2)+(L_e/2))+phi1(((1-L_e)/2)+(L_e/2))*u(1)+phi2(((1-L_e)/2)+(L_e/2))*u(2)+phi3(((1-L_e)/2)+(L_e/2))*u(3)+phi4(((1-L_e)/2)+(L_e/2))*u(4)+phi5(((1-L_e)/2)+(L_e/2))*u(5)))/(1+q*(w0(((1-L_e)/2)+(L_e/2))+phi1(((1-L_e)/2)+(L_e/2))*u(1)+phi2(((1-L_e)/2)+(L_e/2))*u(2)+phi3(((1-L_e)/2)+(L_e/2))*u(3)+phi4(((1-L_e)/2)+(L_e/2))*u(4)+phi5(((1-L_e)/2)+(L_e/2))*u(5))^s))+((phi2((1+L_e)/2)*(w0((1+L_e)/2)+phi1((1+L_e)/2)*u(1)+phi2((1+L_e)/2)*u(2)+phi3((1+L_e)/2)*u(3)+phi4((1+L_e)/2)*u(4)+phi5((1+L_e)/2)*u(5)))/(1+q*(w0((1+L_e)/2)+phi1((1+L_e)/2)*u(1)+phi2((1+L_e)/2)*u(2)+phi3((1+L_e)/2)*u(3)+phi4((1+L_e)/2)*u(4)+phi5((1+L_e)/2)*u(5))^s)))
A3*u(1)^3+B3*u(2)^3+Z3*u(3)^3+D3*u(4)^3+E3*u(5)^3+F3*u(1)^2*u(2)+G3*u(1)^2*u(3)+H3*u(1)^2*u(4)+I3*u(1)^2*u(5)+J3*u(2)^2*u(1)+K3*u(2)^2*u(3)+L3*u(2)^2*u(4)+M3*u(2)^2*u(5)+N3*u(3)^2*u(1)+O3*u(3)^2*u(2)+P3*u(3)^2*u(4)+Q3*u(3)^2*u(5)+R3*u(4)^2*u(1)+S3*u(4)^2*u(2)+T3*u(4)^2*u(3)+V3*u(4)^2*u(5)+Aa3*u(5)^2*u(1)+Ba3*u(5)^2*u(2)+Za3*u(5)^2*u(3)+Da3*u(5)^2*u(4)+Ea3*u(1)*u(2)*u(3)+Fa3*u(1)*u(2)*u(4)+Ga3*u(1)*u(2)*u(5)+Ha3*u(1)*u(3)*u(4)+Ia3*u(1)*u(3)*u(5)+Ja3*u(1)*u(4)*u(5)+Ka3*u(2)*u(3)*u(4)+La3*u(2)*u(3)*u(5)+Ma3*u(2)*u(4)*u(5)+Na3*u(3)*u(4)*u(5)+Oa3*u(1)^2+Pa3*u(2)^2+Qa3*u(3)^2+Ra3*u(4)^2+Sa3*u(5)^2+Ta3*u(1)*u(2)+Va3*u(1)*u(3)+Ab3*u(1)*u(4)+Bb3*u(1)*u(5)+Zb3*u(2)*u(3)+Db3*u(2)*u(4)+Eb3*u(2)*u(5)+Fb3*u(3)*u(4)+Gb3*u(3)*u(5)+Hb3*u(4)*u(5)+Ib3*u(1)+Jb3*u(2)+Kb3*u(3)+Lb3*u(4)+Mb3*u(5)+(P*C43)+(-alfa2*V_DC^2*L_e/(3*2))*(((phi3((1-L_e)/2)*(w0((1-L_e)/2)+phi1((1-L_e)/2)*u(1)+phi2((1-L_e)/2)*u(2)+phi3((1-L_e)/2)*u(3)+phi4((1-L_e)/2)*u(4)+phi5((1-L_e)/2)*u(5)))/(1+q*(w0((1-L_e)/2)+phi1((1-L_e)/2)*u(1)+phi2((1-L_e)/2)*u(2)+phi3((1-L_e)/2)*u(3)+phi4((1-L_e)/2)*u(4)+phi5((1-L_e)/2)*u(5))^s))+4*((phi3(((1-L_e)/2)+(L_e/2))*(w0(((1-L_e)/2)+(L_e/2))+phi1(((1-L_e)/2)+(L_e/2))*u(1)+phi2(((1-L_e)/2)+(L_e/2))*u(2)+phi3(((1-L_e)/2)+(L_e/2))*u(3)+phi4(((1-L_e)/2)+(L_e/2))*u(4)+phi5(((1-L_e)/2)+(L_e/2))*u(5)))/(1+q*(w0(((1-L_e)/2)+(L_e/2))+phi1(((1-L_e)/2)+(L_e/2))*u(1)+phi2(((1-L_e)/2)+(L_e/2))*u(2)+phi3(((1-L_e)/2)+(L_e/2))*u(3)+phi4(((1-L_e)/2)+(L_e/2))*u(4)+phi5(((1-L_e)/2)+(L_e/2))*u(5))^s))+((phi3((1+L_e)/2)*(w0((1+L_e)/2)+phi1((1+L_e)/2)*u(1)+phi2((1+L_e)/2)*u(2)+phi3((1+L_e)/2)*u(3)+phi4((1+L_e)/2)*u(4)+phi5((1+L_e)/2)*u(5)))/(1+q*(w0((1+L_e)/2)+phi1((1+L_e)/2)*u(1)+phi2((1+L_e)/2)*u(2)+phi3((1+L_e)/2)*u(3)+phi4((1+L_e)/2)*u(4)+phi5((1+L_e)/2)*u(5))^s)))
A4*u(1)^3+B4*u(2)^3+Z4*u(3)^3+D4*u(4)^3+E4*u(5)^3+F4*u(1)^2*u(2)+G4*u(1)^2*u(3)+H4*u(1)^2*u(4)+I4*u(1)^2*u(5)+J4*u(2)^2*u(1)+K4*u(2)^2*u(3)+L4*u(2)^2*u(4)+M4*u(2)^2*u(5)+N4*u(3)^2*u(1)+O4*u(3)^2*u(2)+P4*u(3)^2*u(4)+Q4*u(3)^2*u(5)+R4*u(4)^2*u(1)+S4*u(4)^2*u(2)+T4*u(4)^2*u(3)+V4*u(4)^2*u(5)+Aa4*u(5)^2*u(1)+Ba4*u(5)^2*u(2)+Za4*u(5)^2*u(3)+Da4*u(5)^2*u(4)+Ea4*u(1)*u(2)*u(3)+Fa4*u(1)*u(2)*u(4)+Ga4*u(1)*u(2)*u(5)+Ha4*u(1)*u(3)*u(4)+Ia4*u(1)*u(3)*u(5)+Ja4*u(1)*u(4)*u(5)+Ka4*u(2)*u(3)*u(4)+La4*u(2)*u(3)*u(5)+Ma4*u(2)*u(4)*u(5)+Na4*u(3)*u(4)*u(5)+Oa4*u(1)^2+Pa4*u(2)^2+Qa4*u(3)^2+Ra4*u(4)^2+Sa4*u(5)^2+Ta4*u(1)*u(2)+Va4*u(1)*u(3)+Ab4*u(1)*u(4)+Bb4*u(1)*u(5)+Zb4*u(2)*u(3)+Db4*u(2)*u(4)+Eb4*u(2)*u(5)+Fb4*u(3)*u(4)+Gb4*u(3)*u(5)+Hb4*u(4)*u(5)+Ib4*u(1)+Jb4*u(2)+Kb4*u(3)+Lb4*u(4)+Mb4*u(5)+(P*C44)+(-alfa2*V_DC^2*L_e/(3*2))*(((phi4((1-L_e)/2)*(w0((1-L_e)/2)+phi1((1-L_e)/2)*u(1)+phi2((1-L_e)/2)*u(2)+phi3((1-L_e)/2)*u(3)+phi4((1-L_e)/2)*u(4)+phi5((1-L_e)/2)*u(5)))/(1+q*(w0((1-L_e)/2)+phi1((1-L_e)/2)*u(1)+phi2((1-L_e)/2)*u(2)+phi3((1-L_e)/2)*u(3)+phi4((1-L_e)/2)*u(4)+phi5((1-L_e)/2)*u(5))^s))+4*((phi4(((1-L_e)/2)+(L_e/2))*(w0(((1-L_e)/2)+(L_e/2))+phi1(((1-L_e)/2)+(L_e/2))*u(1)+phi2(((1-L_e)/2)+(L_e/2))*u(2)+phi3(((1-L_e)/2)+(L_e/2))*u(3)+phi4(((1-L_e)/2)+(L_e/2))*u(4)+phi5(((1-L_e)/2)+(L_e/2))*u(5)))/(1+q*(w0(((1-L_e)/2)+(L_e/2))+phi1(((1-L_e)/2)+(L_e/2))*u(1)+phi2(((1-L_e)/2)+(L_e/2))*u(2)+phi3(((1-L_e)/2)+(L_e/2))*u(3)+phi4(((1-L_e)/2)+(L_e/2))*u(4)+phi5(((1-L_e)/2)+(L_e/2))*u(5))^s))+((phi4((1+L_e)/2)*(w0((1+L_e)/2)+phi1((1+L_e)/2)*u(1)+phi2((1+L_e)/2)*u(2)+phi3((1+L_e)/2)*u(3)+phi4((1+L_e)/2)*u(4)+phi5((1+L_e)/2)*u(5)))/(1+q*(w0((1+L_e)/2)+phi1((1+L_e)/2)*u(1)+phi2((1+L_e)/2)*u(2)+phi3((1+L_e)/2)*u(3)+phi4((1+L_e)/2)*u(4)+phi5((1+L_e)/2)*u(5))^s)))
A5*u(1)^3+B5*u(2)^3+Z5*u(3)^3+D5*u(4)^3+E5*u(5)^3+F5*u(1)^2*u(2)+G5*u(1)^2*u(3)+H5*u(1)^2*u(4)+I5*u(1)^2*u(5)+J5*u(2)^2*u(1)+K5*u(2)^2*u(3)+L5*u(2)^2*u(4)+M5*u(2)^2*u(5)+N5*u(3)^2*u(1)+O5*u(3)^2*u(2)+P5*u(3)^2*u(4)+Q5*u(3)^2*u(5)+R5*u(4)^2*u(1)+S5*u(4)^2*u(2)+T5*u(4)^2*u(3)+V5*u(4)^2*u(5)+Aa5*u(5)^2*u(1)+Ba5*u(5)^2*u(2)+Za5*u(5)^2*u(3)+Da5*u(5)^2*u(4)+Ea5*u(1)*u(2)*u(3)+Fa5*u(1)*u(2)*u(4)+Ga5*u(1)*u(2)*u(5)+Ha5*u(1)*u(3)*u(4)+Ia5*u(1)*u(3)*u(5)+Ja5*u(1)*u(4)*u(5)+Ka5*u(2)*u(3)*u(4)+La5*u(2)*u(3)*u(5)+Ma5*u(2)*u(4)*u(5)+Na5*u(3)*u(4)*u(5)+Oa5*u(1)^2+Pa5*u(2)^2+Qa5*u(3)^2+Ra5*u(4)^2+Sa5*u(5)^2+Ta5*u(1)*u(2)+Va5*u(1)*u(3)+Ab5*u(1)*u(4)+Bb5*u(1)*u(5)+Zb5*u(2)*u(3)+Db5*u(2)*u(4)+Eb5*u(2)*u(5)+Fb5*u(3)*u(4)+Gb5*u(3)*u(5)+Hb5*u(4)*u(5)+Ib5*u(1)+Jb5*u(2)+Kb5*u(3)+Lb5*u(4)+Mb5*u(5)+(P*C45)+(-alfa2*V_DC^2*L_e/(3*2))*(((phi5((1-L_e)/2)*(w0((1-L_e)/2)+phi1((1-L_e)/2)*u(1)+phi2((1-L_e)/2)*u(2)+phi3((1-L_e)/2)*u(3)+phi4((1-L_e)/2)*u(4)+phi5((1-L_e)/2)*u(5)))/(1+q*(w0((1-L_e)/2)+phi1((1-L_e)/2)*u(1)+phi2((1-L_e)/2)*u(2)+phi3((1-L_e)/2)*u(3)+phi4((1-L_e)/2)*u(4)+phi5((1-L_e)/2)*u(5))^s))+4*((phi5(((1-L_e)/2)+(L_e/2))*(w0(((1-L_e)/2)+(L_e/2))+phi1(((1-L_e)/2)+(L_e/2))*u(1)+phi2(((1-L_e)/2)+(L_e/2))*u(2)+phi3(((1-L_e)/2)+(L_e/2))*u(3)+phi4(((1-L_e)/2)+(L_e/2))*u(4)+phi5(((1-L_e)/2)+(L_e/2))*u(5)))/(1+q*(w0(((1-L_e)/2)+(L_e/2))+phi1(((1-L_e)/2)+(L_e/2))*u(1)+phi2(((1-L_e)/2)+(L_e/2))*u(2)+phi3(((1-L_e)/2)+(L_e/2))*u(3)+phi4(((1-L_e)/2)+(L_e/2))*u(4)+phi5(((1-L_e)/2)+(L_e/2))*u(5))^s))+((phi5((1+L_e)/2)*(w0((1+L_e)/2)+phi1((1+L_e)/2)*u(1)+phi2((1+L_e)/2)*u(2)+phi3((1+L_e)/2)*u(3)+phi4((1+L_e)/2)*u(4)+phi5((1+L_e)/2)*u(5)))/(1+q*(w0((1+L_e)/2)+phi1((1+L_e)/2)*u(1)+phi2((1+L_e)/2)*u(2)+phi3((1+L_e)/2)*u(3)+phi4((1+L_e)/2)*u(4)+phi5((1+L_e)/2)*u(5))^s)))];
[root,fval,exitflag]= fsolve(f_u,u0)
if isreal(root(1))==1 & isreal(root(2))==1 & isreal(root(3))==1 & isreal(root(4))==1 & isreal(root(5))==1 & exitflag>0
hold on
plot(V_DC,(root(1)*phi1_midpoint+root(2)*phi2_midpoint+root(3)*phi3_midpoint+root(4)*phi4_midpoint+root(5)*phi5_midpoint)*d*1e+6+9,'bo');
end
end
end
end
end
end
end
xlabel('V_DC')
ylabel('W_max')
1 Comment
Answers (1)
Sulaymon Eshkabilov
on 6 Nov 2021
Edited: Sulaymon Eshkabilov
on 6 Nov 2021
It is worth to employ here optim options of fsolve(), e.g.: optimoptions() with fmincon, lsqnonlin, fminunc.
See the help doc: https://www.mathworks.com/help/optim/ug/optim.problemdef.optimizationproblem.optimoptions.html
0 Comments
See Also
Categories
Find more on Systems of Nonlinear Equations in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!