Berikut adalah artikel blog tentang solusi numerik untuk persamaan difusi:
Contoh Solusi Numerik Persamaan Difusi
Persamaan difusi adalah persamaan diferensial parsial yang menggambarkan proses difusi suatu kuantitas, seperti panas atau zat terlarut, melalui suatu medium. Persamaan difusi dapat diselesaikan secara analitik dalam beberapa kasus sederhana, tetapi seringkali lebih mudah dan efisien untuk menyelesaikannya secara numerik.
Metode Perbedaan Hingga
Salah satu metode numerik yang paling umum digunakan untuk menyelesaikan persamaan difusi adalah metode perbedaan hingga. Metode ini melibatkan pembagian domain spasial dan temporal menjadi grid diskrit dan kemudian menghampiri turunan dalam persamaan difusi menggunakan perbedaan hingga.
Skema Eksplisit
Dalam skema eksplisit, nilai variabel tak diketahui pada waktu langkah berikutnya dihitung secara eksplisit dari nilai variabel tak diketahui pada waktu langkah saat ini. Skema eksplisit sederhana untuk persamaan difusi 1D adalah:
u(i,j+1) = u(i,j) + Ξ±[u(i+1,j) - 2u(i,j) + u(i-1,j)]
di mana:
u(i,j)
adalah nilai variabel tak diketahui pada titik grid ke-i
dan waktu langkah ke-j
.Ξ± = Ξt/(Ξx)^2
adalah parameter tanpa dimensi yang berkaitan dengan langkah waktu dan langkah spasial.
Skema eksplisit sangat sederhana untuk diimplementasikan, tetapi memiliki batasan stabilitas. Untuk menjamin kestabilan, nilai Ξ±
harus kurang dari atau sama dengan 1/2. Jika Ξ±
lebih besar dari 1/2, solusi akan tidak stabil dan akan tumbuh secara eksponensial.
Skema Implisit
Dalam skema implisit, nilai variabel tak diketahui pada waktu langkah berikutnya dihitung secara implisit dari nilai variabel tak diketahui pada waktu langkah berikutnya dan juga waktu langkah saat ini. Skema implisit yang umum digunakan untuk persamaan difusi 1D adalah skema Crank-Nicolson:
u(i,j+1) - u(i,j) = (Ξ±/2)[u(i+1,j+1) - 2u(i,j+1) + u(i-1,j+1) + u(i+1,j) - 2u(i,j) + u(i-1,j)]
Skema implisit secara inheren lebih stabil daripada skema eksplisit dan tidak memiliki batasan stabilitas. Namun, skema implisit lebih kompleks untuk diimplementasikan, karena memerlukan penyelesaian sistem persamaan linier pada setiap langkah waktu.
Contoh Implementasi Python
Berikut adalah contoh sederhana implementasi metode perbedaan hingga eksplisit untuk menyelesaikan persamaan difusi 1D dalam Python:
import numpy as np
import matplotlib.pyplot as plt
# Parameter
nx = 101
nt = 100
dx = 2/(nx-1)
dt = 0.0001
alpha = dt/(dx**2)
# Kondisi awal
u = np.zeros(nx)
u[nx//2] = 1
# Loop waktu
for n in range(nt):
un = u.copy()
for i in range(1, nx-1):
u[i] = un[i] + alpha*(un[i+1] - 2*un[i] + un[i-1])
# Plot hasil
plt.plot(np.linspace(0, 2, nx), u)
plt.xlabel('x')
plt.ylabel('u(x,t)')
plt.title('Solusi Numerik Persamaan Difusi')
plt.show()
Contoh ini mendemonstrasikan solusi numerik sederhana. Untuk masalah yang lebih kompleks, metode yang lebih canggih mungkin diperlukan.
Kesimpulan
Metode perbedaan hingga adalah alat yang ampuh untuk menyelesaikan persamaan difusi secara numerik. Pilihan antara skema eksplisit dan implisit bergantung pada persyaratan stabilitas dan kompleksitas komputasi. Memilih metode dan parameter yang tepat penting untuk mendapatkan solusi yang akurat dan efisien. Semoga contoh di atas memberikan pemahaman dasar tentang cara mendekati solusi numerik untuk persamaan difusi. Penggunaan pustaka numerik seperti SciPy
dapat menyederhanakan proses implementasi dan meningkatkan efisiensi komputasi untuk masalah yang lebih kompleks.