Belajar Matlab – Solusi Persamaan Diferensial Biasa Numerik dengan Metode Heun

1 min read

Solusi PBD Orde I dengan Metode Numerik Heun

AhmadDahlan.NET – Metode Heun adalah analisi Numerik yang digunakan menghitung luas sebuah daerah yang dibatasi oleh sebuah garis dari fungsi y dengan menggunakan pendekatan Perkiraan Gradian dari Garis yang ada. Metode ini adalah modifikasi Analisi Numerik PDB dengan metode Euler.

Pada Metode Euler, Perhitungan dibatasi dengan penggunaan garis tangen dari potongan-potongan garis yang dibentuk olhe sebuah fungsi. Asumsinya semakin kecil inteval yang dibentuk maka semakin kecul pula kesalahan yang dihasilkan.

Hanya saja Prediksi dari Euler masih terdapat kekurangan, misalnya pada garis lengkung ke bawah (cekung) persaman garis tebakan akan berada di daerah atas, begitu pula sebaliknya seperti ilutrasi berikut :

Kelemahan Metode Euler dalam Peyelesaian Solusi PDB Orde I

Pada Metode Heun Dilakukan Pendekatan yang lebih presisi dalam mengikuti kelengkungan dari Fungsi S yakni menebak gradien antara gardien yang lewat di atas curva dan di bawah curva seperti gambar di bawah ini

Prediksi Gradian Tangensial di Metode Heun

Langkah Penyelesaian Metode Heun Sebagai Berikut :

1. Tentukan nilai fungsi menggunakan nilai awal x0 dan y0 :

y' = f(x_1,y_1)

2. Tentukan nilai y1+i. Persamaan ini disebut sebagai persamaan Prediktor

y_{1+i}=y_i+y'h

3. Tentukan nilai y1+i

y_{1+i}' =

4. Tentukan nilai rata-rata y

\overline{y}= \frac{y_1+y_{1+i}'}{2} 

5. Tentukan nilai Hampiran akhir

y_{1+i}=y_i+\overline{y}*h

Persamaan ini disebut sebagai persaman Corrector.

A. Studi Kasus

Misalkan sebuah Persamaan Diferensial Biasa orde I

y' =4e^{0.8x}-5y 

dengan batas bawah x = 0 dan batas x = 4 dengan langkah h = 1 dan kondisi awal y(0) = 2. Tentukan solusi numerik dari PDB Orde I tersebut dengan metode Heun!

Solusi Metode analitik dari Persaman di atas adalah :

y_{(x)} =\frac{4}{1,3}(e^{0,8x}-e^{-0,5x})+2e^{-0,5x}

Solusi Numerik dengan Metode Heun

1. Tentukan fungsi pada x = 0 dan x = 2

y'= 4e^0-0,5(2) = 3

2. Menentukan estimasi y pad x = 1 dengan dengan persamaan prediktor

y_1=2+3(1) = 5

3. Memperbaiki Nilai Estimasi y1+i digunakan y1 untuk memprediksi slope pada akhir interval

y_1'=4e^{0.8(1)}-0,5(5)=6.402164

4. Menggabungkan Slope awal dan slope akhir untuk menghasilkan slope rata-rata dari interval x=0 sampai x=1

\overline{y}=\frac{3+6.402164}{2}=4.701082

5. Solusi (4) disubstitusi ke persamaan korektor untuk memberikan nilai prediksi pada x=1

y_1 = 2+ 4.701082(1) = 6.701082

6. Substitusi balik hasil (5) ke persamaan ruas kanan korektor untuk memperbaiki prediksi y1

y_1=2+\frac{3+4e^{0,8(1)}-0,5(6,701082)}{2}(1)=6.275811

7. Lakukan langkah (6) sebanyak iterasi yang dinginkan

y_1=2+\frac{3+4e^{0,8(1)}-0,5(6.275811)}{2}(1)=6.382129

B. Script Matlab

y0=2;
h=1;
mx(1)=0;
my(1)=2;
%solusi Numerik
for ii=1:4
  f1=(4*exp(0.8*x))-(0.5*y0);
  y=y0+(f1*h)
  x=x+1
  f2=(4*exp(0.8*x))-(0,5*y);
  m=(f1+f2)/2;
  y=y0+m;
    for jj=1:16;
    y1=y;
    y=y0+((f1+(4*exp(0.8*x))-(0,5*y1))*h/2);
    y1=y;
    end
  mx(ii+1)=ii;
  my(ii+1)=y;
  y0=y
end
%solusi Analitik
y_analitik = ((4/1.3*(exp(0,8*mx)-exp(-0,5*mx)))+2*exp(-0.5*mx);
plot(mx,my,'r',mx,y_analitik,'b'b);