Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Per Wahlund, tel. 471 2986 Tentamen i Beräkningsvetenskap II, 5.0 hp, 2012-05-31 Skrivtid: 14 00 17 00 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat formelblad, miniräknare. Det är också tillåtet att använda Mathematics Handbook eller Physics Handbook. För fullt uppfyllda mål och kriterier på uppgifterna krävs fullständiga räkningar och utförliga resonemang samt motivering till alla svar. Kursmål (förkortade), hur de täcks i uppgifterna och maximalt betyg. För godkänt krävs att varje mål ska ha minst en godkändmarkering, och att ett av målen ska ha minst två stycken. Fråga nr Nyckelbegrepp Algoritmer Analys Argumentation 1 3 3 3 2 3 3 3 3 3 4 3 5 3 6 5 5 7 5 5 5 Del A 1. Man har fått följande mätvärden Ü 1 2 4 5 6 Ý 4 2 4 6 10 (a) Bestäm ett andragradspolynom som går genom de tre första punkterna. Använd Newtons interpolationsformel. (b) Vad kallas den metod då man försöker anpassa ett andragradspolynom till alla fem punkterna, vilket dock kanske inte stämmer exakt i någon punkt. Ange två situationer där man kan tänkas vilja använda en sådan approximation? 1
2. (a) Vi har differentialekvationen Ý ¼ (Ø) = 1 + Ø Ý(Ø) Ø 2 Ý(2) = 15 Visa att du behärskar Heuns metod genom att göra ett steg med steglängden = 01. (b) Om man fick veta att felet i det värde man fick för y(2.1) i ) var högst 0.009, uppskatta med hjälp av detta hur många steg man skulle ha behövt göra på intervallet [2 21] för att med Heuns metod få ett värde på y(2.1) som har ett fel som är högst 05 10 4.. 3. (a) Bestäm stabilitetsområdet för metoden Euler framåt, (även kallad explicit Euler), genom att tillämpa den på testekvationen Ý ¼ = Ý (b) Antag att man använder adaptiv explicit Euler respektive adaptiv implicit Euler för att lösa en ODE, (samma problem med båda metoderna). Om ODE:n är ett styvt problem, på vilket sätt kommer det att märkas i respektive lösningsprocess? 4. I miniprojekten på den här kursen fick du lösa ett och samma problem dels med en Monte Carlometod och dels genom att lösa ordinära differentialekvationer. Argumentera i nedanstående fall för vilken av dessa två lösningsmetodiker som vore lämplig (vi antar att lämpliga matematiska modeller finns) (a) I ett läkemedelsföretag vill man studera hur enskilda molekyler interagerar när olika ämnen blandas. Vi kan tänka oss att det rör sig om storleksordningen 1000 molekyler eller färre. (b) Man vill på samma företag studera hur ett läkemedel blandas i en vätska, där man vill simulera hur koncentrationen av olika ämnen i vätskan ändras med tiden. 5. När man löser ordinära differentialekvationer pratar man om två typer av diskretiseringsfel (trunkeringsfel), nämligen (a) lokalt fel (b) globalt fel Förklara vad dessa två begrepp betyder. 2
Del B 6. (a) Du har från Internet laddat hem ett program för att numeriskt lösa ordinära differentialekvationer av typen Ý ¼ (Ø) = (Ø Ý(Ø)). För att använda det ska man ange begynnelsevärde, det intervall man vill lösa över, den funktion som beskriver högerledet i differentialekvationen, samt även steglängd. Det sistnämnda innebär att man kan anta att programmet använder fix steglängd genom hela intervallet. Utdata från programmet är en vektor med tidpunkter och en vektor som innehåller motsvarande lösningar. Tyvärr finns ingen ytterligare dokumentation eller källkod till programmet, och du behöver veta vilken noggrannhetsordning som den numeriska metoden har. Du beslutar dig därför att försöka ta reda på det genom praktiska experiment. Beskriv vilka körningar du gör med programmet, och hur du ur dessa resultat kan ta reda på noggrannhetsordningen. (b) Om vi istället för ovanstående tänker oss att du istället laddat hem ett program där man som indata anger den noggrannhet som lösningen ska uppfylla istället för steglängd. I övrigt är det samma indata och utdata som ovan. Hur skulle man nu kunna tänka sig gå tillväga för att ta reda på noggrannhetsordningen? 7. I ett visst programmeringssystem har man tillgång till en slumptalsfunktion random som genererar likformigt fördelade slumptal Ö på intervallet 0 Ö 1, men inte någon annan slumptalsfunktion. Man vill nu generera normalfördelade slumptal med väntevärde 0 genom att använda inverse transform sampling. Man vet att täthetsfunktionen för den fördelning man vill ha är (Ü) = 1 Ô 2 (Ü2 (22 )) och den finns programmerad som en funktion f(x) som automatiskt använder korrekt värde på. Primitiva funktionen till f(x) går inte att på ett enkelt sätt beräkna analytiskt, men däremot har man tillgång till en funktion intg med parametrar func, a, b och d, som numeriskt integrerar en funktion func mellan gränserna och med ett fel som är högst. Tidsåtgången för en sådan integralberäkning är proportionell mot Õ. Primitiva funktionen ska egentligen beräknas genom integrering från ½, men vi förutsätter här att f(x) är helt försumbar då Ü 5 och Ü 5. 3
(a) Antag att man bara vill generera ett fåtal normalfördelade slumptal, dvs. man är beredd att utföra den numeriska integreringen för varje nytt slumptal. Ge en algoritm för hur beräkningen av slumptalet genomförs, och ge en uppskattning av tidsåtgången, om man vill ha en viss given precision på slumptalet. (b) Antag att man vill generera många normalfördelade slumptal, och är beredd att beräkna en tabell över den primitiva funktionen till täthetsfunktionen. Ange hur man effektivt skulle lägga upp denna beräkning, och ange sedan en algoritm för hur denna tabell skulle användas för generering av normalfördelade slumptal. 4
Uppsala universitet Inst. för informationsteknologi Avd. för teknisk databehandling Blandade formler i Beräkningsvetenskap I och II 1. Flyttal och avrundningsfel Ett flyttal Ð(Ü) representeras enligt Ð(Ü) = ˆÑ ˆÑ = ( 0 1 2 Ô 1 ) 0 0 = 0 Ä Í där betecknar bas och Ô precision. Ett flyttalssystem defineras È( Ô Ä Í). Maskinepsilon (avrundningsenheten) Å = 1 2 1 Ô och kan defineras som det minsta tal sådant att Ð(1 + ) 1. 2. Linjära och ickelinjära ekvationer (Ü ) ¼ (Ü ) Newton-Raphsons metod: Ü +1 = Ü För system: Ü +1 = Ü [ ¼ ] 1 (Ü ), där Ü och (Ü ) är vektorer och ¼ är Jacobianen. Fixpunktsiteration för Ü = (Ü): Ü +1 = (Ü ) Konvergenskvot, konvergenshastighet Ü +1 Ü lim ½ Ü Ü Ö = där är en konstant, och Ö anger konvergenshastigheten (Ö = 1 betyder t ex linjär konvergens). Allmän feluppskattning Ü Ü (Ü ) min ¼ (Ü) Konditionstalet cond() = 1 mäter känsligheten för störningar hos ekvationssystemet Ü =. Det gäller att Ü Ü där Ü = Ü cond() ˆÜ och = ˆ.
Normer (vektor- respektive matrisnorm) Ü 2 = Ô Ü 1 2 + + Ü Ò 2 Ü 1 = È Ü Ü ½ = max Ü 1 = ÑÜ ( È ) ½ = ÑÜ ( È ) 3. Approximation Newtons interpolationspolynom Ô(Ü) då vi har Ò punkter (Ü 1 Ý 1 ) (Ü Ò Ý Ò ) bygger på ansatsen Ô(Ü) = 0 + 1 (Ü Ü 1 ) + 2 (Ü Ü 1 )(Ü Ü 2 ) + + Ò 1 (Ü Ü 1 ) (Ü Ü Ò 1 ) Minstakvadratapproximationen till punktmängden (Ü 1 Ý 1 ) (Ü 2 Ý 2 ) (Ü Ñ Ý Ñ ) med ett Ò:egradspolynom Ô(Ü) = 0 1 + 1 Ü + + Ò Ü Ò kan formuleras som ett överbestämt ekvationssystem Ü =, där är Ñ Ò, Ñ Ò. Minstakvadratlösningen kan fås ur normalekvationerna Ì Ü = Ì 4. Ordinära differentialekvationer Eulers metod (explicit Euler): Ý +1 = Ý + (Ü Ý ), n.o. 1 Implicit Euler (Euler bakåt): Ý +1 = Ý + (Ü +1 Ý +1 ), n.o. 1 Trapetsmetoden: Ý +1 = Ý + 2 ((Ü Ý ) + (Ü +1 Ý +1 )), n.o. = 2 Heuns metod (tillhör gruppen Runge-Kuttametoder): Ã 1 = (Ü Ý ) Ã 2 = (Ü +1 Ý + Ã 1 ) Ý +1 = Ý + 2 (Ã 1 + Ã 2 ) n.o. = 2 Klassisk Runge-Kutta: Ã 1 = (Ü Ý ) Ã 2 = (Ü + 2 Ý + 2 Ã 1) Ã 3 = (Ü + 2 Ý + 2 Ã 2) Ã 4 = (Ü +1 Ý + Ã 3 ) Ý +1 = Ý + 6 (Ã 1 + 2Ã 2 + 2Ã 3 + Ã 4 ) n.o. = 4
5. Numerisk integration Trapetsformeln Beräkning på ett delintervall med steglängd = Ü +1 Ü Ü+1 Ü (Ü) Ü = 2 [(Ü ) + (Ü +1 )] Sammansatt formel på helt intervall [ ], då ekvidistant steglängd = : (Ü) Ü 2 [(Ü 0) + 2(Ü 1 ) + + 2(Ü Æ 1 ) + (Ü Æ )] Diskretiseringsfelet Ê på helt intervall [ ], dvs Ê (Ü) Ü = Ì() + Ê är Ê = ( ) 2 ¼¼ () 12 Funktionsfelet (övre gräns): ( funktionsberäkning. Simpsons formel Beräkning på ett dubbelintervall med steglängd Ü+2 Ü (Ü) Ü = 3 [(Ü ) + 4(Ü +1 ) + (Ü +2 )] ), där är en övre gräns för absoluta felet i varje Sammansatt formel på helt intervall [ ], då ekvidistant steglängd = : (Ü)Ü 3 [(Ü 0)+4(Ü 1 )+2(Ü 2 )+4(Ü 3 )+ +2(Ü Æ 2 )+4(Ü Æ 1 )+(Ü Æ )] Diskretiseringsfelet Ê på helt intervall [ ], dvs Ê (Ü) Ü = Ë() + Ê är Ê = ( ) 180 4 ¼¼¼¼ () Funktionsfelet: Samma som för trapetsformeln, se ovan. 6. Richardsonextrapolation Om 1 () och 1 (2) är två beräkningar (t ex ett steg i en beräkning av en integral eller en ODE) med en metod av noggrannhetsordning Ô med steglängd respektive dubbel steglängd 2 så är Ê() = 1() 1 (2) 2 Ô 1
en uppskattning av den ledande termen i trunkeringsfelet i 1 (). Kan även användas för att förbättra noggrannheten i 1 () genom () = 1 () + 1() 1 (2) 2 Ô 1 7. Numerisk derivering För numerisk derivering används s k differensformler ¼ (Ü) ¼ (Ü) ¼ (Ü) ¼¼ (Ü) (Ü+) (Ü ) 2 (Ü+) (Ü) (Ü) (Ü ) (Ü+) 2(Ü)+(Ü ) 2 8. Monte Carlometoder centraldifferens framåtdifferens bakåtdifferens Den övergripande strukturen för Monte Carlosimuleringar är Indata N (antal försök) for i = 1:N Utför en stokastisk simulering resultat(i) = resultatet av simuleringen end slutresultat genom någon statistisk beräkning, t.ex. medelvärdet mean(resultat) Noggrannhetsordning för Monte carlometoder är Ç( 1 Ô Æ ), där Æ är antal samplingar. Kumultativ fördelningsfunktion: (Ü) = Ê Ü½ (Ý)Ý Normalfördelning (Ü) = Ô 1 2 (Ü ) 2 2 2 Aritmetiskt medelvärde baserat på Æ realisationer Ü av slumpvariabeln : = 1 Æ 9. Taylorutveckling Taylorutveckling av Ý(Ü + ) kring Ü : Ý(Ü + ) = Ý(Ü ) + Ý ¼ (Ü ) + 2 2! ݼ¼ (Ü ) + 3 3! ݼ¼¼ (Ü ) + Ç( 4 ) ÆÈ =1 Ü.