Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, 010-06-07 Skrivtid: 14 00 17 00 (OBS! Tre timmars skrivtid!) Hjälpmedel: 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. Betygsnivåer: Betyg 3: minst 13 poäng Betyg 4: minst 0 poäng varav minst 7 poäng på del B Betyg 5: minst 6 poäng varav minst 13 poäng på del B. Del A 1. Du vill använda bisektionsmetoden för att hitta en lösning till ekvationen exp x = 5x (a) Visa att intervallet [0, 1] är ett möjligt startintervall för bisektionsmetoden i detta fall. (b) Ett program, som gör två iterationer med bisektionsmetoden med ovan nämnda startintervall, skriver som resultat ut att x = 0.75 är en approximativ lösning till ekvationen. Efter de två iterationerna hade bisektionsmetoden kommit fram till intervallet [0.5, 0.75]. Hur stort kan då det absoluta felet i approximationen 0.75 då vara? Skulle programmet ha kunnat skriva ut en annan approximation med möjligt mindre fel? (4p) 1
. LU-uppdela följande matris med pivotering. L och U-matriserna ska anges explicit. 4.5. 1 3 0.6 4 6.4 3. Några nyckelbegrepp i den här kursen är diskretiseringsfel, maskinepsilon, underow, overow, iteration, konditionstal, noggrannhetsordning, adaptivitet. (4p) Nedan ser du några utskrifter från Matlab. För var och en av dessa, ange ett nyckelbegrepp som är relaterat till det du ser och förklara också på vilket sätt det är relaterat. Observera att du enbart ska använda ett nyckelbegrepp per exempel. (a) a = 1e-10; b = 1e-8; (a+b)-a ans = 0 (b) d = 1e160; e = 1e150; d*e ans = Inf (4p)
4. Matrisen P nedan beskriver övergångarna i en diskret Markovkedja. P = 0.5 0. 0.5 0.3 0.7 0.4 0. 0.1 0.1 Oberoende av initialtillstånd (till exempel att all sannolikhet nns i tillståndet motsvarande kolonn 1 i P ) kommer sannolikheterna för att benna sig i de olika tillstånden att konvergera mot en jämviktsfördelning när antalet steg i kedjan går mot oändligheten. Vilken av nedstående sannolikhetsvektorer beskriver jämviktsfördelningen för kedjan? Motivera ditt svar väl! p 1 = 0.3433 0.54 0.1343 p = 0.4093 0.4756 0.115 p 3 = 0. 0.4444 0.3334 5. (a) Vid integration av en funktion f(x) från a till b med en kvadraturregel med nogrannhetsordning 4 erhålls svaret 150.1 för steglängd h = 0.5. Vi gör nu tankeexperimentet att vi känner till det korrekta svaret och låter det vara exakt 150. Felet i vår beräkning är i så fall 0.1. Ungefär vilket fel vid motsvarande beräkning med steglängden h = 0.5 skulle du då förvänta dig (funktionsfelet antas vara försumbart)? (b) I uppgift (a) ovan antog vi att funktionsfelet var försumbart. Antag nu att värdena på funktion f(x) kommer från ett experiment och endast är kända med två decimalers nogrannhet. Vi använder oss av trapetsformeln med steglängd h=0.5 för att beräkna integralen och får svaret 151.. Som genom ett trollslag får vi veta att andraderivatan av f(x) kan begränsas som f (x) 17.3 på hela intervallet [a, b]. Vi anser att funktionsfelet är försumbart om det är högst 1% av diskretiseringsfelet. Din uppgift är nu att avgöra om det gäller i detta fallet, d.v.s. kan vi anta att funktionsfelet är försumbart? Motivera ditt svar väl. (3p) (p) (3p) 3
Del B 6. (a) Antag att du vill kunna beräkna integralen I = h h f(x)dx även för funktioner f(x) som inte är analytiskt integrerbara. Ett approximativt värde av I kan fås med hjälp av summan K = k 0 f( h) + k 1 f(0) + k f(h). Om koecienterna k 0, k 1, k väljs på ett bra sätt, blir kvadraturen K exakt lika med integralen I för ett andragradspolynom. D.v.s. uppgiften är: Ansätt f(x) = ax +bx+c och bestäm koecienterna k 0, k 1, k så att K = I. (b) Vilken metod har du härlett? 7. I ett vattenkraftverk nns s stycken sensorer utplacerade. Mätdata från dessa skickas med tidsintervallet 10 5 sekunder till en dator som utför 10 9 yttalsoperationer per sekund. Mätvärdena lagras i en vektor v. Denna vektor används för att ställa upp ekvationssystemet Ac = b, där A är en s s-matris och b en s 1-vektor. Lösningsvektorn c innehåller kontrollvariabler, som används för automatisk reglering av kraftverket. Matrisen A är konstant över tid, medan vektorn b beror på mätvärdena i v. För varje nytt ekvationssystem som ska lösas kommer det alltså att vara ett nytt högerled, men samma matris. Koecientmatrisen A är full, det vill säga ertalet värden i matrisen är nollskilda. Frågan är nu: om man löser ekvationssystemet på lämpligt sätt, hur många sensorer går det då att ha, om datorn ska hinna beräkna c för en uppsättning mätdata innan nästa uppsättning mätdata kommer in till datorn? Vi antar att tiden det tar att få fram vektorn c är dominerad av tiden att lösa ekvationssystemet, och att det i sin tur är direkt proportionellt mot antalet yttalsoperationer som behöver utföras. (5p) (1p) (6p) 4
8. I en matematisk modell för en kemisk reaktion har man funnit att man för olika värden på en parameter C måste nna den tidpunkt T som uppfyller F(T) = C där F(T) = 1 T T c(t)dt och c(t) är en given funktion av t. 0 Man har funnit att funktionen F(T) ser ut ungefär enligt guren. Figur 1: F(T) Man måste alltså lösa en ickelinjär ekvation, och eftersom man antar att beräkningen av den integral som denierar F(T) är ganska tidsödande vill man använda en snabb metod för lösningen. Enbart bisektion anses vara för långsamt. Dessutom får man inte använda T -värden som är större än T max, (och därmed inte heller C-värden större än C max ), eftersom c(t) inte är denierad för t > T max. För funktionen i guren är T max = 1.6. Diskutera hur följande problem lämpligen ska lösas, (du får anta att det (t.ex. i MATLAB) färdigskrivna funktioner som beräknar c(t) och den angivna integralen): 5
(a) Hur hittar man lämpligen en bra begynnelsegissning till den sökta roten för olika värden på C? (b) Vad kan vara en lämplig numerisk metod att lösa ekvationen med, en metod som förväntas vara snabbare än bisektionsmetoden? Du kan antingen anta att du kan beräkna derivatan F (T) eller också att du inte kan det. I det förra fallet får du antyda hur derivatan skulle beräknas. (c) Finns det några C-värden där den metod du har föreslagit i b) skulle kunna ha svårigheter att hålla sig inom det tillåtna intervallet? (8p) 6
= ˆ ˆ = ( 0 1 1 ) 0 0 =0 (1 + ) 1 = 1 1 +1 = +1 = [ ] 1 = +1 = min = cond= 1 cond = ˆ = ˆ = 1 + + 1 = =max 1 = = ( 1 1 ) = 0 + 1 ( 1)+ ( 1)( )+ + 1( 1) ( 1) = ( 1 1 ) ( ) = 0 1+ 1 + + =
+1 = + +1 = + ( +1 +1) +1 = + ( + ( +1 +1)) 1 = = ( +1 + 1) +1 = + ( 1 + ) 1 = = ( + + 1) 3 = ( + + ) 4 = ( +1 + 3) +1 = + 6 ( 1 + + 3 + 4) = +1 +1 = [ + ( +1)] [ ] = [ ( 0)+ ( 1 )+ + ( 1)+ ] [ ] = + = 1 + = 3 [ +4 ( +1)+ ( +)] [ ] = 3 [ ( 0)+4 ( 1 )+ ( )+4 ( 3 )+ + ( )+4 ( 1)+ ] [ ] = + = 180 4
1 1( ) = 1 1( ) 1 1 1 = 1 + 1 1( ) 1 ( + ) ( + ) ( + ) + = ( 1 ) = 1 = 1 =1 ( + ) ( + )= + +! + 3 3! + ( 4 )