Ahmad Dahlan God does not play dice with the Cosmos.

Diferensial Numerik – Metode Finite Difference dengan Matlab

2 min read

Diferensial Numerik – Metode Finite Difference

Metode Finite Difference (Perbedaan Hingga) adalah teknik numerik yang digunakan untuk mendekati solusi persamaan diferensial. Metode ini menggantikan turunan kontinu dengan perbedaan terhingga (finite differences) yang dapat dihitung secara numerik. Berikut adalah penjelasan lebih mendalam mengenai metode ini:

Dasar Teori Finite Difference

Turunan pertama dan kedua dari suatu fungsi 𝑓(𝑥)f(x) dapat didekati menggunakan finite differences. Misalnya, untuk mendekati turunan pertama 𝑓′(𝑥), kita bisa menggunakan formula forward difference, backward difference, atau central difference.

1. Forward Difference :

f'(x)≈\frac{f(x+h)-f(x)}{h}

di mana h adalah langkah kecil (step size).

2. Backward Difference :

f'(x)≈\frac{f(x)-f(x-h)}{h}

3. Central Difference :

f'(x)≈\frac{f(x+h)-f(x-h)}{h}

Turunan kedua 𝑓′′(𝑥) dapat didekati dengan central difference:

f''(x)≈\frac{f(x+h)-2f+f(x-h)}{h^2}

Penerapan dalam Persamaan Diferensial Parsial

Dalam konteks persamaan diferensial parsial, finite difference digunakan untuk mendiskritisasi ruang dan waktu. Sebagai contoh, pertimbangkan persamaan panas satu dimensi:

\frac{∂u}{∂t}≈\alpha\frac{∂^2u}{∂x^2}

dengan kondisi batas dan kondisi awal yang diberikan.

Kita bisa mendiskritisasi ruang dan waktu menjadi grid, dengan 𝑥𝑖 = 𝑖Δ𝑥 dan tn=𝑛Δ𝑡. Kemudian, solusi 𝑢(𝑥,𝑡) didekati dengan u𝑖n​ yang berarti 𝑢(𝑥𝑖 ,tn).

Pendekatan finite difference untuk turunan ruang dan waktu dapat ditulis sebagai:

\frac{∂u}{∂t}≈\frac{u_i^{n+1}-u_i^n}{\Delta t}
\frac{∂^2u}{∂x^2}≈\frac{u_{i+1}^{n}-2u_i^n+u_{i-1}^{n}}{\Delta x^2}

Dengan menggantikan turunan dalam Persaman Difereinsal Parsial dengan finite differences, kita mendapatkan skema eksplisit atau implisit. Untuk skema eksplisit, substitusi ini menghasilkan:

\frac{u_i^{n+1}-u_i^n}{\Delta t}=α\frac{u_{i+1}^{n}-2u_i^n+u_{i-1}^{n}}{\Delta x^2}

yang bisa direorganisir untuk menghitung u𝑖n+1​​:

u_i^{n+1}=u_i^n+\frac{α Δ t}{(Δx)^2}(u_{i+1}^{n}-2u_i^n+u_{i-1}^{n})

Contoh Implementasi

Berikut adalah contoh sederhana implementasi metode finite difference untuk persamaan panas dalam bahasa pemrograman Matlab:

% Parameter
L = 1.0;           % Panjang batang
T = 0.5;           % Waktu total
alpha = 0.01;      % Konduktivitas termal
nx = 10;           % Jumlah grid ruang
nt = 100;          % Jumlah grid waktu
dx = L / (nx-1);   % Ukuran langkah ruang
dt = T / nt;       % Ukuran langkah waktu
k = alpha * dt / dx^2;

% Inisialisasi grid dan kondisi awal
u = zeros(1, nx);
u_new = zeros(1, nx);
u(floor(nx/2) + 1) = 1;  % Kondisi awal: puncak di tengah (MATLAB indexing starts from 1)

% Loop waktu
for n = 2:nt
    for i = 2:nx-1
        u_new(i) = u(i) + k * (u(i+1) - 2*u(i) + u(i-1));
    end
    u = u_new;
end

% Plot hasil
x = linspace(0, L, nx);
plot(x, u);
xlabel('Posisi');
ylabel('Suhu');
title('Distribusi Suhu pada Batang');
grid on;

Penjelasan Kode MATLAB

  1. Parameter dan Konstanta:
    • L, T, alpha, nx, nt, dx, dt, dan k diatur.
  2. Inisialisasi Grid:
    • u dan u_new diinisialisasi sebagai vektor baris dengan panjang nx yang diisi dengan nol.
    • Kondisi awal diatur dengan memberikan nilai 1 pada titik tengah batang (u(floor(nx/2) + 1) = 1). Perhatikan bahwa indeks MATLAB dimulai dari 1, sehingga floor(nx/2) + 1 digunakan untuk mengakses elemen tengah.
  3. Loop Waktu:
    • Loop luar berjalan dari 2 hingga nt, mensimulasikan perkembangan waktu (loop dimulai dari 2 karena MATLAB indeks dimulai dari 1).
    • Loop dalam berjalan dari 2 hingga nx-1, menghitung suhu baru berdasarkan formula finite difference eksplisit.
    • Setelah menghitung nilai u_new untuk setiap titik dalam grid, vektor u diperbarui dengan nilai u_new.
  4. Plotting:
    • Distribusi suhu pada akhir simulasi diplot menggunakan fungsi plot MATLAB.
    • Label sumbu dan judul grafik ditambahkan untuk memperjelas interpretasi hasil.

Dengan menjalankan kode MATLAB ini, Anda akan mendapatkan visualisasi distribusi suhu pada batang setelah waktu 𝑇=0.5T=0.5 detik.

Kesimpulan

Metode Finite Difference adalah alat yang kuat dan fleksibel untuk mendekati solusi dari persamaan diferensial. Dengan mengubah turunan menjadi perbedaan hingga, metode ini memungkinkan kita untuk memecahkan masalah yang sulit secara analitik melalui pendekatan numerik.

Ahmad Dahlan God does not play dice with the Cosmos.

Perpindahan Panas – Konduksi, Konveksi dan Radiasi

Perpindahan Panas Kalor merupakan suatu bentuk energi yang diterima sebuah benda sehingga suhunya atau wujudnya berubah dan kalor merupakan suatu ukuran atau jumlah panas....
Ahmad Dahlan
5 min read

Desain Instruksional dalam Pembelajaran Bauran

Desain Instruksional adalah serangkaian proses perencanaan, analisa, desain, pengembangan, penerapan dan evaluasi instruksi dalam setting pendidikan atau pelatihan baik formal maupun informal yang terstruktur...
Ahmad Dahlan
51 sec read

Rangkuman Materi Fisika

Fisika Dasar FISIKA DASAR  BESARAN DAN PENGUKURAN  VEKTOR  KINEMATIKA GERAK LURUS  KINEMATIKA GERAK MELINGKAR  HUKUM GERAK NEWTON  OPTIKA (I)  ALAT OPTIK  SUHU  KALOR  LISTRIK DINAMIS...
Ahmad Dahlan
25 sec read

Tinggalkan Balasan