Matematik
partiel differentialligning - numerisk metode
Jeg er igang med et projekt om en energibalanceligning lavet af Gerald R. North, og skal have programmeret en simulation. Min vejleder har fortalt mig, at jeg skal finde den numeriske løsning til ligningen, som ser ud som følger:
C*(T/dt) = QS(x)(1-a(x))-A-BT+(d/dx)(D(1-x^2)(d/dx)T
x = sin(phi) - phi beskriver hvor på Jorden vi befinder os, altså en breddegrad.
C = er Jorden effektive varmekapacitet
T = gennemsnitstemperatur
t = tid..
Q = solarkonstant*1/4
S(x)= er en funktion af x, opbygningen er ligegyldig for mit problem.
a(x) er også ligegyldig.
A = konstant
B = konstant
D = konstant
Jeg har opdelt Jorden i 151 punkter langs længdegraderne, og jeg benævner et punkt i. Der er symmetri omkring ækvator, og vha. x ses det at sydpolen: x=-1 nordpolen: x=1.
Tiden måles som n.
Mit problem er, at jeg skal tilnærme de tre led dT/dt, d(1-x^2)/dx, dT/dx. Jeg tager meget små skridt, så det burde være simpelt ifølge min vejleder - men jeg har ikke rigtig nogen viden inden for det her. Jeg er kommet frem til, at det 1. og 3. led kan tilnærmes som:
(T(n+1)_i-T(n))/delta-t. ~ dT/dt
(T(n)_i+1 -T(n)_i-1)/2delta-x ~ dT/dx
Men jeg kan simpelthen ikke gennemskue 2. led.
Tak på forhånd.
Heidi
Svar #1
12. marts 2007 af sigmund (Slettet)
Så kan vi gå videre til selve løsningen. Når jeg ser, at x ligger i intervallet [-1,1], tænker jeg straks på spektralmetoder. Kender du noget til disse? Til at starte med kan du læse kapitel 6 i denne bog: http://web.comlab.ox.ac.uk/oucl/work/nick.trefethen/book.pdf . Den gennemgår en metode, der er god til problemer, der ligger i et interval, symmetrisk omkring 0. Det er dog kun en del af bogen. Hele bogen fås ikke gratis på nettet. En anden bog af samme forfatter, der gennemgår noget af det samme, er fuldt tilgængelig via nettet: http://web.comlab.ox.ac.uk/oucl/work/nick.trefethen/pdetext.html . Endelig er der en meget omfattende bog om emnet: http://www-personal.engin.umich.edu/~jpboyd/aaabook_9500may00.pdf . Denne indeholder information om mange forskellige spektralmetoder, også til brug i polære og sfæriske domæner.
Disse spektralmetoder ville være at foretrække til diskretisering af den rumlige koordinat. Til tidskoordinaten kan endelige differenser ("finite differences" på engelsk) bruges, hvilket du også er i gang med.
Hvis du ikke kender noget til spektralmetoder fra før, så skal du måske bare anvende endelige differenser til diskretisering af både t- og x-koordinaten. Det vil måske føre for vidt at lære et helt nyt emne i forbindelse med det foreliggende projekt. Det lader til, at du kender noget til endelige differencer i forvejen.
Jeg håber du kan bruge dette svar til noget. Kunne du evt. fortælle lidt mere om den foreliggende opgave. Så kunne jeg måske bidrage mere konstruktivt til din løsning.
Til sidst vil jeg spørge, hvad formålet med at løse ligningen er. Er selve formålet med opgaven at analysere den ligning?
Svar #2
13. marts 2007 af Nephis (Slettet)
Jeg har aldrig haft om spektralmetoder, så det er nok lidt for omfattende på nuværende tidspunkt.
Det er meningen at jeg skal kunne isolere T(n+1)_i på venstresiden - altså så jeg ved at ændre i de forskellige af parametrene på højresiden, kan få en ny middeltemperatur.
Konstanterne har følgende startværdier og enheder:
A = 205 W/m^2
B = 2 W/m^2 *K
Q = 340 W/m^2
S(x) og a(x) er dimensionsløse. S(x) simuelerer drivhuseffekten og a(x) albedo-feedback.
Projektet går ud på at kode denne ligning og analysere den, ja. Men når jeg engang har fundet ud af programmere denne her del,( så jeg får 3 outputs; 1) middeltemperaturen fordelt på de forskellige breddegrader 2) varmefluxen 3) nettoenergi.. altså en graf der viser ind- og udstråling, og forskellen) skal jeg indsætte nogle andre led, som gør at modellen tilnærmer sig virkeligheden bedre.
Disse tilnærmelser skal blot gøre det muligt for mig at programmere modellen.
Håber du blev lidt klogere nu.
Jeg har forresten allerede fået et svar fra min vejleder, som siger, at løsningen er:
C*(T......)/delta-t = QS(x_i)*(1-a(x_i)-A-BT(n)_i
+ D((1 - x^2_i+1/2)(T(n)_i+1 - T(n)_i) - (1-x^2_i-1/2)(T(n)_i - T(n)_i-1) / (delta-x)^2.
Ved godt, at det er lidt svært at læse, men læs (n) som opløftet - et indeks "til tiden..". Og _ som "på stedet".
Jeg håber du evt. bare kan fortælle mig, hvordan han har trukket de to led sammen.
-Heidi
Svar #3
13. marts 2007 af sigmund (Slettet)
Er det rigtigt forstået hvad din vejleder skriver?
Svar #4
13. marts 2007 af sigmund (Slettet)
Formelen er åbenbart blevet væk på serveren. Se i stedet http://peecee.dk/?id=33991 .
Svar #5
13. marts 2007 af Nephis (Slettet)
Svar #6
13. marts 2007 af sigmund (Slettet)
Svar #7
13. marts 2007 af Nephis (Slettet)
Undskyld. Jeg manglede at fortælle, at nævneren delta-x^2 er fælles for hele leddet der skal multipliceres med D.
Svar #8
13. marts 2007 af sheaf (Slettet)
d/dx(D(1-x²)dT/dx) (*)
approksimeres med en central finite difference af anden orden, generelt givet ved
df/dx(x) ~= (f(x_(i+1))-f(x_(i-1))/(2delta_x)
som anvendt på (*) giver
[D(1-x_(i+1)²)(dT/dx)_(i+1) - D(1-x_(i-1)²)(dT/dx)_(i-1)]/(2delta_x)
hvorefter der anvendes forward time difference (1. ordens) på hver af dT/dx, hvilket producere det givne.
Traditionelt anvendes en i endimensionale tilfælde en rumlig diskretisering på formen {x_(j+½)}_(j=0)^N hvorved fremkommer intervallerne I_j = (x_(j-½),x_(j+½)), delta_x_i = x_(j+½) - x_(j-½), for j=0,...,N.
Husk stabilitetsanalyse og pas på under implementering af grænsebetingelserne.
Skriv et svar til: partiel differentialligning - numerisk metode
Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk?
Klik her for at oprette en bruger.
