How would I improve my euler code?

2 vues (au cours des 30 derniers jours)
Raiven Balderas
Raiven Balderas le 20 Fév 2018
Modifié(e) : Jim Riggs le 21 Fév 2018
How can i improve my euler code? Code is attached ... I believe i have to improve it by using trapezoids instead of rectangles..How do i do this ? Can someone help

Réponse acceptée

Jim Riggs
Jim Riggs le 20 Fév 2018
For trapezoidal integration, you use the average of two consecutive evaluations. This could be done by simply adding one line of code after the Euler calculation;
y(:,k+1) = (y(:,k+1) + y(:,k))*h/2
  2 commentaires
Raiven Balderas
Raiven Balderas le 21 Fév 2018
so i add your suggestion directly below "y(:,k+1)=y(:,k)+h*func(t(k),y(:,k)); " ?
Jim Riggs
Jim Riggs le 21 Fév 2018
Modifié(e) : Jim Riggs le 21 Fév 2018
Perhaps this will be more clear:
A = func(t(k), y(:,k) );
B = func(t(k+1),y(:,k+1));
y(:,k+1) = y(:,k) + (A + B) * h/2;
Compare this with the Euler method:
A = func(t(k), y(:,k) );
y(:,k+1) = y(:,k) + A * h;

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by