Daftar Isi
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
- Parameter dan Konstanta:
L
,T
,alpha
,nx
,nt
,dx
,dt
, dank
diatur.
- Inisialisasi Grid:
u
danu_new
diinisialisasi sebagai vektor baris dengan panjangnx
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, sehinggafloor(nx/2) + 1
digunakan untuk mengakses elemen tengah.
- 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, vektoru
diperbarui dengan nilaiu_new
.
- Loop luar berjalan dari 2 hingga
- Plotting:
- Distribusi suhu pada akhir simulasi diplot menggunakan fungsi
plot
MATLAB. - Label sumbu dan judul grafik ditambahkan untuk memperjelas interpretasi hasil.
- Distribusi suhu pada akhir simulasi diplot menggunakan fungsi
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.