Metode prediktor–korektor: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
Tidak ada ringkasan suntingan |
Tag: kemungkinan spam pranala VisualEditor |
||
(56 revisi perantara oleh 12 pengguna tidak ditampilkan) | |||
Baris 1:
{{rapikan}}
Dalam [[analisis numerik]], '''metode prediktor–korektor''' termasuk dalam [[algoritma]] yang dirancang untuk mengintegrasikan [[persamaan diferensial biasa]] - untuk menemukan fungsi yang tidak diketahui yang memenuhi persamaan diferensial yang diberikan. Algoritma tersebut diproses dalam dua langkah:
# Langkah awal, "prediksi", dimulai dari fungsi yang ditempatkan ke nilai fungsi dan nilai turunan <!--pada kumpulan poin sebelumnya-->untuk mengekstrapolasi <!--("mengantisipasi")-->nilai fungsi ini pada titik baru berikutnya.
# Langkah "korektor", menyempurnakan perkiraan awal dengan menggunakan nilai fungsi yang diprediksi dan metode lain untuk menginterpolasi nilai fungsi yang tidak diketahui itu pada titik berikutnya<!--yang sama-->.
== Metode Prediktor-korektor ==
=== metode Trapesium-Euler ===
Metode-metode yang sudah dibahas pada bagian-bagian sebelumnya yaitu '''[[Metode Euler]]''' dan '''[[Runge-kutta]]''' merupakan metode satu langkah untuk menyeleseikan persamaan diferensial biasa.sekarang kita akan membahas metode multi langkah,untuk menghitung y<sub>k</sub> dengan menggunakan gradien-gradien f<sub>j</sub>,dengan j < k,yang sudah diperoleh sebelumnya.metode ini tidak dapat dimulai dengan sendirinya karena tergantung pada metode-metode satu langkah seperti <u>[[metode Euler]]</u> untuk mendapatkan beberapa gradien awal.
metode prediktor-korektor terdiri atas dua bagian:(1) bagian [https://prediktorangka.top/ prediktor],yang memprediksi y<sub>k</sub> dengan menggunakan gradien-gradien f<sub>j</sub> (j < k),dan (2)bagian korektor,yang menggunakan suatu rumus integrasi untuk memperbaiki hampiran.
<u>[[Metode Trapesium-Euler]]</u> menggunakan [[metode Euler]] sebagai algoritme korektor.jika kita gunakan indek pertama untuk menunjukan interval(langkah)dab indek kedua untuk menunjukan urutan hampiran,maka rumus [[Euler]] dapat ditulis sebagai
y<sub>k+1,0</sub>=y<sub>k,*</sub> +hf<sub>k,*</sub>
dengan aturan rumus dan<sup>'*'</sup> berturut-turut menunjukan hampiran awal dan akhir.pada rumus [[Euler]],y<sub>k,*</sub> = y<sub>k</sub> = y(t<sub>k</sub>),dan f<sub>k,*</sub> = f(t<sub>k</sub>,y<sub>k</sub>).
Sebagai persamaan korektor,aturan trapesium dinyatakan sebagai
y<sub>k+1,j</sub> = y<sub>k,*</sub> + h/2(f<sub>k,*</sub> + f<sub>k+1,j-1</sub>)
Dengan j adalah penghitung iterasi proses koreksi dan
f<sub>k+,j-1</sub> = f(t<sub>k+1</sub>,y<sub>k+1,j-1</sub>)
persamaan korektor yang digunakan sebanyak yang diperlukan untuk mendapatkan keakuratan yang diinginkan. perhatikan bahwa dengan menggunakan persamaan Euler sebagai nilai awal,y<sub>k+,j</sub> dapat dihitung untuk j=1,2 ....dengan rumus trapesium.proses koreksi dapat dihentikan setelah iterasi ke-n(ditentukan)atau setelah |y<sub>k+1,j+1</sub>-y<sub>k+1,j</sub>|<€,untuk suatu nilai € yang ditentukan.
== Algoritma (Metode Trapesium Euler) ==
: menghitung hampiran penyeleseian masalah nilai awal y'=f(t,y) dengan y(t<sub>0</sub>)=y<sub>0</sub> pada [t<sub>0</sub>,b].
::'''INPUT''':n,t<sub>0</sub>,b,y<sub>0</sub>,€ dan fungsi f
::'''OUTPUT''':(t<sub>k</sub>,y<sub>k</sub>),k=1,2,..n
:::'''LANGKAH-LANGKAH''':
# Hitung h=(b-t<sub>0</sub>)/n
# FOR k=1,2,..n
hitung f<sup>-</sup>=f(t<sub>k-1</sub>y<sub>k-1</sub>)
hitung t<sub>k</sub>=t<sub>k-1</sub>+h,z<sub>0</sub>=y<sub>k-1</sub>+h*f<sup>-</sup>
'''REPEAT'''
(a) Hitung z=z<sub>0</sub>+h/2[f<sup>-</sup>+f(t<sub>k</sub>,z<sub>0</sub>)]
(b) Hitung selisih=z-z<sub>0</sub>
(c) simpan z<sub>0</sub>=z
'''UNTIL'''|selisih|<€
simpan y<sub>k</sub>=z<sub>0</sub>
3. '''SELESAI'''
Berikut diberikan gambaran pemakaian metode ini melalui contoh.
Seleseikan persamaan diferensial dibawah ini
dy/dx=x*sqrt(y) sedemikian sehingga y(1)=1.
'''Penyeleseian'''
''kita akan menyeleseikan PD ini dengan dua cara''
'' menggunakan metode Euler,dan''
'' menggunakan metode Trapesium-Euler''
=== metode euler ===
a=1;b=2;h=0.1;y0=1;
xy=[a y0];
for t=a+h:h:b,y=y0+h*t*sqrt(y0);
xy=[xy; t y];
y0=y;end
xy
xy =
1.0000 1.0000
1.1000 1.1100
1.2000 1.2364
1.3000 1.3810
1.4000 1.5455
1.5000 1.7320
1.6000 1.9425
1.7000 2.1795
1.8000 2.4452
1.9000 2.7423
2.0000 3.0735
=== metode Trapesium-Euler ===
a=1;b=2;h=0.1;t01=0.0001;
y=1;xy=[a y];
for t=a+h:h:b,
y0=y+h*t*sqrt(y);y1=y0;
y2=y+h*(t*sqrt(y)+(t+h)*sqrt(y1))/2;
while abs(y2-y1)>=t01,
y1=y2;y2=y+h*(t*sqrt(y)+(t+h)*sqrt(y1))/2;
end
xy=[xy; t y2];y=y2;end
xy
xy =
1.0000 1.0000
1.1000 1.1185
1.2000 1.2547
1.3000 1.4107
1.4000 1.5883
1.5000 1.7899
1.6000 2.0176
1.7000 2.2741
1.8000 2.5619
1.9000 2.8837
2.0000 3.2426
''Bandingkan nilai tersebut dengan nilai-nilai penyeleseian eksak ''
1 1
1.1 1.1077562
1.2 1.2321
1.3 1.3747563
1.4 1.5376
1.5 1.7226562
1.6 1.9321
1.7 2.1682562
1.8 2.4336
1.9 2.7307563
2. 3.0625
nilai eksak tersebut didapat dari pendekatan analitis
kita amati bahwa pendekatan dengan metode euler lebih dekat ke nilai eksak sehingga mempunyai galat yang ledih kecil dibanding dengan pendekatan trapesium-euler,pendekatan trapesium-euler mempunyai nilai galat yang lebih besar
|