# Integrate for a specific period of time

조회 수: 18(최근 30일)
Allison Bushman 12 Sep 2019
답변: Torsten 13 Sep 2019
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)

#### 댓글 수: 2

Walter Roberson 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 13 Sep 2019
xdot is dx/dt

댓글을 달려면 로그인하십시오.

### 채택된 답변

Torsten 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)

댓글을 달려면 로그인하십시오.

### 추가 답변(1개)

Robert U 13 Sep 2019
편집: Robert U 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

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

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

Start Hunting!

Translated by