## Integrate for a specific period of time

on 12 Sep 2019

on 13 Sep 2019

### Torsten (view profile)

Please help me. I am trying to use Euler integration to integrate for 10 seconds with a step size of .01 seconds. Plot x versus time.
x(0) = 1
t=0:.01:10;
x0=1;
xdot=-2*(x^3)+sin(0.5*t)*x;
for t=0:0.01:10
x=integrate(xdot,t,x0);
end
plot(t,x)

Walter Roberson

### Walter Roberson (view profile)

on 13 Sep 2019
However you do not have a differential equation, so it is not obvious to me what Euler integration would have to do with the situation.
Allison Bushman

on 13 Sep 2019
xdot is dx/dt

### Torsten (view profile)

on 13 Sep 2019

t=0:.01:10;
x = zeros(numel(t));
x(1) = 1;
fun_xdot = @(t,x) -2*(x^3) + sin(0.5*t)*x;
for i = 1:numel(t)-1
x(i+1) = x(i) + (t(i+1)-t(i))*fun_xdot(t(i),x(i));
end
plot(t,x)

### Robert U (view profile)

on 13 Sep 2019
Edited by Robert U

### Robert U (view profile)

on 13 Sep 2019

Hi Allison,
you can use one of Matlab's integrated ODE solvers to solve your differential equation. The code below makes use of ode45.
t=0:.01:10; % explicit time vector
x0=1; % boundary condition
% define function containing my ODE
myODE = @(t,x) -2 .* x^3 + sin( 0.5 .* t) .* x;
% solve ODE with ode45
[tsol,xsol] = ode45(myODE,t,x0);
% plot result as explicit solution points
plot(tsol,xsol,'.')
Kind regards,
Robert