MATLAB Answers

Alex F
0

New Matlab user. My equations say I do not have enough inputs. How do I correct this?

Asked by Alex F
on 14 Sep 2018
Latest activity Edited by Walter Roberson
on 15 Sep 2018
tspan = linspace(0,15,201);
y0=[0 15];
[t, y] = ode15s(f,tspan,y0);
function dydt=f(t,y)
dydt(1)=1.57-.00145 *y(1)*y(2);
dydt(2)=7.30-.53*y(1)-.00145*y(1)*y(2);
plot(t,y);
end

  0 Comments

Sign in to comment.

Tags

Products

1 Answer

Answer by madhan ravi
on 14 Sep 2018
Edited by madhan ravi
on 14 Sep 2018
 Accepted Answer

tspan = linspace(0,15,201);
y0=[0 ;15];
[t, y] = ode15s(@f1,tspan,y0)
plot(t,y(:,1),'-o')
hold on
plot(t,y(:,2),'-ob')
function dydt=f1(t,y)
dydt(1)=1.57-.00145 *y(1)*y(2);
dydt(2)=7.30-.53*y(1)-.00145*y(1)*y(2);
dydt=[dydt(1);dydt(2)] %added this line to make sure it’s a column vector.
end
Note:See the function file attached.
Use
[t, y] = ode15s(@f1,tspan,y0)
Instead of
[t, y] = ode15s(f1,tspan,y0)

  6 Comments

Is there a reason why the @f is used? Also my graph shows blank, that is based on my equation correct?
@f indicates that the function is called with its inputs. I don’t know why you’re getting empty graph but I didn’t have any problem getting the graph.

Sign in to comment.