필터 지우기
필터 지우기

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

조회 수: 2 (최근 30일)
Thierry Rebetez
Thierry Rebetez 2022년 3월 9일
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

답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by