Input undefined in a function describing differential equations

I am new at learning how to use the differential equation solvers in MATLAB. I am trying to work out epidemic model differential equations. I got this tutorial online regarding my subject and I tried to use it. The function is given below:
function ypsir =ypsir(t,y)
a = .01;
b = .1;
ypsir(1) =-a*y(1)*y(2);
ypsir(2) = a*y(1)*y(2)-b*y(2);
ypsir(3) = b*y(2);
ypsir = [ypsir(1) ypsir(2) ypsir(3)]';
but when I run it, it keeps on saying input y is undefined. Can someone pls help! Thanks in advance

回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 5 月 3 日
編集済み: Azzi Abdelmalek 2013 年 5 月 3 日

0 投票

You can not run a function, you should call it.
Look at ode45

2 件のコメント

Ojaswita
Ojaswita 2013 年 5 月 4 日
編集済み: Azzi Abdelmalek 2013 年 5 月 4 日
Thanks... i am creating another m file that calls this function, and its giving me an error... in the line that i am using to call the function. Again, this is from the same tutorial that i was using...
to = 0;
tf =50;
yo = [99 1 0];
[t y] = ode45('ypsir',[to tf],yo);
plot(t,y(:,1),t,y(:,2),t,y(:,3))
Zhang lu
Zhang lu 2013 年 5 月 4 日
編集済み: Zhang lu 2013 年 5 月 4 日
do ypsir.m file you called at your matlab current folder, if not ,do it.

この質問は閉じられています。

質問済み:

2013 年 5 月 3 日

閉鎖済み:

2021 年 8 月 20 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by