/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
creamygirl 610
berpox 610
jomfruane 570
10  3773 570
runge kutta 4 - lille detalje
Fra : Søren N


Dato : 03-10-04 09:25

Til beregning af et legemes bane i et system med andre legemer (et
solsystem) vil jeg forsøge at bruge rk4.
Tilsyneladende er den banal nok.
k1 beregnes som ændringen i ens data for t=0 ganget med dt etc. Spørgsmålet
er dog hvad man gør ved de indbyrdes afhængige størelser. Position afhænger
af fart, fart afhænger af acceleration og acceleration afhænger af position.

Skal man definere et legeme som en vektor bestående af position, fart,
acceleration, og beregne k1 som en vektor bestående af ændringen af hver af
de tre størelser i startøjeblikket?

Hvis planeten i t=0 har en hastighed på 20, en position på 10 og en
acceleration på 5, så er ændringen 10 for position, 5 hastighed og ... nul
for acceleration da det ikke er den jeg skal integrere?
Dermed bliver k1 altså dt*(10,5,0) og k2 bliver da dt*( (20,10,5)+½(10,5,0))

Der er altså to ting jeg er usikker på... ok, der er to ting, som jeg _ved_
at jeg er usikker på
1: beregner man k1..4 for alle parameter samlet? Position, hastighed og
acceleration som een vektor, eller beregnes de adskildt?
2: hvad er a'? Difrentialet af accelerationen for planeten i en given
position og med en given hastighed? a' kendes vel ikke. Er den så bare 0?

Jeg går ud fra at det her er ret simpelt, så hvis der er en som vil skrive
udtrykket for k2 for et simpelt 2d-system, så vil det være en stor hjælp.

På forhånd tak for enhver hjælpe I kan give



 
 
Niels L Ellegaard (03-10-2004)
Kommentar
Fra : Niels L Ellegaard


Dato : 03-10-04 10:20

On Sun, 3 Oct 2004 10:24:36 +0200
"Søren N" <soren@ni.mail.dk> wrote:

> Til beregning af et legemes bane i et system med andre legemer (et
> solsystem) vil jeg forsøge at bruge rk4.Tilsyneladende er den banal
> nok. k1 beregnes som ændringen i ens data for t=0 ganget med dt etc.
> Spørgsmålet er dog hvad man gør ved de indbyrdes afhængige størelser. > Position afhænger af fart, fart afhænger af acceleration og
> acceleration afhænger af position.

Det simpleste du kan gøre er at beskrive dit system med positionen x(t) og hastigheden v(t). Så kan du vise at dynamikken i dit system er beskrevet ved følgende differentialligningssystem

dx(t)/dt = v(t)
dv(t)/dt = m^(-1) F(x(t),t)

Her angiver funktionen F(x(t),t) kræfterne fra de andre legemer. Dette ligningssystem kan løses med Runge Kutta.

Så vidt jeg har forstået har astronomerne en masse frække tricks til at forbedre nøjagtigheden af deres simuleringer, men det ved jeg ikke så meget om.

         Held og lykke

            Niels

Søren N (03-10-2004)
Kommentar
Fra : Søren N


Dato : 03-10-04 11:55

>Det simpleste du kan gøre er at beskrive dit system med positionen x(t) og
hastigheden v(t). Så kan du vise at dynamikken i dit system er >beskrevet
ved følgende differentialligningssystem
>dx(t)/dt = v(t)
>dv(t)/dt = m^(-1) F(x(t),t)

Oh, ja! Jeg er jo ikke intereseret i accelerationen til andet end at give
mig ændringen for hastighed, så derfor behøver den ikke være med, som
direkte element i vektoren. Det er det du siger, ikke?
Du beskriver kraften som F(x(t),t), men da kraften kun er en funktion af
positionen er F(x(t)) vel lige så god? t-elementet ville kun være nødvendig
hvis F også var en funktion af tiden?

>Så vidt jeg har forstået har astronomerne en masse frække tricks til at
forbedre nøjagtigheden af deres simuleringer, men det ved jeg ikke så meget
>om.

Et af deres tricks er tilsyneladende bare at bruge adaptiv størelse for
deres dt. Det ser nu ud til at være helt ligetil.

>Held og lykke
Takker. Også tak for skubbet i den rigtige retning. Havde set mig lidt skæv
på accelerationen.



Filip Larsen (03-10-2004)
Kommentar
Fra : Filip Larsen


Dato : 03-10-04 12:55

Søren N skrev

> Til beregning af et legemes bane i et system med andre legemer (et
> solsystem) vil jeg forsøge at bruge rk4.
>
> [..]
>
> Skal man definere et legeme som en vektor bestående af position, fart,
> acceleration, og beregne k1 som en vektor bestående af ændringen af
hver af
> de tre størelser i startøjeblikket?

Næsten. Som Niels var inde på, så er tilstanden af dit system en vektor
med position og hastighed af de legemer du vil beregne banen af og
feltet er en vektor der beskriver ændringen af denne tilstand således,
at hver komponent i feltvektoren beskriver den differentielle ændring
for den tilsvarende komponent i tilstandsvektoren. Så helt generelt skal
du altså løse systemet:

x(0) = x0,
dx(t)/dt = f(x(t))

hvor x er tilstandsvektoren og f er feltet. Generelt skriver man feltet
som f(x(t),t), men i dette tilfælde er systemet autonomt, dvs. feltet
afhænger ikke eksplicit af tiden, så jeg har skrevet det som f(x(t)).

Hvis du vil beregne banen for m planeter i d dimensioner (2 eller 3), så
vil x og f være vektorer af længden 2*d*m. For en planet i to
dimensioner er længden altså 4, mens den for solsystemet med n=10 (solen
inklusive) i tre dimensioner vil være 60. Bemærk, at hvis du kun vil
beregne banen for få af legemerne i et planetsystem skal du have en
anden måde at beregne positionen af de planeter der tyngdemæssigt
influerer de beregnede legemer.

Så lang så godt. Nu har du så den kendte tilstand x = x(t) og ønsker at
beregne x(t+h) vha RK4:

k1 = h*f(x),
k2 = h*f(x+k1/2),
k3 = h*f(x+k2/2),
k4 = h*f(x+k3),
x(t+h) = x(t) + k1/6 + k2/3 + k3/3 + k4/6

For hver RK4 skridt skal du alstå evaluere feltet 4 gange for 4 (lidt)
forskellige tilstande.

Afhængig af hvad du skal bruge resultatet til, så skal du være opmærksom
på, at alle eksplicitte RK metoder (såsom RK4) introducerer kunstig
energi i systemet hvilket kan være et problem når der ikke er naturlig
friktion i systemet til at begrænse denne energi. Der er også problemer
med at integrere systemer der har delsystemer med meget stor forskel i
"tidskonstanter" (stive systemer), fx. beregning af en satellit i bane
om jorden samtidig med at man gerne integrerer banen for Solen, Månen og
Jupiter.

Du skal også være opmærksom på, at det kan være en fordel at benytte
automatisk skridtkontrol således, at den relative nøjagtighed af banen
holder sig på en hvis størrelsesorden. Hvis du blot integrerer på slump
med en fast skridtstørrelse risikerer du at få stor trunkeringsfejl ved
tætte passager og høj akummuleret afrundingsfejl ellers.


Mvh,
--
Filip Larsen



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste