Is there an easy way to make numerical simulations of the ODE of the form dx1/dt=x1(2-x1-x2), dx2/dt=x2(3-x1-x2-x3) for any xn?
4 views (last 30 days)
Show older comments
I have tried doing for 'n=5' and here is my code; dx = @(t,x) [x(1); x(1)*(2-x(1)-x(2)); x(2); x(2)*(3-x(1)-x(2)-x(3)); x(3); x(3)*(3-x(2)-x(3)-x(4)); x(4); x(4)*(3-x(3)-x(4)-x(5)); x(5); x(5)*(2-x(4)-x(5))]; tspan=[0 15]; x0=[0 2 0 3 0 4 0 6 0 8]; [t,x] = ode45(@(t,x) dx(t,x), tspan, x0); figure(1) plot(t, x)
Can someone please check if this code is correct, if not, how can I improve if and for any 'n'?. Thanks in advance.
0 Comments
Accepted Answer
Torsten
on 5 Apr 2018
n = 5;
tspan=[0 15];
x0 = [2 3 4 6 8];
[t,x] = ode45(@(t,x) derivatives(t,x,n), tspan, x0);
function dx = derivatives(t,x,n)
dx = zeros(n,1);
dx(1) = x(1)*(2-x(1)-x(2));
for i = 2:n-1
dx(i)=x(i)*(3-x(i-1)-x(i)-x(i+1));
end
dx(n) = x(n)*(2-x(n-1)-x(n));
end
Best wishes
Torsten.
3 Comments
Torsten
on 5 Apr 2018
All examples given here are with corresponding plot commands:
https://de.mathworks.com/help/matlab/ref/ode45.html
Best wishes
Torsten.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!