Uppsala universitet Institutionen för informationsteknologi Beräkningsvetenskap II Tentamen i Beräkningsvetenskap II, 5.0 hp, 2017-05-31 Skrivtid: 14 00 17 00 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat formelblad, Mathematics Handbook eller Physics Handbook och miniräknare. 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 (med reservation för modifieringar). Fråga nr Nyckelbegrepp Algoritmer Analys Argumentation 1 3(a) 3(b) 2 3 3 3(b)3(c) 3(a) 4 3 5 3(a) 3(b) 6 4 7 4, 5 Del A 1. (a) För att visa att du kan använda Eulers metod (Euler framåt, explicit Euler) ska du tillämpa den på differentialekvationen y 0 (t)+1000 y(t) 3 t =0, t 0, y(0) = 1 och beräkna y(0.2) med steglängd h =0.1. (b) Om man använder Euler bakåt (implicit Euler) för problemet ovan och utför motsvarande beräkning får man ett helt annat resultatet, nämligen y(0.2) = 0.1635 (du behöver inte räkna ut det). Ange vilken av metoderna som sannolikt ger en mer korrekt lösning och motivera (utan någon analys). Motivering krävs för godkänt resultat. 1
2. När man simulerar trafikflöden, t ex i en stad kan man använda stokastiska modeller och Monte Carlosimuleringar. Med hjälp av en stokastisk process kan man då studera hur många fordon som finns vid olika trafikkorsningar en viss tidpunkt, eller hur antalet förändras med tiden. Antag att den stokastiska processen finns implementerad i en Matlabfunktion function f = traffic(f0, T) Funktionen simulerar trafikfödet från tidpunkt 0 till tidpunkt T, givet ett visst antal fordon f0 vid tidpunkt 0. Ett anrop till funktionen ger alltså en simulering. Utparametern f är en vektor som innehåller antalet fordon vid alla korsningar. Om det exempelvis finns 10000 korsningar, så är f en vektor av längd 10000. Nu är man intresserad av att simulera antalet fordon vid korsning nummer 5 (dvs position 5 i vektorn). Skriv en algoritm, eller ett Matlabscript som med Monte Carlo beräknar det förväntade antalet fordon i korsning nummer 5 vid tidpunkten T. 3. Du har hittat en ODE-lösare på internet men du vet inte riktigt vad den har för egenskaper. I kursen har du lärt dig att två viktiga egenskaper är noggrannhet och stabilitet. (a) För att undersöka noggrannhetsordningen tänker du dig att man kanske kan härleda den utifrån kända feluppskattningsformler med steglängd h och 2h. För att kunna jämföra feluppskattningen med verkligt fel gör du ytterligare ett experiment men med mycket mindre steglängd och använder det som referens till den korrekta lösningen. Resultatet visas i nedanstående tabell. Uppskatta den numeriska metodens noggrannhetsordning med hjälp av tabellen. h 0.0001 0.01 0.02 y(10) 0.017384 0.017610 0.018343 (b) I en kommentarrad i koden står det att metoden är anpassad för styva differentialekvationer, harettstortstabilitetsområde. Förklaravadsommenasmed begreppet styva differentialekvationer. (c) När det gäller trunkeringsfelet (diskretiseringfelet) pratar man om lokalt fel och globalt fel. Förklara vad som menas med dessa två begrepp (rita gärna när du förklarar). 4. Differentialekvationen y 0 + 1000 y x =0är linjär men där koefficienten framför y 2+sin(x) varierar med x. Man säger då att den har variabla koefficienter. När man ska lösa detta problem vill man givetvis ha en stabil och korrekt lösning. Din uppgift är att undersöka vilken metod som är lämplig genom att jämföra det största tidssteget som kan användas. Du ska använda någon av klassisk Runge-Kutta (RK4), Heuns metod eller Euler framåt. Stabilitetsområdena har du slagit upp och 2
visas i figuren nedan. Ange vilken metod som är mest lämplig och vilket är det största tidssteget som kan användas. Figur 1: Stabilitetsområden för Euler framåt, Heun och Runge-Kutta. 5. (a) Vid beräkning av väderleksprognoser behövs indata, t ex lufttryck och temperatur, vid jämnt fördelade beräkningspunkter fördelade över Sverige. Man läser av indata på olika platser i landet men tyvärr är inte mätningar exakt på beräkningspunkterna. Man får då interpolera mellan närliggande mätningar. I tabellen nedan ges temperaturen vid vissa mätpunkter x i (enligt ett koordinatsystem som vi inte behöver bry oss om här). Enbart två mätpunkter presenteras här, men det finns givetvis många fler mätpunkter både före och efter de två mätningarna (markerat med ). Man skulle behöva temperaturen vid x =7.2 eftersom beräkningspunkten finns där. Beräkna med hjälp av Newtons interpolationspolynom och de två mätvärdena temperaturen i den punkten. x 4 8 Temp 15.3 20.8 (b) Ange ett problem med beräkningen i uppgift 5(a) och vad man istället skulle kunna använda för att bestämma temperaturen vid beräkningspunkterna. 3
Del B 6. Minsta kvadratanpassning används vanligtvis för att anpassa ett polynom till mätdata men det kan också användas till att approximera en mer komplicerad funktion med ett enklare polynom. En orsak kan t ex vara att man vill ha en funktion som är enkel att integrera eller derivera. Den enklaste ansatsen p(x) =a 0 + a 1 x + a 2 x 2 +...+ a n x n (s k mnemonisk bas), men det finns skäl att använda andra ansatser och en sådan ansats är s k Legendrepolynom: p(x) = NX c n L n (x) =c 0 L 0 (x)+c 1 L 1 (x)+ + c N L N (x), n=0 där L n (x) är ett Legendrepolynom av grad n. DetreförstafunktionernaiLegendrepolynomet ges i tabellen nedan. Den funktionen vi vill approximera ges inte explicit L 0 (x) L 1 (x) L 2 (x) 1 x 1 2 (3x2 1) Tabell 1: Legendre polynom L i (x) för i =0, 1, 2. här, utan vi betecknar den med f(x). Viskaapproximeradenpåx 2 [ 1, 1] med 5 jämnt fördelade kontrollpunkter och med de tre första Legendrepolynomen. (a) Ställ upp normalekvationerna för koefficienterna c 0,c 1 och c 2 för problemet ovan. Det är inte möjligt att beräkna polynomet eftersom f(x) inte är given explicit, men du ska ställa upp normalekvationerna. (b) Ange det viktigaste skälet till att använda andra ansatser än den mnemoniska basen. Här behövs ingen formel eller liknande utan bara en motivering. 7. Inom t ex meteorologi används något som kallas för ensemble-metoder. Idén är att man beräknar många väderleksprognoser och stör begynnelsevärden slumpmässigt, där störningen hämtas ur en normalfördelning. Själva prognosen beräknas genom att man löser ett system av differentialekvationer. Eftersom begynnelsevärdena är uppmätta data (lufttryck, temperatur, densitet, etc) och innehåller fel, kan man genom dessa störningar få en uppfattning hur säker prognosen är; om lösningarna hamnar väl samlat är den säker, medan den är osäker om lösningarna blir väldigt spridda. Man kan alltså här se differentialekvationen som en stokastisk process. Figuren nedan visar principen. Differentialekvationerna vid väderleksprognoser innehåller kraftigt varierande skalor, och är därför kraftigt styva. Det handlar egentligen om partiella differentialekvationer eftersom de beräknas i tre rumsdimensioner, men genom att anta att vinden är känd 4
Figur 2: Idén bakom ensemblemetoder kan vi reducera ekvationerna till ett system av ODE r. Kvar blir termodynamikens 2:a huvudsats c p dt R dp T dt p dt = Q allmänna gaslagen p = RT och kontinuitetsekvationen 1 d dt + f vind(t) =0. Här har vi antagit att vinden är en känd funktion. I ekvationerna är T luftens temperatur, p luftens tryck och luftens densitet, övriga parametrar kan betraktas som konstanter. En omskrivning av ekvationerna ger följande system av ODEr : d dt = f vind(t) dt dt = T (Q R f vind(t))/(c p R) (a) Skriv en algoritm t ex i Matlabliknande kod som utför ensemblemetoden med lösning av de givna differentialekvationerna enligt beskrivningen ovan, och som dessutom hittar medelprognosen, dvs medelvärdet av alla prognoser. Du kan förutsätta att du har samma typ av funktioner tillgängliga som finns inbyggt i Matlab, dvs olika typer av ODE-lösare och slumptalsgeneratorer, och som du alltså kan använda. I initialdata behöver du bara göra störningar av temperaturen. (b) Eftersom differentialekvationerna ska lösas många gånger är det mycket viktigt att beräkningen är effektiv. Redogör för vilka egenskaper hos metoden som är viktiga när det gäller beräkningstid. Använd relevanta nyckelbegrepp. Ange också vilken typ av metod du skulle välja. 5
Uppsala universitet Institutionen för informationsteknologi Avd. för beräkningsvetenskap Blandade formler i Beräkningsvetenskap I och II 1. Flyttal och avrundningsfel Ett flyttal fl(x) representeras enligt fl(x) = ˆm e, ˆm = ±(d 0.d 1 d 2,...,d p 1 ), 0 apple d i <, d 0 6=0, L apple e apple U, där betecknar bas och p precision. Ett flyttalssystem defineras FP(,p,L,U). Maskinepsilon (avrundningsenheten) M = 1 2 sådant att fl(1 + ) > 1. 1 p och kan defineras som det minsta tal 2. Linjära och ickelinjära ekvationer f(x Newton-Raphsons metod: x k+1 = x k ) k f 0 (x k ) För system: x k+1 = x k [F 0 ] 1 F (x k ),därx k och F (x k ) är vektorer och F 0 är Jacobianen. Fixpunktsiteration för x = g(x): x k+1 = g(x k ) Konvergenskvot, konvergenshastighet x k+1 x lim = C, k!1 x k x r där C är en konstant, och r anger konvergenshastigheten (r =1betyder t ex linjär konvergens). Allmän feluppskattning x k x? apple f(x k) min f 0 (x) Konditionstalet cond(a) =kak ka 1 k mäter känsligheten för störningar hos ekvationssystemet Ax = b. Det gäller att k xk kxk apple cond(a)k bk kbk, där x = x ˆx och b = b ˆb. Normer (vektor- respektive matrisnorm) k x k 2 = p x 1 2 +...+ x n 2 k x k 1 = P i x i k x k 1 =max i { x i } k A k 1 = max j ( P i a ij ) k A k 1 = max i ( P j a ij )
3. Approximation Newtons interpolationspolynom p(x) då vi har n punkter (x 1,y 1 ),...(x n,y n ) bygger på ansatsen p(x) =a 0 + a 1 (x x 1 )+a 2 (x x 1 )(x x 2 )+...+ a n 1 (x x 1 ) (x x n 1 ) Minstakvadratapproximationen till punktmängden (x 1,y 1 ), (x 2,y 2 ),...(x m,y m ) med ett n:egradspolynom p(x) =a 0 1+a 1 x+...+a n x n kan formuleras som ett överbestämt ekvationssystem Ax = b, dära är m n, m>n. Minstakvadratlösningen kan fås ur normalekvationerna A T Ax = A T b 4. Ordinära differentialekvationer Eulers metod (explicit Euler): y k+1 = y k + hf(x k,y k ),n.o.1 Implicit Euler (Euler bakåt): y k+1 = y k + hf(x k+1,y k+1 ),n.o.1 Trapetsmetoden: y k+1 = y k + h 2 (f(x k,y k )+f(x k+1,y k+1 )), n.o.=2 Heuns metod (tillhör gruppen Runge-Kuttametoder): 8 < : K 1 = f(x k,y k ) K 2 = f(x k+1,y k + hk 1 ) y k+1 = y k + h 2 (K 1 + K 2 ) n.o. = 2 Klassisk Runge-Kutta: 8 K 1 = f(x k,y k ) >< K 2 = f(x k + h,y 2 k + hk 2 1) K 3 = f(x k + h,y 2 k + hk 2 2) K >: 4 = f(x k+1,y k + hk 3 ) y k+1 = y k + h(k 6 1 +2K 2 +2K 3 + K 4 ) n.o. = 4 5. Numerisk integration Trapetsformeln Beräkning på ett delintervall med steglängd h k = x k+1 x k Z xk+1 x k f(x) dx = h k 2 [f(x k)+f(x k+1 )]
Sammansatt formel på helt intervall [a b], dåekvidistantsteglängdh = h k : Z b a f(x) dx h 2 [f(x 0)+2f(x 1 )+...+2f(x N 1 )+f(x N )] Diskretiseringsfelet R på helt intervall [a b], dvs R b f(x) dx = T (h)+r är a R = (b a) h 2 f 00 ( ). 12 Funktionsfelet (övre gräns): (b a), där är en övre gräns för absoluta felet i varje funktionsberäkning. Simpsons formel Beräkning på ett dubbelintervall med steglängd h Z xk+2 f(x) dx = h x k 3 [f(x k)+4f(x k+1 )+f(x k+2 )] Sammansatt formel på helt intervall [a b], dåekvidistantsteglängdh = h k : Z b a f(x) dx h 3 [f(x 0)+4f(x 1 )+2f(x 2 )+4f(x 3 )+...+2f(x N 2 )+4f(x N 1 )+f(x N )] Diskretiseringsfelet R på helt intervall [a b], dvs R b f(x) dx = S(h)+R är a R = (b a) 180 h4 f 0000 ( ). Funktionsfelet: Samma som för trapetsformeln, se ovan. 6. Richardsonextrapolation Om F 1 (h) och F 1 (2h) är två beräkningar (t ex ett steg i en beräkning av en integral eller en ODE) med en metod av noggrannhetsordning p med steglängd h respektive dubbel steglängd 2h så är R(h) = F 1(h) F 1 (2h) 2 p 1 en uppskattning av den ledande termen i trunkeringsfelet i F 1 (h). Kanävenanvändasför att förbättra noggrannheten i F 1 (h) genom F (h) =F 1 (h)+ F 1(h) F 1 (2h). 2 p 1
7. Numerisk derivering För numerisk derivering används s k differensformler f 0 (x) f 0 (x) f(x+h) h f 0 (x) h f 00 (x) f(x+h) f(x h) 2h f(x) f(x) f(x h) f(x+h) 2f(x)+f(x h) h 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 O( 1 p N ),därn är antal samplingar. Kumultativ fördelningsfunktion: F (x) = R x1 f X(y)dy Normalfördelning f X (x) = 1 p 2 e (x µ)2 2 2. Aritmetiskt medelvärde baserat på N realisationer x i av slumpvariablen X: µ = 1 N P N i=1 x i. 9. Taylorutveckling Taylorutveckling av y(x k + h) kring x k : y(x k + h) =y(x k )+hy 0 (x k )+ h2 2! y00 (x k )+ h3 3! y000 (x k )+O(h 4 )