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)]