Euler's Method in MATLAB: Solving for dy/dt = cos(y)

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 reply · 7K views
JCienfuegos
Messages
7
Reaction score
0
Hello
I have a program for Eulers method >>

% Euler's Method for dy/dt = cost
k = 1;
y0 = 0;


npoints = 500;
dt = 0.01;

y = zeros(npoints,1); % this initializes the vector y to being all zeros
t = zeros(npoints,1);

y(1) = y0; % the initial condition
t(1) = 0.0;

for step=1:npoints-1 % loop over the timesteps
y(step+1) = y(step) + dt*k*(cos(y(step)));
t(step+1) = t(step) + dt;
end

plot(t,y,'r'); %plots the numerical solution in red
hold on; %keep the previously plotted lines
plot(t,yexact2(t)); %plots the exact solution (default plot is in blue, solid line)

The graph asymptotically approaches pi/2, and I can't think of a way to deal with this.
 
Physics news on Phys.org