Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Per Wahlund, tel. 471 2986, 0702-634722 Tentamen i Beräkningsvetenskap II, 5.0 hp, 2011-01-15 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, men uppgifterna är konstruerade så att de inte förutsätter tillgång till handbok. För full poäng krävs fullständiga räkningar och utförliga resonemang samt motivering till alla svar, där annat ej anges. Betygsnivåer: Betyg 3: minst 13 poäng Betyg 4: minst 20 poäng varav minst 7 poäng på del B Betyg 5: minst 26 poäng varav minst 13 poäng på del B. Del A 1. För en aktie hade följande kurs (i kronor) noterats under ett antal dagar: 2 4 7 9 ÙÖ 61.2 59 55.9 53.1 Aktieanalytiker ansåg att aktiekursen såg ut att sjunka linjärt med tiden. Beräkna det förstagradspolynom som approximerar aktiekursen bäst i minstakvadratmening. Avgör sedan med hjälp av detta vid vilken tidpunkt som kursen beräknas ha sjunkit till 50 kr. 2. Härled stabilitetsvillkoret för metoden Euler bakåt, även kallad implicit Euler. Det räcker att behandla fallet med reellt. 3. Vid en studie av fusk i spel, önskar man studera hasardspel med en defekt kortlek, där färgerna klöver, ruter, hjärter och spader innehåller 13, 12, 13, resp. 11 kort. Beskriv algoritmen för att simulera en dragning av ett kort ur denna kortlek, (där endast det dragna kortets kortfärg är intressant), med hjälp av en slumptalsgenerator randnr som ger ett slumptal likformigt fördelat i intervallet [0 1)? 1
4. Betrakta följande ordinära differentialekvation: Ý ¼ (Ø) = cos(ø) sin(ý) 1 Ø 10 Ý(1) = 01 (a) Om den löses med metoden klassiska Runge-Kutta, hur många olika beräkningar av trigonometriska funktioner måste göras per steg? (b) Antag i stället att du löser ekvationen med implicit Euler och får resultatet Ý (10) = 0037216 med steglängden = 01. Antag att man av någon anledning vet att det exakta resultatet är Ý(10) = 0025039, ungefär hur stort bör tidssteget vara för att man med Euler bakåt ska få ett relativt fel som är mindre än 0.001? 5. Besvara följande frågor kort och utan motivering: (a) Vilken är den allmänna benämningen på kurvanpassning där man kräver att kurvan ska gå genom de givna punkterna? (b) Vad kännetecknar en implicit differensmetod för lösning av ordinära differentialekvationer, (som kontrast mot en explicit metod)? (c) Vilken av Eulers bakåtdifferensmetod och Heuns metod har högst noggrannhetsordning? (d) Du har tillgång till en slumptalsgenerator rand som returnerar likformigt fördelade slumptal i intervallet 0 Ü 1. Hur använder du den för att generera likformigt fördelade slumptal i intevallet 1 Ü 1? 2
Del B 6. Ett antal värden 0 1 Ò är givna, och dessa svarar mot en funktions värden i punkterna Ü 0 Ü 1 Ü Ò. Man vill interpolera dessa med ett polynom, med användande av Newtons interpolationsformel. (a) Visa att koefficienterna i polynomet kan bestämmas genom lösning av ett linjärt ekvationssystem av ett speciellt utseende, och där ekvationssystemets koefficientmatris bara beror på de givna Ü-värdena. Det räcker om detta genomförs för fallet att det är tre stycken punkter. (b) Vilken egenskap hos ekvationssystemet gör att detta går relativt snabbt att lösa? (c) Om man har koefficientmatrisen för fallet ovan, dvs. där det är Ò+1 stycken punkter, hur mycket ytterligare arbete behövs för att ställa upp motsvarande matris om en punkt (Ü Ò+1 Ò+1 ) tillkommer? 7. (a) Antag att du vet volymen av en kub med sidan, och att du vet att volymen Î Ë för en sfär definierad av Ü 2 + Ý 2 + Þ 2 Ö 2 ges av Î Ë = 4Ö3, men att 3 du inte vet värdet på. Förklara hur du med en Monte-Carlo metod kan uppskatta värdet på. Skriv ned en algoritm i pseudo-kod. (b) Du uppskattar nu volymen Î Í av en sfär med det du beräknat med metoden i a). Förklara hur du kan uppskatta felet i Î Í. Gör en så noggrann uppskattning som möjligt. (6p) (6p) 8. Man vill med en färdigskriven ODE-lösare odesolve, som använder konstant steglängd, numeriskt lösa en komplicerad ickelinjär differentialekvation, Ý ¼ = (Ø Ý). Diff.ekvationen innehåller bl.a. en fysikalisk parameter, som kan variera inom ett intervall 0 ÑÜ, (observera dock att för varje enskild körning är en konstant). Man vet att lösningen till diff.ekvationen ska vara begränsad och inom det aktuella intervallet i Ø aldrig bli till beloppet större än begynnelsevärdet. ODE-lösaren har ett begränsat stabilitetsområde, och man vill genom praktiska experiment ta reda på vilken den maximalt tillåtna steglängden för stabilitet är för olika värden på. Redogör för hur du skulle lägga upp dessa numeriska experiment, och hur du skulle kunna bestämma den maximala steglängden med en viss noggrannhet. Redogör speciellt för hur man genom dessa experiment skulle kunna avgöra om den maximala steglängden beror som en potens av, dvs. ÑÜ () Ô. v.g.v 3
Du kan ge förfarandet genom att skriva en algoritm eller pseudokod, och om du vill illustrera med programkod, så kan du anta att odesolve anropas på ett rimligt vanligt sätt och att högerledsfunktionen finns färdigskriven att anropa. Ledning: Tänk på hur lösningen till testekvationen beter sig när man är innanför resp. utanför stabilitetsområdet. (8p) 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 = (Ü ) 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): ( ), 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 Ü+2 (Ü) Ü = Ü 3 [(Ü ) + 4(Ü +1 ) + (Ü +2 )] 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 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 slumpvariablen : È = 1 Æ Æ =1 Ü. 9. Taylorutveckling Taylorutveckling av Ý(Ü + ) kring Ü : Ý(Ü + ) = Ý(Ü ) + Ý ¼ (Ü ) + 2 2! ݼ¼ (Ü ) + 3 3! ݼ¼¼ (Ü ) + Ç( 4 )