Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Per Wahlund, tel. 471 2986, 0702-634722 Tentamen i Beräkningsvetenskap II, 5.0 hp, 2011-10-17 Skrivtid: 8 00 11 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 Fråga nr Nyckelbegrepp Algoritmer Analys Argumentation 1 3 3 2 3 3 3 3 3 3 4 3 3 3 5 3 3, 3 6 4 5 4 7 5 5 5 8 4 5 5 Del A 1. För en aktie hade följande kurs (i kronor) noterats under ett antal timmar: ØÑÑ 2 3 4 5 6 ÙÖ 55 59 58.2 53.1 50.1 Välj ut tre lämpliga tidpunkter (motivera varför du tycker att dessa är lämpliga), interpolera aktiekursen med ett andragradspolynom i dessa och avgör när den maximala aktiekursen kan anses ha uppnåtts. Använd Newtons interpolationsformel. 1
2. (a) Visa att du behärskar Heuns metod genom att göra ett steg med steglängden = 02 på differentialekvationen Ý ¼ = Ø 04Ý Ø 2 Ý(2) = 1 (b) Antag att man genom någon analysmetod fått fram att trunkeringsfelet i ovanstående beräkning med ett steg var högst 10 2. Hur stort borde då felet ha varit vid sluttiden Ø = 22, om man i stället hade gjort 20 steg av längd 0.01? 3. (a) En integral i många dimensioner skulle beräknas med en Monte Carlo-metod genom att man upprepade gånger slumpade ut ett stort antal punkter i integrationsområdet och varje gång gjorde en korrekt stokastisk beräkning av integralen. De 8 stokastiska beräkningarna gav följande approximationer till integralen: 0.6776, 0.6779, 0.6384, 0.6572 0.6314, 0.6334, 0.6556, 0.6864 En av forskarna som studerade resultaten utbrast besviket: Så mycket arbete, och så vet vi bara att värdet ligger mellan 0.6314 och 0.6864. Men om man har läst Beräkningsvetenskap II så vet man bättre. Ange ur ovanstående data en trolig bättre uppskattning av integralvärdet. (b) Det visade sig att man i ovanstående fall hade använt 150000 punkter i varje stokastisk beräkning. Man ville nu göra om beräkningen för att få ett fel som var ca 5 gånger mindre. Hur många punkter skulle man då behöva i varje stokastisk beräkning? 4. (a) Bestäm stabilitetsområdet för metoden Euler framåt, (även kallad explicit Euler), genom att tillämpa den på testekvationen Ý ¼ = Ý Det räcker att behandla fallet att är reellt. (b) På vilket sätt kan man på den erhållna lösningen till en generell differentialekvation märka att man har överskridit en eventuell stabilitetsgräns vid användandet av en differensmetod? 2
5. Besvara följande frågor kort: (a) Om man har en mängd punkter Ü 1 Ü Ò och motsvarande funktionsvärden Ý 1 Ý Ò, vilket är då det krav man ställer på ett polynom Ô(Ü) av grad Ñ, (Ñ Ò 1), för att det ska kallas en minstakvadratapproximation till funktionen Ý? (b) För vilken typ av differentialekvationer passar det att använda en explicit differensmetod med relativt litet stabilitetsområde? (c) Du har tillgång till en slumptalsgenerator rand som returnerar likformigt fördelade slumptal i intervallet 0 Ü 1. Nu vill man generera slumptal Ö likformigt fördelade i intervallet 075 Ü 1. Hur bör man göra på effektivaste sätt, beräkna slumptal med formeln Ö = 075 + 025 ÖÒ eller generera Ö direkt med rand och förkasta alla tal som råkar bli mindre än 0.75? Observera att målet Argumentation täcks av motiveringen för punktvalet i uppgift 1, samt av 5b) och 5c). Del B 6. Du har fått 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. Du har ingen ytterligare dokumentation eller källkod till programmet, men har ändå hört att metoden sannolikt har ett begränsat stabilitetsområde. Beskriv hur du med praktisk körning av programmet skulle kunna ta reda på stabilitetsområdet för den metod som används av programmet. Du ska ge en relativt noggrann algoritm för hur du organiserar körningarna och vad man ska iaktta i den erhållna lösningen. För betyg 4 räcker det att försöka ta reda på stabilitetsområdet på reella axeln, för betyg 5 ska man diskutera vilka ytterligare körningar man ska göra för att få en uppfattning om stabilitetsområdet i komplexa planet. Vi förutsätter att man använder ett programspråk, (t.ex. MATLAB) som tillåter räkning med komplexa tal. 3
7. Antag att man har Æ stycken x-värden Ü 1 Ü Æ och motsvarande y-värden Ý 1 Ý Æ. Betrakta följande två problem att minstakvadratanpassa en funktion innehållande en exponentialfunktion till dessa värden: (a) (b) Ý Ü Ý + Ü Den ena av dessa approximationer går att göra med standardförfarande. Ange vilken av dessa detta är, och hur man lämpligen ställer upp problemet för lösning. Den andra går också att lösa relativt standardmässigt, men kräver en transformation av approximationen först. Ange vilken transformation av approximationen som behöver göras och hur man sedan genomför approximationen. Man får inte exakt samma approximation av den transformerade varianten, som om man approximerar enligt den ursprungliga formuleringen. Kan man på något sätt förutse var den transformerade varianten ger större fel? 8. 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 sätt av punkter (ÜÜ 1 Þ 1 ) (ÜÜ Ñ Þ Ñ ), punkterna är inte säkert lika många i 4
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 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 högra änden av området. 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 För betyg 4 kan man anta att det finns en funktion inuti(x,y) som returnerar sant om punkten (Ü Ý) ligger inuti det intressanta området, falskt annars. För betyg 5 ska man skissa på algoritmen för hur denna funktion arbetar. 5
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 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 slumpvariablen : È = 1 Æ Æ =1 Ü. 9. Taylorutveckling Taylorutveckling av Ý(Ü + ) kring Ü : Ý(Ü + ) = Ý(Ü ) + Ý ¼ (Ü ) + 2 2! ݼ¼ (Ü ) + 3 3! ݼ¼¼ (Ü ) + Ç( 4 )