Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Per Wahlund, tel. 471 2986 Tentamen i Beräkningsvetenskap II, 5.0 hp, 2013-06-07 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 maximal poäng på varje mål och uppgift. Fråga nr Nyckelbegrepp Algoritmer Analys Argumentation 1 2 2 2 2 2 3 2 2 4 2 2 5 2 2 6 2 4 2 7 1 5 1 1 Betygsgränser: 3 Minst 9 poäng, varje mål måste ha åtminstone något poäng. Poäng för betyg 3 får samlas även på del B, (uppgift 6 och 7). 4 Minst 20 poäng, varav minst 5 poäng på del B, varje mål måste fortfarande ha åtminstone något poäng. 5 Minst 26 poäng, varav minst 8 poäng på del B, varje mål måste ha åtminstone två poäng. 1
Del A 1. En mätning av vattentemperaturen vid vårdsätrabadet gjordes vid tiden punkterna Ø 1 Ø 5 under sommaren 2012 och man fick man värdena 1 5 (se tabell). Man vill anpassa ett andragrads polynom till mätdata. Tid Ø 1 Ø 2 Ø 3 Ø 4 Ø 5 Mätvärde 1 2 3 4 5 (a) Använd ansatsen Ô(Ø) = 0 + 1 Ø + 2 Ø 2 och ställ upp det överbestämda ekvationssystemet på formen, =, ( = [ 0 1 2 ] Ì ). (b) Ställ upp normalekvationerna för ovanstående problem och skriv ner den kvadratiska matrisen för det system som måste lösas, samt systemets högerled. 2. (a) Visa att du behärskar Heuns metod genom att göra ett steg med steglängden = 01 på differentialekvationen Ý ¼ = Ü + 04Ý Ü 1 Ý(1) = 05 (b) Antag att någon hade beräknat ett approximativt värde på y(1.1) genom att från x=1.0 göra två steg med steglängden 2 = 0.05, och att resultatet hade skiljt sig från ditt med 0.002. Hur stort hade det uppskattade felet i detta värde på y(1.1) varit? 3. Du och kompis vill konstruera en specialtärning för att vinna pengar på ett kasino. När du testslår tärningen får du följande. Värde 1 2 3 4 5 6 Antal slag 21 33 12 25 8 15 (a) Rita en graf över sannolikhetsfördelningen, (diskreta fördelningsfunktionen) samt den kumulativa sannolikhetsfördelningen. (b) Förklara hur kan man slå ett slag med tärningen genom att slumpa ett tal från en likforming fördelingen mellan 0 och 1. Antag att du slumpar fram 066, vilket slag slog du? 2
3 2.5 2 Tidssteg 1.5 1 0.5 0 0 10 20 30 40 50 60 70 80 t 4. (a) I figuren ovan ser du plotten för steglängden från en metod för att lösa en ODE. Utgående från figuren, vad kan du säga med säkerhet om metoden? Methoden är: Implicit Stabil Adaptiv Konvergent (b) I figurerna ser du stabilitetsområdena, (streckade), för två olika metoder: En av metoderna är explicit och den andra implicit. Vilken är vad? Hur kommer du fram till resultatet? Argumentera för vilken slags problem du skulle använda en metod som liknar metod 1 och i vilket fall en metod som liknar metod 2. 3
5. (a) Man har ett stort antal punkter Ü 0 Ü 1 Ü Æ, (ej nödvändigtvis på samma avstånd från varandra), och motsvarande funktionsvärden Ý 0 Ý 1 Ý Æ. Dessa är Ü och Ý värden genererade av en numerisk lösning till en differentialekvation Ý ¼ = (Ü Ý). Nu ser man att funktionen Ý(Ü) verkar ha ett minimum någonstans i intervallet [Ü 0 Ü Æ ]. Vad är ett lämpligt approximationsförfarande för att bestämma läget av detta minimum noggrannare? (b) Som föregående deluppgift, men lösningen har nu genererats av en stokastisk metod, dvs. det finns små slumpmässiga störningar i lösningen, som dock väsentligen har ett minimum inne i intervallet. Hur gör man nu lämpligen approximationen för att bestämma minimum? (c) Man har med en Monte Carlo-metod beräknat en integral genom att upprepade gånger beräkna integralen stokastiskt och sedan ta medelvärdet av dessa värden. I varje stokastisk beräkning har 1000 punkter använts. Hela förfarandet har tagit 12 sekunder på en dator, och felet i det slutliga värdet har uppskattats till 0.05. Nu vill man öka antalet punkter i varje stokastisk beräkning för att få ned felet till 0.001. Hur lång tid kommer beräkningen att ta nu, om alla andra förhållanden är oförändrade? Kommer minnesbehovet att öka med samma faktor som tidsåtgången? 4
Del B 6. Du har från Internet laddat hem ett program för att numeriskt lösa ordinära differentialekvationer av typ Ý ¼ = (Ø Ý). 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, ty programmet använder fix steglängd genom hela intervallet. (a) Du har ingen ytterligare dokumentation eller källkod till programmet, men vill ta reda på vilken noggrannhetsordning som den numeriska metoden har. Beskriv vilka körningar du gör med programmet, och hur du ur dessa resultat kan ta reda på noggrannhetsordningen. Beskriv särskilt hur man verifierar att noggrannhetsordningen även gäller för system av differentialekvationer. (b) Du upptäcker sedan av en slump att man kan köra programmet utan att ange steglängd, men i stället ange önskad noggrannhet i lösningen. Programmet väljer då steglängd, och denna kan vara variabel under lösningens gång. Kan man fortfarande göra körningar för att ta reda på noggrannhetsordningen för denna variant av programmet, och hur gör man i så fall? 7. Då man beräknar integraler i flera dimensioner med Monte Carlo-metoder, behöver man veta arean (eller volymen vid många dimensioner) av det område Ë man integrerar över, (precis som man behöver veta integrationsintervallets längd i en dimension). Redan denna beräkning kan vara arbetskrävande om området är oregelbundet. Nu tänker vi oss att vi arbetar i två dimensioner. Ett sätt att göra areaberäkningen är att betrakta en rektangel Ê som omsluter det aktuella området, dess area Ê är lätt att beräkna. Låt beteckna förhållandet mellan områdets area Ë och rektangelns area. Om vore känt så skulle man kunna beräkna områdets area som Ë = Ê. Observera att figuren bara ger exempel på hur rektangeln kan ligga relativt området. Man kan använda en Monte Carlo-metod för att beräkna en approximation till och sedan använda för att beräkna Ë. Monte Carlo-metoden bygger på idén att vi på ett lämpligt sätt slumpar ut punkter i rektangeln Ê och beräknar hur stor andel av dessa som hamnade inom området Ë. Denna andel blir vårt värde på. Din uppgift är att formulera ovanstående idé som en algoritm för beräkning av områdets area. Förutsättningarna är att områdets övre rand beskrivs som en följd av (tätt liggande) punkter (Ü 1 Ý 1 ) (Ü Ò Ý Ò ) och den undre randen på samma 5
Rektangel med omrade 4.4 4.2 4 3.8 3.6 y 3.4 3.2 3 2.8 2.6 2.4 1.5 2 2.5 3 3.5 4 x Figure 1: Område i rektangel sätt av punkter ( 1 1 ) ( Ñ Ñ ), punkterna är inte säkert lika många i båda följderna och ligger inte säkert på konstant avstånd ifrån varandra, men man vet att punkterna (Ü 1 Ý 1 ) och ( 1 1 ) sammanfaller och likadant i för (Ü Ò Ý Ò ) och ( Ñ Ñ ). Man vet också att punktföljderna inte definierar konstiga kurvor som skär varandra. Algoritmen ska innehålla: En bestämning av en lämplig rektangel Algoritmen för Monte Carlo-metoden som används Man kan anta att det finns en färdig funktion inuti(x,y) som returnerar SANT om punkten (Ü Ý) ligger inuti det intressanta området, FALSKT annars, men för att kunna få full poäng på uppgiften, ska man dock ge algoritmen för hur denna funktion arbetar, samt hur man åtgärdar den kantighet som området får om punkterna ligger glest. 6
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 Ü Ü cond() där Ü = Ü ˆÜ 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 Ü.