error in fsolve solving nonlinear equations
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Joaquim Monteiro
le 29 Déc 2015
Commenté : Walter Roberson
le 29 Déc 2015
Hi I'm trying to solve nonlinear equations with the following code:
F = myfun(x)
F = [ x(1)-((500+0.85*(((0.711+0.56*15/100+0.73*(15/100)^2)*5.67*10^(-8)*(25+273.15)^4*(1-cos(30*pi/180))/2)-5.67*10^(-8)*(25+273.15)^4))*1.6*0.8*(1-0*2)*1-1.6*((32+6.4*2)*(x(5)-25)));
x(2)-(2068.5072425+(-20.1259571429)*x(4)+0.0701428571*x(4)^2+(56.5615102375+(-0.0892494524)*x(4)+(-0.0013878571)*x(4)^2)*x(5)+(0.669960831250007+(-0.001477845238096)*x(4)+0.000000357142857*x(4)^2)*x(5)^2);
x(3)-(373.160515+(-0.7728)*x(4)+0.0378095238*x(4)^2+((-4.03604873)+0.2014116*x(4)+0.0005034286*x(4)^2)*x(5)+((-0.22703617375)+0.003774373809524*x(4)+(-0.000001214285714)*x(4)^2)*x(5)^2);
x(2)-(70*(x(4)-40));
x(2)-(x(3)+x(1)-12*(x(4)-20))];
Then I run the follwing:
x0 = [-5; -5]; % Make a starting guess at the solution
options = optimoptions('fsolve','Display','iter'); % Option to display output
[x,fval] = fsolve(@myfun,x0,options) % Call solver
I got the following errors in workspace:
Attempted to access x(5); index out of bounds because numel(x)=2.
Error in myfun (line 2)
F = [
x(1)-((500+0.85*(((0.711+0.56*15/100+0.73*(15/100)^2)*5.67*10^(-8)*(25+273.15)^4*(1-cos(30*pi/180))/2)-5.67*10^(-8)*(25+273.15)^4))*1.6*0.8*(1-0*2)*1-1.6*((32+6.4*2)*(x(5)-25)));
Error in fsolve (line 217)
fuser = feval(funfcn{3},x,varargin{:});
Error in testes_auxiliares_eqnonlinear_v2 (line 3)
[x,fval] = fsolve(@myfun,x0,options) % Call solver
Can someone help me.
0 commentaires
Réponse acceptée
Alan Weiss
le 29 Déc 2015
Well, you gave x0 = [-5;5], but your equation has components x(1) through x(5). You either need to have equations involving only x(1) and x(2), or you need to give a five-element initial vector x0.
Alan Weiss
MATLAB mathematical toolbox documentation
3 commentaires
Walter Roberson
le 29 Déc 2015
No, the objective function can be the handle of an anonymous function or the handle of a function in the same .m file.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Systems of Nonlinear Equations dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!