Table of Contents
Delvis differensialligninger (PDEs) er grunnleggende i å modellere ulike fysiske fenomener, som varmeoverføring, bølgeutbreiing og flytende dynamikk. Ved hjelp av Python biblioteker som NumPy og SciPy forenkler prosessen med å løse disse ligningene numerisk. Denne artikkelen gir en trinnvis tilnærming til å løse PDEs med disse verktøyene.
Å sette opp problemet
Begynn med å definere PDE og domenet. For eksempel, vurdere den endimensjonale varmelikningen:
] ⁇ u/ ⁇ t = α ⁇ 2u/ ⁇ x2
Oppgi initiale betingelser, grenseforhold og parametre som termisk diffusivitet ]].
Avvikle domenet
Del det geografiske domenet i diskrete punkt ved hjelp av NumPy-arrays. For eksempel, opprette et rutenett av poeng:
import numpy som np]
x = np.linspace(0, 1, 100)
Sett tidstrinnet og total simuleringstid for å styre den numeriske stabiliteten og nøyaktigheten.
Implementere den numeriske metoden
Bruk finitt forskjellsmetoder til å tilnærme derivater. For varmeligningen oppdaterer et eksplisitt system temperaturen ved hvert punkt:
u new = u + r * (u[i+1] - 2*u[i] + u[i-1])
hvor r] er en stabilitetsparameter beregnet som ]α * dt / dx2.
Kjører simuleringen
Iterer over tidstrinn, oppdatere løsningsarray ved hver iterasjon. Bruk NumPy operasjoner for effektivitet:
for n i rekkevidde(steg):
u[1:-1] = u[1:-1] + r * (u[2:] - 2*u[1:-1] + u[:-2])
Bruk grensebetingelser etter hver oppdatering for å opprettholde problembegrensningene.
Visualizing Results
Bruk biblioteker som Matplotlib til å visualisere temperaturfordelingen over tid. Plot de opprinnelige og endelige tilstandene for å observere diffusjonsprosessen.
Eksempelkode:
Import matplotlib.pyplot som plt]
plt.plot(x, u)]