error occurs in the present code
조회 수: 2 (최근 30일)
이전 댓글 표시
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.
댓글 수: 0
채택된 답변
Star Strider
2019년 2월 23일
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
댓글 수: 7
Star Strider
2019년 2월 24일
It is one of the initial conditions for your ‘equation’ function differential equation system.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Numerical Integration and Differential Equations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!