계속 오류가 나는데 이유를 모르겠습니다.,
10 views (last 30 days)
Show older comments
function dydt=SILAR1241421(t,y)
a=0.000000000184;
b=0.8;
c=0.7;
d=0.002;
L=1235/47041434;
M=1265/47041434;
dydt=zeros(4,1);
dydt(1)={(L-M)*y(1)-a*y(1)*y(3)};
dydt(2)={a*y(1)*y(3)-b*y(2)-M*y(2)};
dydt(3)={b*y(2)-c*y(3)-d*y(3)-M*y(3)};
dydt(4)={c*y(3)-M*y(4)};
end
[t,y]=ode45(SILAR1241421,[0,300],[47041334,0,100,0])
plot(t,y)
legend('S','E','I','R')
입력 인수가 부족합니다.
오류 발생: SILAR1241421 (line 9)
dydt(1)={(L-M)*y(1)-a*y(1)*y(3)};
9번째 라인에서 계속 오류가 납니다 도와주세요
0 Comments
Answers (1)
Angelo Yeo
on 27 Dec 2023
우선, ode45 의 첫 번째 인자에는 함수 핸들을 넣어 주십시오. 또, dydt(1)={(L-M)*y(1)-a*y(1)*y(3)}; 과 같이 행렬에 cell array를 삽입할 수는 없습니다. 중괄호를 모두 지워주십시오. 결론적으로는 아래와 같이 수정하면 코드가 동작합니다.
[t,y]=ode45(@SILAR1241421,[0,300],[47041334,0,100,0])
plot(t,y)
legend('S','E','I','R')
function dydt=SILAR1241421(t,y)
a=0.000000000184;
b=0.8;
c=0.7;
d=0.002;
L=1235/47041434;
M=1265/47041434;
dydt=zeros(4,1);
dydt(1)=(L-M)*y(1)-a*y(1)*y(3);
dydt(2)=a*y(1)*y(3)-b*y(2)-M*y(2);
dydt(3)=b*y(2)-c*y(3)-d*y(3)-M*y(3);
dydt(4)=c*y(3)-M*y(4);
end
0 Comments
See Also
Categories
Find more on 설치 및 라이선스 부여 소개 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!