MATLAB: Error occurs in the present code

failure in initial objective function evaluation. fsolve cannot continue.

function main
clc
clear all
x=3;
options=optimset('Display','iter');
x1=fsolve(@solver,x,options);
function F=solver(x)
options=odeset('RelTol',le-8,'AbsTol',[le-8, le-8, le-8]);
[t,u]=ode45(@equation,[0,20],[4 -1 x],options);
s=length(t);
F=u(s,2);
figure(1)
plot(t,u(:,2))
hold on
end
end
function dy=equation(t,y)
dy=zeros(3,1);
dy(1)=y(2);
dy(2)=y(3);
dy(3)=y(2)^2-y(1)*y(3);
end
After running the above code following error occurs:
Not enough input arguments.
Error in fsolve (line 230)
fuser = feval(funfcn{3},x,varargin{:});
Error in (line 10)
x1=fsolve(@solver,x,options);
Caused by:
Failure in initial objective function evaluation. FSOLVE cannot continue.

Best Answer

You have a typographical error in your odeset call. You typed ā€˜lā€™ (lower-case ā€˜Lā€™) instead of the number 1.
Use this instead:
options=odeset('RelTol',1e-8,'AbsTol',1e-8);
and your code runs without error.
When I ran it,, the result was:
x1 =
3.732
Related Question