Beräkningsvetenskap II
Januari 2015
Laboration: Ordinära differentialekvationer, del 2
Begreppet noggrannhetsordning
I den här laborationen ska du undersöka begreppet noggrannhetsordning och hur detta
begrepp är kopplat till beräkningstid/effektivitet. Vi gör detta för några olika metoder. Man kan
teoretiskt härleda noggrannhetsordningen för en given metod, men här ska vi istället studera
detta empiriskt, dvs praktiskt utgående från data.
Kort introduktion
Till de numeriska metoderna som används för att lösa ordinära differentialekvationer är kopplat
en viss s k noggrannhetsordning (detta gäller för övrigt även metoder för beräkning av
integraler som ingick i Beräkningsvetenskap I). Om en viss metod är effektiv och ”bra” avgörs
bl a (men inte enbart) av detta begrepp. Det är därför viktigt att förstå vad begreppet står för.
Vi ska här empiriskt undersöka undersöka och åskådliggöra begreppet för tre olika numeriska
metoder, nämligen Eulers metod, Heuns metod och klassisk Runge-Kutta.
Att göra sedan du läst introduktionen ovan
1. En demo av noggranhetsordningen
Ladda ner Matlab-filen noDemo.m från kurshemsidan. Observera att noDemo är en
matlabfunktion som alltså måste anropas. Läs hjälptexten för funktionen (help noDemo)
för att förstå hur den anropas och används. Funktionen plottar det relativa felet som funktion
av steglängden, där steglängden successivt halveras ner till det hmin som anges som
inparameter.
Kör programmet och studera och försök förstå den figur som ritas upp. Det du ser är en bild
av de tre metodernas noggrannhetsordning.
Var uppmärksam på:
Lutningen på de olika kurvorna, det är lutningen som är respektive metods
noggrannhetsordning
Det tycks finnas en gräns för hur noggrann lösning man kan beräkna.
Ungefär vid vilket relativt fel finns denna gräns och varför?
2. Koppling mellan noggrannhetsordning och beräkningstid
När man löser ode:er vill man att metoden ska lösa problemet med en viss noggrannhet, ett
visst relativt fel. Här ska du titta på hur detta är kopplat till noggrannhetsordningen. Ladda
ner Matlabfilen stegDemo.m från kurshemsidan. Programmet utgår från samma figur som
i deluppgift 1, men här ska som inparameter ge en viss noggrannhet. Utgående från denna
noggrannhet och figuren kan du bestämma vilken steglängd som krävs av respektive metod.
Beräkningsvetenskap II
Januari 2015
Kör programmet och studera de utdata som genereras. Observera att det kan ta lite tid att
utföra alla beräkningar (beroende på vilken noggrannhet du väljer).
Var uppmärksam på:
Skillnaderna i steglängd och antal beräkningssteg för de olika metoderna
På vilket sätt beräkningstid per steg skiljer sig mellan de olika metoderna.
Vilka tar längst tid per steg och varför?