Error using ode45() to solve a couple of ODE's
조회 수: 1 (최근 30일)
이전 댓글 표시
Hello,
Im trying to solve a set of ODE's with inital condition but for some reason the code fails and i cant seem to find the problem, would appreciate some fresh eye to see where im wrong.
the code:
%ODE45 Method
%Const
N0=25;
G1=1;G2=1;
a1=6;a2=3;
k1=1;k2=4;
ODE_Set=@(t,X) [G1.*(N0-a1.*X(1)-a2.*X(2)).*X(1)-k1.*X(1),...
G2.*(N0-a1.*X(1)-a2.*X(2)).*X(2)-k2.*X(2)];
%start position = (0,1)
ODE45_1_Ti=0;
ODE45_1_Tf=10;
ODE45_1_start=[0 1];
[ODE45_1_T,ODE45_1_X]=ode45(@(t,X) ODE_Set,[ODE45_1_Ti ODE45_1_Tf],ODE45_1_start);
now the error it raises:
Error using odearguments (line 95)
@(T,X)ODE_SET returns a vector of length 1, but
the length of initial conditions vector is 2.
The vector returned by @(T,X)ODE_SET and the
initial conditions vector must have the same
number of elements.
now i dont understand whats wrong with the initial conditions
Thanks in advance
댓글 수: 0
채택된 답변
madhan ravi
2018년 11월 28일
편집: madhan ravi
2018년 11월 28일
dxdt=[G1.*(N0-a1.*X(1)-a2.*X(2)).*X(1)-k1.*X(1);...
% ^------ should be a semicolon instead of a comma
G2.*(N0-a1.*X(1)-a2.*X(2)).*X(2)-k2.*X(2)];
%start position = (0,1)
ODE45_1_Ti=0;
ODE45_1_Tf=10;
ODE45_1_start=[1 1];
[ODE45_1_T,ODE45_1_X]=ode45(@ODE_Set,[ODE45_1_Ti ODE45_1_Tf],ODE45_1_start); %function call
plot(ODE45_1_T,ODE45_1_X)
function dxdt = ODE_Set(t,X) %function definition
N0=25;
G1=1;G2=1;
a1=6;a2=3;
k1=1;k2=4;
dxdt=[G1.*(N0-a1.*X(1)-a2.*X(2)).*X(1)-k1.*X(1);...
G2.*(N0-a1.*X(1)-a2.*X(2)).*X(2)-k2.*X(2)];
end
댓글 수: 2
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!