Euler's Method with Matrix

37 visualizzazioni (ultimi 30 giorni)
Sarah Johnson
Sarah Johnson il 29 Apr 2020
Commentato: J. Alex Lee il 29 Apr 2020
I'm trying to implement Euler's Method on the following ODE, with initial condition [y1, y2] = [1, 3] and on the interval t in [0, 1]:
The exact solution is given as:
I currently have two different code as a way to go about solving this but I'm not sure which is correct/how to fix them. I'm really struggling to figure out where to go from here and any help/advice would be really appreciated!
% Code Number 1 %
function [y] = ForwardEulers(y0, t)
n = 2;
h = (t(2) - t(1)/n);
y = y0;
A = [-500.5, 499.5; 499.5, -500.5];
[V, D] = eig(A);
for t = 1:n
y(t) = y0 * (V * ((eye(n) + h * (D))^t) * inv(V));
x(t) = t * h;
end
plot(x, y)
end
% Code Number 2 %
function [y] = ForwardEulers2(y0, t)
n = 2;
h = (t(2) - t(1))/n;
A = [-500.5, 499.5; 499.5, -500.5];
for i = 1:n
y(i) = ((eye(n) + (h* A))^i) * y0;
end
end
  1 Commento
J. Alex Lee
J. Alex Lee il 29 Apr 2020
I assume this is a homework problem. Neither approach looks correct. Can you start over:
  1. write down the 2 ODE's separately (not in matrix form as provided)
  2. write down what the forward euler formula looks like for each
  3. only then start thinking about the code.

Accedi per commentare.

Risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by