How would I improve my euler code?

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

 Risposta accettata

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 Commenti

so i add your suggestion directly below "y(:,k+1)=y(:,k)+h*func(t(k),y(:,k)); " ?
Jim Riggs
Jim Riggs il 21 Feb 2018
Modificato: Jim Riggs il 21 Feb 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;

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Mathematics in Centro assistenza e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by