I want to know why MATLAB says "Equation solved at initial point"

2 visualizzazioni (ultimi 30 giorni)
Hi everybody,
I have a code that gives the following answer from MATLAB:
"Equation solved at initial point.
fsolve completed because the vector of function values at the initial
point is near zero as measured by the selected value of the function tolerance,
and the problem appears regular as measured by the gradient. "
What is wrong ?
Thanks a lot to everybody!!
Here the code:
function main
x0 = rand(5,1);
options = optimoptions(@fsolve, 'Algorithm', 'levenberg-marquardt', 'MaxFunctionEvaluations', 1000000, 'MaxIterations', 1000000,'OptimalityTolerance', 1e-10, 'FunctionTolerance', 1e-08);
x = fsolve(@fun,x0,options)
res = fun(x)
k1 = x(1)^2;
k2 = x(2)^2;
k3 = x(3)^2;
k4 = x(4)^2;
k7 = x(5)^2;
%K1 = k3/(k4+k7)
end
function res = fun(x)
k1 = x(1)^2; %because I need positive k's
k2 = x(2)^2;
k3 = x(3)^2;
k4 = x(4)^2;
k7 = x(5)^2;
ET=0.5
i1=0.009621821;
i2=0.030538822;
i3=0.054802544;
i4=0.068189424;
i5=0.084504685;
i6=0.091198126;
i7=0.094544846;
i8=0.110441767;
i9=0.112951807;
i10=0.125502008;
x1=0;
x2=30;
x3=50;
x4=75;
x5=100;
x6=130;
x7=160;
x8=200;
x9=280;
x10=380;
%h correspond à E au niveau de la branche "Dimerization" (eq. 82)
h1 = (-(k2+k1*x1-k7*k3/(k4+k7)*ET)+sqrt((k2+k1*x1-k7*k3/(k4+k7)*ET)^2+4*k2*ET*(2*k1*k3/(k4+k7)*x1+k7*k3/(k4+k7))))/(2*k3/(k4+k7)*(k7+2*k1*x1));
h2 = (-(k2+k1*x2-k7*k3/(k4+k7)*ET)+sqrt((k2+k1*x2-k7*k3/(k4+k7)*ET)^2+4*k2*ET*(2*k1*k3/(k4+k7)*x2+k7*k3/(k4+k7))))/(2*k3/(k4+k7)*(k7+2*k1*x2));
h3 = (-(k2+k1*x3-k7*k3/(k4+k7)*ET)+sqrt((k2+k1*x3-k7*k3/(k4+k7)*ET)^2+4*k2*ET*(2*k1*k3/(k4+k7)*x3+k7*k3/(k4+k7))))/(2*k3/(k4+k7)*(k7+2*k1*x3));
h4 = (-(k2+k1*x4-k7*k3/(k4+k7)*ET)+sqrt((k2+k1*x4-k7*k3/(k4+k7)*ET)^2+4*k2*ET*(2*k1*k3/(k4+k7)*x4+k7*k3/(k4+k7))))/(2*k3/(k4+k7)*(k7+2*k1*x4));
h5 = (-(k2+k1*x5-k7*k3/(k4+k7)*ET)+sqrt((k2+k1*x5-k7*k3/(k4+k7)*ET)^2+4*k2*ET*(2*k1*k3/(k4+k7)*x5+k7*k3/(k4+k7))))/(2*k3/(k4+k7)*(k7+2*k1*x5));
h6 = (-(k2+k1*x6-k7*k3/(k4+k7)*ET)+sqrt((k2+k1*x6-k7*k3/(k4+k7)*ET)^2+4*k2*ET*(2*k1*k3/(k4+k7)*x6+k7*k3/(k4+k7))))/(2*k3/(k4+k7)*(k7+2*k1*x6));
h7 = (-(k2+k1*x7-k7*k3/(k4+k7)*ET)+sqrt((k2+k1*x7-k7*k3/(k4+k7)*ET)^2+4*k2*ET*(2*k1*k3/(k4+k7)*x7+k7*k3/(k4+k7))))/(2*k3/(k4+k7)*(k7+2*k1*x7));
h8 = (-(k2+k1*x8-k7*k3/(k4+k7)*ET)+sqrt((k2+k1*x8-k7*k3/(k4+k7)*ET)^2+4*k2*ET*(2*k1*k3/(k4+k7)*x8+k7*k3/(k4+k7))))/(2*k3/(k4+k7)*(k7+2*k1*x8));
h9 = (-(k2+k1*x9-k7*k3/(k4+k7)*ET)+sqrt((k2+k1*x9-k7*k3/(k4+k7)*ET)^2+4*k2*ET*(2*k1*k3/(k4+k7)*x9+k7*k3/(k4+k7))))/(2*k3/(k4+k7)*(k7+2*k1*x9));
h10 = (-(k2+k1*x10-k7*k3/(k4+k7)*ET)+sqrt((k2+k1*x10-k7*k3/(k4+k7)*ET)^2+4*k2*ET*(2*k1*k3/(k4+k7)*x10+k7*k3/(k4+k7))))/(2*k3/(k4+k7)*(k7+2*k1*x10));
%i est la vitesse de catalyse au niveau de la branche "Dimerization" (eq. 86)
i1=k7*k3/(k4+k7)*h1*(ET-h1)/(1+2*k3/(k4+k7)*h1);
i2=k7*k3/(k4+k7)*h2*(ET-h2)/(1+2*k3/(k4+k7)*h2);
i3=k7*k3/(k4+k7)*h3*(ET-h3)/(1+2*k3/(k4+k7)*h3);
i4=k7*k3/(k4+k7)*h4*(ET-h4)/(1+2*k3/(k4+k7)*h4);
i5=k7*k3/(k4+k7)*h5*(ET-h5)/(1+2*k3/(k4+k7)*h5);
i6=k7*k3/(k4+k7)*h6*(ET-h6)/(1+2*k3/(k4+k7)*h6);
i7=k7*k3/(k4+k7)*h7*(ET-h7)/(1+2*k3/(k4+k7)*h7);
i8=k7*k3/(k4+k7)*h8*(ET-h8)/(1+2*k3/(k4+k7)*h8);
i9=k7*k3/(k4+k7)*h9*(ET-h9)/(1+2*k3/(k4+k7)*h9);
i10=k7*k3/(k4+k7)*h10*(ET-h10)/(1+2*k3/(k4+k7)*h10);
res(1) = -i1+k7*k3/(k4+k7)*h1*(ET-h1)/(1+2*k3/(k4+k7)*h1);
res(2) = -i2+k7*k3/(k4+k7)*h2*(ET-h2)/(1+2*k3/(k4+k7)*h2);
res(3) = -i3+k7*k3/(k4+k7)*h3*(ET-h3)/(1+2*k3/(k4+k7)*h3);
res(4) = -i4+k7*k3/(k4+k7)*h4*(ET-h4)/(1+2*k3/(k4+k7)*h4);
res(5) = -i5+k7*k3/(k4+k7)*h5*(ET-h5)/(1+2*k3/(k4+k7)*h5);
res(6) = -i6+k7*k3/(k4+k7)*h6*(ET-h6)/(1+2*k3/(k4+k7)*h6);
res(7) = -i7+k7*k3/(k4+k7)*h7*(ET-h7)/(1+2*k3/(k4+k7)*h7);
res(8) = -i8+k7*k3/(k4+k7)*h8*(ET-h8)/(1+2*k3/(k4+k7)*h8);
res(9) = -i9+k7*k3/(k4+k7)*h9*(ET-h9)/(1+2*k3/(k4+k7)*h9);
res(10) = -i10+k7*k3/(k4+k7)*h10*(ET-h10)/(1+2*k3/(k4+k7)*h10);
end

Risposte (0)

Categorie

Scopri di più su Mathematics in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by