0% menganggap dokumen ini bermanfaat (0 suara)
629 tayangan3 halaman

Metode Euler Eksplisit & Implementasi MATLAB

Metode Euler eksplisit adalah metode numerik untuk menyelesaikan persamaan diferensial orde pertama dengan mendekati turunan fungsi pada setiap langkah waktu dengan nilai fungsi pada awal langkah waktu dan menghitung nilai fungsi berikutnya dengan menambah hasil perkalian antara turunan fungsi dan lebar langkah waktu pada nilai fungsi sebelumnya. Metode ini memiliki kesalahan pemotongan lokal orde 2 dan kesal

Diunggah oleh

arif rahman hakim
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
629 tayangan3 halaman

Metode Euler Eksplisit & Implementasi MATLAB

Metode Euler eksplisit adalah metode numerik untuk menyelesaikan persamaan diferensial orde pertama dengan mendekati turunan fungsi pada setiap langkah waktu dengan nilai fungsi pada awal langkah waktu dan menghitung nilai fungsi berikutnya dengan menambah hasil perkalian antara turunan fungsi dan lebar langkah waktu pada nilai fungsi sebelumnya. Metode ini memiliki kesalahan pemotongan lokal orde 2 dan kesal

Diunggah oleh

arif rahman hakim
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

METODE EULER EKSPLISIT

Metode Euler adalah salah satu metode single step yang paling sederhana. Jika dibandingkan
dengan metode lainnya, maka metode ini tergolong metode yang kurang teliti. Perhatikan
masalah nilai awal PD orde 1 berikut:
𝑑𝑦
= 𝑓(𝑡, 𝑦), 𝑡 > 0, 𝑦(𝑡0 ) = 𝑦0
𝑑𝑡
Untuk mendapatkan solusi persamaan 1 pada suatu interval I secara numerik, interval I
tersebut dibagi menjadi 𝑛 subinterval yang sama panjang dengan titik-titik ujung
interval 𝑡𝑖 , 𝑖 = 1,2,3, … , 𝑛. Lebar dari subinterval ini adalah ∆𝑡 = 𝑡𝑖+1 − 𝑡𝑖 = ℎ.
Dengan 𝑓𝑖 ≡ 𝑓(𝑡𝑖 , 𝑦𝑖 ), 𝑦𝑖 ≡ 𝑦(𝑡𝑖 ).

Penurunan Rumus
Rumus skema Euler eksplisit dapat diturunkan menggunakan cara berikut.

1. Deret Taylor
Rumus Deret Taylor:
ℎ ℎ2 ℎ3
𝑦𝑖+1 = 𝑦𝑖 + 𝑦𝑖′ + 𝑦𝑖′′ + 𝑦𝑖′′′ +⋯
1! 2! 3!

𝑦𝑖+1 = 𝑦𝑖 + 𝑦𝑖′ ℎ

𝑦𝑖+1 = 𝑦𝑖 + 𝑓𝑖 ℎ

Orde Kesalahan Pemotongan Lokal : 𝑂(ℎ2 )

Orde Kesalahan Pemotongan Global : 𝑂(ℎ)

2. Integral
Perahatikan masalah nilai awal persamaan (1), integralkan pada integralkan pada
interval [𝑡𝑖 , 𝑡𝑖+1 ], sehingga diperoleh
𝑑𝑦
= 𝑓(𝑡, 𝑦)
𝑑𝑡
𝑡𝑖+1 𝑡𝑖+1

∫ 𝑑𝑦 = ∫ 𝑓(𝑡, 𝑦) 𝑑𝑡
𝑡𝑖 𝑡𝑖
𝑡𝑖+1

𝑦𝑖+1 − 𝑦𝑖 = ∫ 𝑓(𝑡, 𝑦) 𝑑𝑡
𝑡𝑖

𝑡𝑖+1

𝑦𝑖+1 = 𝑦𝑖 + ∫ 𝑓(𝑡, 𝑦) 𝑑𝑡
𝑡𝑖
Integral tertentu di atas dapat dihitung menggunakan pendekatan numerik dengan
menjalankan luasan semua pias yang berupa persegi panjang kiri pada interval
𝑡𝑖 , 𝑡𝑖+1 ], sehingga diperoleh:
𝑦𝑖+1 ≈ 𝑦𝑖 + 𝑦𝑖′ ℎ 𝑎𝑡𝑎𝑢 𝑦𝑖+1 ≈ 𝑦𝑖 + 𝑓𝑖 ℎ
Implementasi Program MATLAB

Perhatikan masalah nilai awal berikut:

𝑑𝑦
= 𝑒 −2𝑦 sin 𝑡 , 0 < 𝑡 ≤ 7, 𝑦(0) = 0
𝑑𝑡
Dan diberikan solusi eksaknya yaitu,

1
𝑦(𝑡) = ln (3 − 2 cos 𝑡)
2

1. clear all;
2. clc;
3. fprintf('--------Metode Euler Eksplisit--------
\n');
4. h=0.1;
5. t=0:h:7;
6. n=length(t);
7. y(1)=0;
8. %% Mencari solusi numerik dari PD
9. for i=1:n-1
10. f=exp(-2*y(i))*sin(t(i));
11. y(i+1)=y(i)+h*f;
12. end

13. %% Mencari solusi eksak dari PD dan errornya


solusi numerik
14. fprintf(' i t y yeksak
error\n');
15. for i=1:n
16. yeksak(i)=0.5*log(3-2*cos(t(i)));
17. error(i)=abs(yeksak(i)-y(i));
18. fprintf('%3d %3.2f %5.4f %5.4f
%5.4f\n',i,t(i),y(i),yeksak(i),error(i));
19. end

20. %% Plot grafik solusi numerik, solusi eksak,


dan error
21. subplot(1,2,1);
22. plot(t,y,'o','color','k','markersize',4,'mark
erfacecolor','b');
23. hold on;
24. plot(t,yeksak,'-','color','k','linewidth',2);
25. title('Solusi Numerik dan Eksak Metode Euler
Eksplisit');
26. xlabel('t');
27. ylabel('y');
28. grid on;
29. legend('Solusi Numerik','Solusi Eksak');
30. subplot(1,2,2);
31. plot(t,error,'o','color','k','markersize',4,'
markerfacecolor','r');
32. grid on;
33. title('Error');
34. xlabel('t');
35. ylabel('error');

Anda mungkin juga menyukai