Partiella differentialekvationer (PDE) är grundläggande för att modellera olika fysiska fenomen, såsom värmeöverföring, vågförökning och vätskedynamik. Använda Python-bibliotek som NumPy och SciPy förenklar processen att lösa dessa ekvationer numeriskt. Denna artikel ger en steg-för-steg-strategi för att lösa PDE med dessa verktyg.

Ställa in problemet

Börja med att definiera PDE och domänen. Tänk till exempel på endimensionell värmeekvation:

]) []]]]][[[]

Ange initiala förhållanden, gränsförhållanden och parametrar som termisk diffusivitet ].

Discretizing the Domain

Dela den rumsliga domänen i diskreta punkter med NumPy-arrayer. Till exempel skapa ett rutnät av poäng:

] utgör numpy som np

]x = np.linspace(0, 1, 100)]

Ställ in tidssteget och den totala simuleringstiden för att styra den numeriska stabiliteten och noggrannheten.

Genomföra den numeriska metoden

Använda ändliga skillnadsmetoder för att approximera derivat. För värmeekvationen uppdaterar ett explicit system temperaturen vid varje punkt:

u new = u + r * (u[i+1] - 2*u[i] + u[i-1])[]]]

(f) [[f]]][[[f]]]]]] är en stabilitetsparameter som beräknas som ]]α * dt/dx2[]].

Kör simuleringen

Upprätta över tidssteg, uppdatera lösningsarrayen vid varje iteration. Använd NumPy-operationer för effektivitet:

för n i intervall (steg):

och nbsp;  u[1:-1] = u[1:-1] + r * (u[2:] - 2 *u[1:-1] + u[:-2])

Applicera gränsvillkor efter varje uppdatering för att upprätthålla problembegränsningarna.

Visualisera resultat

Använd bibliotek som Matplotlib för att visualisera temperaturfördelningen över tiden. Anslut de första och sista tillstånden för att observera diffusionsprocessen.

Exempelkod:

]) Impportera matplotlib.pyplot som plt

]plt.plot(x, u)]