Uppsala universitet Institutionen för informationsteknologi Beräkningsvetenskap Per Lötstedt, tel. 47 2986 Saleh Rezaeiravesh Tentamen i Beräkningsvetenskap II, 5.0 hp, 206-0-4 Skrivtid: 4 00 7 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. Skriv svaren på varje fråga på separata papper. 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 Betyg a X G/U b X G/U c X G/U 2a X G/U 2b X G/U 2c X G/U 3a X G/U 3b X G/U 3c X G/U 4 poäng 5 poäng Betygskriterier: 3 st G på samtliga kursmål {Nyckelbegrepp, Algoritmer, Analys, Argumentation} (A-delen). 4 Som betyg 3 samt betyg 4 på uppgifterna i B-delen. 5 Som betyg 3 samt betyg 5 på uppgifterna i B-delen.
Del A. (a) Beräkna lösningen Ù vid Ø = 00 till differentialekvationen Ù ¼ = 34(Ù cos(ø)) sin(ø) Ø 0 Ù(0) = 0 med Heuns metod och tidssteget = 00. Ø 0 = 0 Ø = 00 Ù 0 = 0 Ù = Ù 0 + (Ø 0 Ù 0 ) = 0 + 00( 34(0 cos(0)) sin(0) = 034 Ù = Ù0 + 05((Ø 0 Ù 0 ) + (Ø Ù)) = 0 + 0005(( 34(0 cos(0)) sin(0)) +( 34(034 cos(00)) sin(00))) = 0282 (algoritm) (b) Den analytiska lösningen till ekvationen är Ù(Ø) = exp( 34Ø) + cos(ø) När Euler framåt används för att lösa den numeriskt med tidssteget = 007 så blir lösningen för de första tio tidsstegen 0 23800 095 36098 26684 59504 59998 04244 2387 89790 243092 Varför uppför sig lösningen på detta sätt och ange två möjliga lösningar på problemet. Lösningen är instabil. Ekvationen är styv. Använd ett kortare tidssteg med Euler framåt eller byt till Euler bakåt. (argumentation) (c) Felet i första steget med Euler framåt beräknas med hjälp av den analytiska lösningen för olika steglängder i tabellen. Förklara varför felen förändras så här. 0.000 0.0005 0.00 0.005 Ù 0.0034 0.07 0.0340 0.7 fel 577 0 6 44 0 4 572 0 4 0.037 Felet i Ù är ett lokalt fel som uppför sig som Ç( Ô+ ) med Ô = för en första ordningens metod som Euler framåt. (analys) 2
2. (a) Förklara skillnaden mellan en deterministisk och en stokastisk beräkningsmetod. En deterministisk beräkningsmetod ger alltid samma svar med samma indata (exempel trapetsmetoden för integralberäkning). En stokastisk beräkningsmetod använder slumptal och ger olika svar varje gång den används men ger en bra approximation till vårt problem om den upprepas många gånger (exempel Monte Carlo metod för integralberäkning). (nyckelbegrepp) (b) En generell integral kan skrivas Á = (Ü)Ü ¾ IR Formulera en Monte Carlo-metod för att beräkna integralen. Skriv en Matlabfunktion för att beräkna värdet på Á = Ü 4 sin(ü)ü med Monte Carlo-metoden. Input till funktionen är, och Ò (antal samples). Ò ( ) Á (Ü ) Ò = där Ü är Ò slumptal likformigt fördelade mellan och. Olika matlab-lösningar är möjliga, t ex, %>> variation << function [I]=mcInteg(a,b,n) fun=@(x) (x^4*sin(x)); I=0; for i=:n xj=a+(b-a)*rand(); I=I+fun(xj); end I=(b-a)*I/n; (algoritm) %>> variation 2 << function [I]=mcInteg(a,b,n) fun=@(x) (x.^4.*sin(x)); xj=a+(b-a)*rand(,n); I=(b-a)*sum(fun(xj))/n; (c) Värdet på integralen beräknad med 5000 Monte Carlo-slumptal blir 26.026. En noggrann beräkning med trapetsmetoden blir 26.03. Om vi vill ha ett relativt fel på 0 3 i Monte Carlo-beräkningen, hur många slumptal behöver vi då? 3
Relativa felet vid Monte Carlo integration är Ô Ç( Ò) eller Ô Ò. Här är = (2603 26026)26026 = 00038. Koefficienten antas vara konstant och blir Ô 5000 = 02656. För att åstadkomma 0 3 behöver vi Ò = (026560 3 ) 2 7 0 4 slumptal. (analys) 3. I ett laboratorieexperiment erhölls följande data Ý 50 68 92 0 32 Ù 5.80 6.20 7.20 7.60 8.00 (a) Vi vill uttrycka Ù som Ù = ln Ý + Använd minstakvadratmetoden för att beräkna och. Låt Þ = ln Ý och Ù = Þ +. Då får vi Ý 50 68 92 0 32 Þ = ln Ý 3.9 4.22 4.52 4.70 4.88 Ù 5.80 6.20 7.20 7.60 8.00 Normalekvationerna blir È 5 È= 2 5 = Þ È 5 = Þ È 5 = Þ2 È 5 = = Ù È 5 = Þ Ù Ekvationssystemet blir 5 2223 2223 9943 = 8480 37845 Lösningen är = 240, = 629. (algoritm) (b) Vi är intresserade av Ù vid Ý = 74. Ett alternativ är att använda minstakvadratapproximationen ovan. Ett annat alternativ är linjär interpolation i Ý. Ett tredje alternativ är linjär interpolation i ln Ý. Beräkna värdena på Ù med dessa tre metoder. Är värdena desamma? Vilket värde är förmodligen mest noggrant om felen i mätningarna är små? - Minstakvadratmetod: Ù(74) = 240 ln(74) + 629 = 662 4
- Lokal linjär interpolation i Ý: Ù(74) = 62 + 74 68 (72 92 68, - Lokal linjär interpolation i ln Ý: Þ = ln(74) = 430, Ù(74) = 62 + Värdena blir inte desamma. (argumentation) 62) = 645 430 422 (72 62) = 647 452 422 (c) Beskriv tre egenskaper hos splineapproximation. En splineapproximation interpolerar alla de givna punkterna, är kontinuerlig och har kontinuerlig första och andraderivata. Den har mindre oscillationer än en polynominterpolation genom alla punkterna om de är många och är mindre känslig för små ändringar i givna data. (nyckelbegrepp) Del B 4. En molekyl i en stokastisk modell skapas och sönderfaller enligt Benägenheten (propensiteten) att skapas i första reaktionen är = och att sönderfalla i den andra reaktionen är 2 där är antalet molekyler av och 2 = 05. Använd Gillespies algoritm för att simulera ett utfall (eller en trajektoria) från tiden Ø = 0 fram till Ø = 2. Vid Ø = 0 är = 2. Hur många molekyler finns det vid Ø = 2? I algoritmen behövs ett antal likformigt fördelade slumptal i intervallet [0 ]. Med rand i Matlab har följande sekvens genererats 0622 07943 032 05285 0656 06020 02630 0654 06892 07482 Första reaktionen sker vid Ø = 0 + log( ) = 09095. +(0)2 0622 Reaktionen är sönderfallet därför att () = = 05 07943 +(0)2 (2) =. Då blir (Ø ) =. Nästa reaktion sker vid Ø 2 = Ø + Ø = 09095 + log( ) = 6877. Reaktionen är skapandet därför att +(Ø)2 032 05285 () = = 06667. Då blir (Ø 2) = 2. Nästa reaktion sker vid +(Ø)2 Ø 3 = Ø 2 + Ø = 6877 + log( ) = 25868. Alltså är (2) = 2. +(Ø2)2 0656 5
5. En Runge-Kuttametod för att lösa en ODE Ý ¼ = (Ø Ý) definieras av Ý Ò+ = Ý Ò + (Ø Ò Ý Ò ) 2 Ý Ò+ = Ý Ò + (05(Ø Ò+ + Ø Ò ) 05( Ý Ò+ + Ý Ò )) (a) Bestäm metodens stabilitetsområde med (Ø Ý) = Ý. (b) Vilken blir begränsningen på för stabilitet om 0 och reell? (c) Bestäm noggrannhetsordningen för metoden. (a) Applicera metoden på ekvationen Ý ¼ = Ý. Då blir Ý Ò+ Ý Ò+ = Ý Ò + Ý Ò = ( + )Ý Ò Ý Ò+ = Ý Ò + 05( Ý Ò+ + Ý Ò ) = + Ý Ò + 05 2 2 Ý Ò = + + 05 2 2 Ý Ò Metoden är stabil om + + 05() 2 Området ligger i vänstra halvplanet precis som för Heuns metod. (b) Ekvationen + Õ + 05Õ 2 = har lösningen Õ = 0 2. När Õ ¾ [ 2 0] så är + Õ + 05Õ 2. Alltså är metoden stabil när ¾ [ 2 0]. (c) Trunkeringsfelet är = Ý(Ø +) Ý(Ø ) (05(Ø +Ø +) 05(Ý(Ø )+Ý(Ø )+(Ø Ý(Ø )))) Vi Taylorutvecklar runt Ø +2 = 05(Ø + Ø +). Låt Ý = Ý(Ø +2) Ý ¼ = Ý ¼ (Ø +2) Ý ¼¼ = Ý ¼¼ (Ø +2). Då får vi först och sedan Ý(Ø +2 2) = Ý 05Ý ¼ + 025 2 Ý ¼¼ + Ç( 3 ) Ý ¼ (Ø +2 2) = Ý ¼ 05Ý ¼¼ + Ç( 2 ) 05(Ý(Ø ) + Ý(Ø ) + (Ø Ý(Ø ))) = Ý 05Ý ¼ + 025 2 Ý ¼¼ + 05(Ý ¼ 05Ý ¼¼ ) + Ç( 3 ) = Ý 025 2 Ý ¼¼ + Ç( 3 ) 6
(05(Ø + Ø +) 05(Ý(Ø ) + Ý(Ø +))) = (Ø +2 Ý 025 2 Ý ¼¼ + Ç( 3 )) = (Ø +2 Ý) (0252 Ý ¼¼ + Ç( 3 )) = Ý ¼ (Ø Ý +2) + Ç( 2 ) Nu blir = Ý + 05Ý ¼ + 025 2 Ý ¼¼ + Ç( 3 ) Ý +05Ý ¼ 025 2 Ý ¼¼ + Ç( 3 ) Ý ¼ + Ç( 3 ) = Ç( 3 ) = Ç( Ô+ ) Metoden är av ordning Ô = 2. 7