Too many output arguments ode23t
조회 수: 8 (최근 30일)
이전 댓글 표시
I am using this function
function maxh_d(t,x)
dxdt = zeros(2,1); % x(1) refers to x ,x(2) refers to p
dxdt(1)= -x(1) ; %+u
dxdt(2)= 2*x(1)*x(2);
end
in this code
[t_v,x_v] = ode23t(@(t,x) maxh_d(t,x), [0 10], [0.5 0.5]);
figure('Name','Nonlinear');
subplot(2,1,1)
plot(t_v, x_v(:,1));
I am getting this error
Error using maxh_d
Too many output arguments.
Error in mh_result>@(t,x)maxh_d(t,x) (line 1)
[t_v,x_v] = ode23t(@(t,x) maxh_d(t,x), [0 10], [0.5 0.5]);
Error in odearguments (line 90)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode23t (line 143)
odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
Error in mh_result (line 1)
[t_v,x_v] = ode23t(@(t,x) maxh_d(t,x), [0 10], [0.5 0.5]);
댓글 수: 0
채택된 답변
Bjorn Gustavsson
2020년 10월 16일
Try to change your maxh_d function to explicitly return dxdt:
function dxdt = maxh_d(t,x)
dxdt = zeros(2,1); % x(1) refers to x ,x(2) refers to p
dxdt(1)= -x(1) ; %+u
dxdt(2)= 2*x(1)*x(2);
end
I've always written my ODE-functions so that they return the derivative. How you get that error-message I've no idea - since to my understanding 0 output arguments are one too few...
HTH
댓글 수: 3
Bjorn Gustavsson
2020년 10월 16일
...Ah, perhaps I should spend some time reading and thinking before answering...
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Clocks and Timers에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!