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

AI Thread Summary
The discussion centers on a MATLAB implementation of Euler's method for solving the differential equation dy/dt = cos(t). The code initializes parameters, sets up a loop to compute values for y over a specified number of points, and plots both the numerical solution and the exact solution. A key observation is that the graph of the numerical solution asymptotically approaches π/2, raising concerns about how to handle this behavior. The response indicates that the output appears correct, suggesting that the asymptotic behavior is expected in this context.
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
It sounds like you're getting the correct graph
 

Similar threads

Replies
4
Views
1K
Replies
1
Views
3K
Replies
5
Views
2K
Replies
1
Views
2K
Replies
5
Views
1K
Replies
2
Views
3K
Replies
12
Views
4K
Back
Top