Heuns metod

Heuns metod är namnet på den numeriska metod som används för att beräkna testladdningarnas rörelse i det elektriska fältet. (Hur det elektriska fältet och den elektriska potentialen beräknas beskrivs här.)

Kraften F(x,y) på en testladding som befinner sig i positionen s(x,y)=(x,y) i det elektriska fältet E(x,y) ges av,

F(x,y) = q*E(x,y)

där q är den elektriska laddningen hos testladdingen. Observera att eftersom det elektriska fältet inte är konstant utan beror av positionen så kommer också kraften på testladdningen bero av var den befinner sig, dvs dess position. Observera också att ovanstående ekvation är en vektor relation. Det elektriska fältet som testladdningen rör sig har två dimensioner, en i x-led och en i y-led, vilket enklast beskrivs som en vektor, E(x,y)=(Ex(x,y),Ey(x,y)). På samma sätt är kraften F och positionen s också vektorer. I det följande kommer vi att använda fet stil för att beteckna vektorer.

Kraften på testladdningen från det elektriska fältet gör att den accelereras vilket beskrivs av Newtons andra lag,

F(x,y) = m*a(x,y),

där m är testladdningens massa och a(x,y) är accelerationen. Tillsammans ger dessa två ekvationer den så kallade rörelseekvationen,

a(x,y) = q/m*E(x,y)

som matematiskt beskriver rörelsen. Genom att lösa rörelseekvationen så kan testladdningens rörelse beräknas. För att kunna göra det behöver vi veta sambandet mellan accelerationen och positionen. Accelerationen anger hur snabbt hastigheten v(x,y) ändras med tiden t. Matematiskt uttryckt så är accelerationen derivatan av hastigheten med avseende på tiden,

a(x,y) = dv(x,y)/dt

På samma sätt är hastigheten tidsderivatan av positionen, dvs den anger hur snabbt positionen ändras med tiden,

v(x,y) = ds(x,y)/dt,

Detta ger oss att rörelseekvationen kan skrivas som följande system av första ordningens ordinära differential ekvationer,

ds(x,y)/dt = v(x,y)
dv(x,y)/dt = q/m*E(x,y)

Då man löser ordinära differential ekvationer numeriskt så delar man in tiden i små tidsteg av storleken h. Till varje tidsteg hör en position s(xn,yn) och en hastighet v(xn,yn) där n anger vilket tidsteg som avses. Det enklaste sättet att approximera lösningen till ovanstående ekvationssystem är att anta att accelerationen och hastigheten är konstanta under ett tidsteg h. Givet testladdningens position och hastighet vid tiden t (tidsteg n) ges då positionen och hastigheten vid tiden t+h (tidsteg n+1) av,

s(xn+1,yn+1) = s(xn,yn) + h*v(xn,yn)
v(xn+1,yn+1) = v(xn,yn) + h*q/m*E(xn,yn)

För att detta ska fungera måste vi ta tillräckligt korta tidsteg h så att accelerationen och hastigheten är nästan konstant då testladdningen rör sig från s(xn,yn) till s(xn+1,yn+1).

Heuns metod är ett enkelt sätt att ta hänsyn till att accelerationen och hastigheten inte är konstant under ett steg. Genom att beräkna ett provisoriskt mellansteg med positionen s(x',y') och hastigheten v(x',y') fås en bättre lösning med ett fel av storleksordningen h2 istället för h. Lösningen ges av,

s(xn+1,yn+1) = s(xn,yn) + h*[v(xn,yn) + v(x',y')] /2
v(xn+1,yn+1) = v(xn,yn) + h*q/m* [E(xn,yn) + E(x',y')] /2
där
s(x',y') = s(xn,yn) + h*v(xn,yn)
v(x',y') = v(xn,yn) + h*q/m*E(xn,yn)

Det finns ännu noggrannare lösningsmetoder vilka allmänt brukar kallas för Runge-Kutta metoder.

Den Java-kod som räknar ut testladdingarnas rörelse finns här.