I have 5 nonlinear algebraic equations with many terms, fsolve command is ineffective in solving these nonlinear equations.

1 view (last 30 days)
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')

Answers (1)

Sulaymon Eshkabilov
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

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!