How would I improve my euler code?

1 回表示 (過去 30 日間)
Raiven Balderas
Raiven Balderas 2018 年 2 月 20 日
編集済み: Jim Riggs 2018 年 2 月 21 日
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

採用された回答

Jim Riggs
Jim Riggs 2018 年 2 月 20 日
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 件のコメント
Raiven Balderas
Raiven Balderas 2018 年 2 月 21 日
so i add your suggestion directly below "y(:,k+1)=y(:,k)+h*func(t(k),y(:,k)); " ?
Jim Riggs
Jim Riggs 2018 年 2 月 21 日
編集済み: Jim Riggs 2018 年 2 月 21 日
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;

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMathematics についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by