Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Tentamen i Beräkningsvetenskap II, 5.0 hp, 2013-08-29 Skrivtid: 08 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, men uppgifterna är konstruerade så att de inte förutsätter tillgång till handbok. En komplett lösning ska innehålla fullständiga räkningar och utförliga resonemang samt motivering till alla svar. För godkänt resultat krävs: Godkänt på minst en uppgift per kursmål i del A (annars blir betyget "underkänd") För betyg 3 krävs: Att man klarar kraven för godkänt resultat enligt ovan. För betyg 4/5 krävs: Att man klarar kraven för godkänt resultat enligt ovan och därtill kraven för betyg 4/5 på minst en uppgift i del B Del A 1. (a) Temperaturen kl 14.00 på dagen i Uppsala var ungefär följande under några dagar i augusti 2013: dag i augusti 7 8 9 10 11 temperatur ( C) 23.1 20.6 19.3 21.8 21.5 Din uppgift nu är att minstakvadratanpassa ett polynom av grad 0 (alltså en konstant) till dessa data. (Det resulterande konstanta temperaturvärdet kan alltså uppfattas som en "typisk" temperatur kl 14.00 i Uppsala under den aktuella perioden.) För poäng krävs att du genomför minstakvadratanpassning på det sätt som vi har gått igenom i kursen (förenklande formler för det aktuella specialfallet får alltså inte användas här). (b) Om du vill rita en mjuk kurva som går igenom samtliga mätvärden ovan, så skulle någon form av interpolation kunna användas. I kursen har vi gått igenom flera varianter av interpolation. Några av dessa kan vara lämpliga i det här fallet, andra är olämpliga. Ange någon variant av interpolation som skulle kunna vara lämplig i detta fall och motivera svaret. OBS! Det 1
räcker alltså inte att svara "interpolation", utan det måste framgå mera specifikt vilken sorts interpolation du avser och varför den är lämplig här. 2. (a) Genomför analys av implicita Eulers metod ("Euler bakåt") för att ta reda på metodens noggrannhetsordning. (b) Implicita metoder anses vara lämpliga för styva ODE-problem. Vad innebär det att ett ODE-problem är styvt? 3. (a) Ett program för stokastisk simulering av förväntat framtida pris på en aktie har körts fyra gånger, med samma indata varje gång, och då gett följande utdata (prognos för en viss akties kurs i kronor): Simulering 1 2 3 4 Aktiekurs (kronor) 82.18 91.57 79.22 95.95 Använd dessa värden för att göra en Monte Carlo-beräkning av det förväntade priset på aktien. (b) Det finns en avvägning mellan exekveringstid och noggrannhet (uttryckt som en övre gräns för felet i resultatet av beräkningen). Antag att vi gör Monte Carlo-beräkning enligt ovan baserat på N stycken stokastiska simuleringar och att exekveringstiden då blir 1 ms. Hur mycket noggrannare kan vi beräkna den förväntade aktiekursen om vi istället med samma dator låter exekveringen pågå i 2 ms? 4. (a) Både Heuns metod och Klassiska Runge-Kuttas metod är enstegsmetoder. Vad kännetecknar en enstegsmetod? (b) Vilken av de två nämnda enstegsmetoderna skulle vara bäst om man med så kort exekveringstid som möjligt vill lösa ett ODEproblem så att felet i den beräknade lösningen är mindre än en given tolerans. Svara så att det tydligt framgår varför den metod du förespråkar ger kortare exekveringstid än den andra metoden. 2
Del B OBS! Det räcker med att klara kraven för betyg 5 (eller 4) på en av uppgifterna nedan. Då får man detta betyg (under förutsättning att man också har klarat kraven för godkänt resultat i del A). Man behöver alltså inte lösa båda uppgifterna. Man får dessutom betyg 5 om man har klarat en uppgift för betyg 5, även om man inte skulle ha gjort motsvarande uppgift för betyg 4. 5. Bakgrund: Om vi skulle titta på dagliga temperaturvärden för Uppsala kl 14.00 från 1 april till 31 juli skulle vi se en oregelbunden variation från dag till dag. Samtidigt skulle vi se en stigande trend i temperaturen över perioden som helhet, från lägre temperaturer på våren till betydligt högre temperaturer mitt i sommaren. Vi ska nu diskutera hur man kan åskådliggöra denna trend genom att representera den som ett polynom i tiden t. Tänk dig att data är givna i form av två vektorer t och y. Vektorn t innehåller tidpunkter för mätningarna, och y innehåller de uppmätta temperaturvärdena. I uppgifterna nedan förutsätter vi att vektorerna t och y finns tillgängliga i Matlabs "workspace". Uppgift för betyg 4: Nämn ett lämpligt sätt att bestämma ett förstagradspolynom som representerar trenden i dessa mätdata. Det sätt du nämner ska ha ingått i kursen och du ska ge argument för att just det angreppssättet är det lämpligaste bland de alternativa angreppssätt av liknande typ som tagits upp i kursen. För godkänd lösning krävs även att du skriver ett Matlab-program som använder ett inbyggt Matlab-kommando för det föreslagna sättet att bestämma ett förstagradspolynom som representerar trenden i mätdata. Vidare ska programmet rita upp mätvärdena som diskreta punkter och i samma graf rita in trenden som en heldragen linje. Även delvis felaktiga program kan godkännas, under föruttsättning att felen bedöms vara mindre allvarliga. Uppgift för betyg 5: Nämn ett lämpligt sätt att bestämma ett polynom som representerar trenden i dessa mätdata. Du kan anta att polynomets gradtal d är givet. Det sätt du nämner ska ha ingått i kursen och du ska ge argument för att just det angreppssättet är det lämpligaste bland de alternativa angreppssätt av liknande typ som tagits upp i kursen. 3
Hur ska vi då välja polynomets gradtal? Man skulle kunna bestämma ett lämpligt gradtal d genom att låta d vara en obestämd parameter. Tänk dig att du har ett polynom som enbart består av högstagradstermen ct d, där c och d är obestämda parametrar. Föreslå en algoritm som beräknar det heltalsvärde på d, som blir bäst i högstagradstermen. Algoritmen får inte bygga på att man provar sig fram. (När gradtalet d har bestämts på detta sätt kan man sedan använda den algoritm du föreslog i föregående punkt för att bestämma det lämpligaste polynomet av grad d för att representera trenden.) För godkänd lösning krävs även att du demonstrerar algoritmen för val av gradtal d genom att tillämpa den på nedanstående data. (Du behöver inte göra det efterföljande momentet med att bestämma det lämpligaste polynomet av grad d.) dag 1 2 3 4 5 temperatur ( C) 6.5 4.2 19.3 23.0 21.4 (Tabellen ovan är konstruerad för att illustrera principen med växande temperaturtrend samtidigt som datapunkterna är tillräckligt få för att kunna behandlas med räkning för hand.) 6. Bakgrund: Vissa ordinära differentialekvationer kan ha lösningar, som kan se mycket olika ut även vid en ganska liten ändring i begynnelsedata eller i någon av differentialekvationens koefficienter. Vid numerisk lösning av dessa kan man tänka sig att även små ändringar av de parametrar som den numeriska lösaren använder kan ha stor inverkan på lösningen. Antag nu att du sitter med ett program (formulerat som en funktion) som numeriskt löser differentialekvationer. Du vet inte så mycket om den metod som används, men vet att programmet gör adaptivt steglängdsval och har standardmässiga inparametrar, dvs. man ger begynnelsedata, lösningsintervall och noggrannhetskrav (absolut fel), och får som returparametrar lösningspunkterna och lösningsvärdena i dessa. 4
Uppgift för betyg 4: Du vill använda programmet för att lösa en differentialekvation av en speciell typ, som är av intresse för en forskningsgrupp. Man vet att ekvationen inte är styv. Man vet också att det inte går att få fram en analytisk lösning. Nu vill du försöka avgöra vad den numeriska metod som programmet använder har för noggrannhetsordning. Hur organiserar du testkörningar för att ta reda på denna? Vilka resultatdata är mest intressanta och hur behandlar du dessa för att försöka ta reda på noggrannhetsordningen? Uppgift för betyg 5: I den teoretiska analysen av noggrannhetsordning förutsätter man att lösningen till ODE-problemet har "tillräckligt" många derivator. Om detta inte är uppfyllt i praktiken kommer den experimentella utvärderingen av noggrannhetsordningen att ge ett annat resultat än den teoretiska analysen visade. Man vill nu börja använda programmet för att göra omfattande lösningar av differentialekvationer av den mer känsliga typen, som omnämndes i Bakgrund ovan. Man finner då, inte oväntat, att lösningarnas karaktär utåt sett ser ut att bero nästan slumpmässigt även på små variationer i begynnelsevärden, koefficienter i ekvationerna samt även i de krav man ställer i den numeriska lösaren. Nu vill man skaffa sig en uppfattning om vilken noggrannhetsordning lösaren har för denna ekvationstyp i stort, trots att de individuella lösningarna kan skilja sig en del åt. Vilka körningar gör man och hur behandlar man resultaten av dessa körningar för att beräkna noggrannhetsordningen? Om du har löst uppgiften för betyg 4 ovan, kan du hänvisa till hur man modifierar eller bygger ut det som beskrivs där, i annat fall får du i denna uppgift beskriva hela proceduren. 5
ÍÔÔ Ð ÙÒÚÖ ØØ ÁÒ Øº Ö ÒÓÖÑØÓÒ ØÒÓÐÓ Úº Ö ØÒ ØÒÐÒ ÐÒ ÓÖÑÐÖ ÖÒÒ ÚØÒ Ô Á Ó ÁÁ ½º ÐÝØØÐ Ó ÚÖÙÒÒÒ Ð ØØ ÝØØÐ Ð(Ü) ÖÔÖ ÒØÖ ÒÐØ Ð(Ü) = ˆÑ ˆÑ = ( 0 1 2 Ô 1 ) 0 0 = 0 Ä Í Ö ØÒÖ Ó Ô ÔÖ ÓÒº ØØ ÝØØÐ Ý ØÑ ÒÖ È ( Ô Ä Í)º Å ÒÔ ÐÓÒ ÚÖÙÒÒÒ ÒØÒµ Å = 1 2 1 Ô Ó Ò ÒÖ ÓÑ Ø ÑÒ Ø ØÐ ÒØ ØØ Ð(1 + ) 1º ¾º ÄÒÖ Ó ÐÒÖ ÚØÓÒÖ ÆÛØÓÒ¹ÊÔ ÓÒ ÑØÓ Ü +1 = Ü Ö Ý ØÑ Ü +1 = Ü ÜÔÙÒØ ØÖØÓÒ Ö Ü = (Ü) Ü +1 = (Ü ) ÃÓÒÚÖÒ ÚÓØ ÓÒÚÖÒ ØØ Ü +1 lim ½ Ü Ü Ü Ö = (Ü ) ¼ (Ü ) [ ¼ ] 1 (Ü ) Ö Ü Ó (Ü ) Ö ÚØÓÖÖ Ó ¼ Ö ÂÓÒÒº Ö Ö Ò ÓÒ ØÒØ Ó Ö ÒÖ ÓÒÚÖÒ ØØÒ Ö = 1 ØÝÖ Ø Ü ÐÒÖ ÓÒÚÖÒ µº ÐÐÑÒ ÐÙÔÔ ØØÒÒ Ü Ü (Ü ) min ¼ (Ü) ÃÓÒØÓÒ ØÐØ cond() = 1 ÑØÖ Ò ÐØÒ Ö ØÖÒÒÖ Ó ÚØÓÒ Ý ØÑØ Ü = º Ø ÐÐÖ ØØ Ü Ü cond() Ö Ü = Ü ˆÜ Ó = ˆº ÆÓÖÑÖ ÚØÓÖ¹ Ö ÔØÚ ÑØÖ ÒÓÖѵ Ü 2 = Ô Ü 1 2 + + Ü Ò 2 Ü 1 = È Ü Ü ½ = max Ü 1 = ÑÜ ( È ) ½ = ÑÜ ( È ) º ÔÔÖÓÜÑØÓÒ ÆÛØÓÒ ÒØÖÔÓÐØÓÒ ÔÓÐÝÒÓÑ Ô(Ü) Ú Ö Ò ÔÙÒØÖ (Ü 1 Ý 1 ) (Ü Ò Ý Ò ) ÝÖ Ô Ò Ø Ò Ô(Ü) = 0 + 1 (Ü Ü 1 ) + 2 (Ü Ü 1 )(Ü Ü 2 ) + + Ò 1 (Ü Ü 1 ) (Ü Ü Ò 1 ) ÅÒ ØÚÖØÔÔÖÓÜÑØÓÒÒ ØÐÐ ÔÙÒØÑÒÒ (Ü 1 Ý 1 ) (Ü 2 Ý 2 ) (Ü Ñ Ý Ñ ) Ñ ØØ ÒÖ ÔÓÐÝÒÓÑ Ô(Ü) = 0 1 + 1 Ü + + Ò Ü Ò Ò ÓÖÑÙÐÖ ÓÑ ØØ ÚÖ ØÑØ
ÚØÓÒ Ý ØÑ Ü = Ö Ö Ñ Ò Ñ Òº ÅÒ ØÚÖØÐ ÒÒÒ Ò ÙÖ ÒÓÖÑÐÚ¹ ØÓÒÖÒ Ì Ü = Ì º ÇÖÒÖ ÖÒØÐÚØÓÒÖ ÙÐÖ ÑØÓ ÜÔÐØ ÙÐÖµ Ý +1 = Ý + (Ü Ý ) ÒºÓº ½ ÁÑÔÐØ ÙÐÖ ÙÐÖ Øµ Ý +1 = Ý + (Ü +1 Ý +1 ) ÒºÓº ½ ÌÖÔØ ÑØÓÒ Ý +1 = Ý + 2 ((Ü Ý ) + (Ü +1 Ý +1 )) ÒºÓº ¾ ÀÙÒ ÑØÓ ØÐÐÖ ÖÙÔÔÒ ÊÙÒ¹ÃÙØØÑØÓÖµ à 1 = (Ü Ý ) à 2 = (Ü +1 Ý + à 1 ) Ý +1 = Ý + 2 (à 1 + à 2 ) ÒºÓº ¾ ÃÐ ÊÙÒ¹ÃÙØØ Ã 1 = (Ü Ý ) à 2 = (Ü + 2 Ý + 2 à 1) à 3 = (Ü + 2 Ý + 2 à 2) à 4 = (Ü +1 Ý + à 3 ) Ý +1 = Ý + 6 (à 1 + 2à 2 + 2à 3 + à 4 ) ÒºÓº º ÆÙÑÖ ÒØÖØÓÒ ÌÖÔØ ÓÖÑÐÒ ÖÒÒ Ô ØØ ÐÒØÖÚÐÐ Ñ ØÐÒ = Ü +1 Ü Ü+1 Ü (Ü) Ü = 2 [(Ü ) + (Ü +1 )] ËÑÑÒ ØØ ÓÖÑÐ Ô ÐØ ÒØÖÚÐÐ [ ] Ú ØÒØ ØÐÒ = (Ü) Ü 2 [(Ü 0) + 2(Ü 1 ) + + 2(Ü Æ 1 ) + (Ü Æ )] Ê ÖØ ÖÒ ÐØ Ê Ô ÐØ ÒØÖÚÐÐ [ ] Ú (Ü) Ü = Ì () + Ê Ö Ê = ( ) 2 ¼¼ () 12 ÙÒØÓÒ ÐØ ÚÖ ÖÒ µ ( ÖÒÒº ËÑÔ ÓÒ ÓÖÑÐ ÖÒÒ Ô ØØ ÙÐÒØÖÚÐÐ Ñ ØÐÒ Ü+2 Ü (Ü) Ü = 3 [(Ü ) + 4(Ü +1 ) + (Ü +2 )] ) Ö Ö Ò ÚÖ ÖÒ Ö ÓÐÙØ ÐØ ÚÖ ÙÒØÓÒ ¹
ËÑÑÒ ØØ ÓÖÑÐ Ô ÐØ ÒØÖÚÐÐ [ ] Ú ØÒØ ØÐÒ = (Ü) Ü 3 [(Ü 0) + 4(Ü 1 ) + 2(Ü 2 ) + 4(Ü 3 ) + + 2(Ü Æ 2 ) + 4(Ü Æ 1 ) + (Ü Æ )] Ê ÖØ ÖÒ ÐØ Ê Ô ÐØ ÒØÖÚÐÐ [ ] Ú (Ü) Ü = Ë() + Ê Ö Ê = ( ) 180 4 ¼¼¼¼ () ÙÒØÓÒ ÐØ ËÑÑ ÓÑ Ö ØÖÔØ ÓÖÑÐÒ ÓÚÒº º ÊÖ ÓÒÜØÖÔÓÐØÓÒ ÇÑ 1 () Ó 1 (2) Ö ØÚ ÖÒÒÖ Ø Ü ØØ Ø Ò ÖÒÒ Ú Ò ÒØÖÐ ÐÐÖ Ò Çµ Ñ Ò ÑØÓ Ú ÒÓÖÒÒØ ÓÖÒÒ Ô Ñ ØÐÒ Ö ÔØÚ ÙÐ ØÐÒ 2 Ö Ê() = 1() 1 (2) 2 Ô 1 Ò ÙÔÔ ØØÒÒ Ú Ò ÐÒ ØÖÑÒ ØÖÙÒÖÒ ÐØ 1 ()º ÃÒ ÚÒ ÒÚÒ Ö ØØ ÖØØÖ ÒÓÖÒÒØÒ 1 () ÒÓÑ () = 1 () + 1() 1 (2) 2 Ô 1 º ÆÙÑÖ ÖÚÖÒ Ö ÒÙÑÖ ÖÚÖÒ ÒÚÒ ÖÒ ÓÖÑÐÖ (Ü+) (Ü ) ¼ (Ü) 2 ÒØÖÐÖÒ ¼ (Ü+) (Ü) (Ü) ÖÑØÖÒ ¼ (Ü) (Ü ) (Ü) ØÖÒ ¼¼ (Ü) (Ü+) 2(Ü)+(Ü ) 2 º ÅÓÒØ ÖÐÓÑØÓÖ Ò ÚÖÖÔÒ ØÖÙØÙÖÒ Ö ÅÓÒØ ÖÐÓ ÑÙÐÖÒÖ Ö ÁÒØ Æ ÒØÐ Ö µ ÓÖ ½Æ Ò ÍØÖ Ò ØÓ Ø ÑÙÐÖÒ Ö ÙÐØØ µ Ö ÙÐØØØ Ú ÑÙÐÖÒÒ ÐÙØÖ ÙÐØØ ÒÓÑ ÒÓÒ ØØ Ø ÖÒÒ Ø Ü ÑÐÚÖØ ÑÒ Ö ÙÐØØµ ÆÓÖÒÒØ ÓÖÒÒ Ö ÅÓÒØ ÖÐÓÑØÓÖ Ö Ç( 1 Ô Æ ) Ö Æ Ö ÒØÐ ÑÔÐÒÖº ÃÙÑÙÐØØÚ ÖÐÒÒ ÙÒØÓÒ (Ü) = Ê Ü½ (Ý)Ý ÆÓÖÑÐÖÐÒÒ (Ü) = 1 Ô 2 (Ü ) 2 2 2 ÖØÑØ Ø ÑÐÚÖ ÖØ Ô Æ ÖÐ ØÓÒÖ Ü Ú ÐÙÑÔÚÖÐÒ = 1 Æ È Æ =1 Ü º
º ÌÝÐÓÖÙØÚÐÒ ÌÝÐÓÖÙØÚÐÒ Ú Ý(Ü + ) ÖÒ Ü Ý(Ü + ) = Ý(Ü ) + Ý ¼ (Ü ) + 2 2! ݼ¼ (Ü ) + 3 3! ݼ¼¼ (Ü ) + Ç( 4 )