Uppsala universitet Institutionen för informationsteknologi Avdelningen för beräkningsvetenskap Tentamen i Beräkningsvetenskap I och KF, 5.0 hp, 017-0-14 Skrivtid: 14 00 17 00 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat formelblad och miniräknare. 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 (med reservation för modifieringar). Fråga nr Nyckelbegrepp Algoritmer Analys 1 4 4 5 Del A 1. Studera integralen I = 1 0 e x dx. (1) (a) Beräkna integralen (1) med två decimalers noggrannhet då du utnyttjar trapetsformeln. Ange hur många intervall som behövs och redovisa värdet på integralen. Tips: Använd dig av strikta felformeln. Algoritm, Analys (b) Vilket annat fel uppkommer alltid då man integrerar numeriskt (i tex Matlab) och varför kan vi i detta fall bortse från detta fel? Nyckelbegrepp För godkänt krävs en redovisning av feluppskattningar samt bakomliggande antagande. Lösning a) Vi använder den strikta felformeln för trapetsformeln, R T = b a 1 h f (ξ), a ξ b. Toleransen är satt till decimalers noggrannhet, vilket motsvarar tol = 0.5 10. Kräv nu att R T tol, dvs b a 1 h max x [a,b] f (x) tol. I vårt fall 1
har vi f(x) = e x och b a = 0.5. f (x) = (+4 x )e x. max f (x) = f (0.5).85. Vi löser nu ut vilken steglängd h det motsvarar: h ( ) 1 0.5 10 1 = 0.1765. 0.5.85 Detta h motsvarar (b a)/h = 0.5/0.1765.8 intervall. Vi väljer antal intervall till närmast högre heltal, dvs N = intervall. Detta motsvarar h = 0.5/ = 1/6 Trapetsformeln ger oss, T (1/6) = 1/6 = 1/6 Svar: I = 0.54 ± 0.005. (f(0) + f(1/6) + f(1/) + f(1/)) (1.0000 + 1.08 + 1.11751.840) = 0.5479498 Lösning b) Det andra felet är funktionsfelet vilket ges av R F = (b a) ɛ där ɛ är största funktionsfelet hos f(x) i intervallet. I vårt fall är detta felet enbart avrundningsfel, dvs ɛ = ɛ µ. 10 16. Dvs R F = 1. 10 16 10 16, dvs försumbart.
. Den icke-linjära funktionen f(x) = e x 10 x har följande graf Hitta den största roten i intervallet [, ]. Lös problememet med Newton-Raphsons metod. (a) Varför (två orsaker) är det olämpligt att välja startgissningen i intervallet [0, 1.4]? (b) Varför är det lämpligt att välja startgissningen i intervallet [1.8, ]? (c) Lös problememet med Newton-Raphsons metod så att den beräknade lösningen approximerar den exakta med minst två korrekta decimaler. Välj lämplig startapproximation utgående från figuren och ledningen i b). Följ algoritmen i detalj och avbryt när stoppvillkoret uppfylls. Redovisa lösningen i varje iteration. Algoritm (d) Vilken alternativ metod har vi att lösa f(x) = e x 10 x = 0 som konvergerar linjärt (dvs linjär konvergens hastighet). Hur många iterationer skulle krävas med denna metod om vi väljer startgissningen i intervallet [1.6, ] och kräver minst två korrekta decimaler? Nyckelbegrepp, Analys (e) Vilken konvergens hastighet kan vi förvänta oss med Newton-Raphsons metod och vilka antaganden är då gjorda? Vilken av de två metoderna konvergerar i regel snabbast? Nyckelbegrepp För godkänt krävs en redovisning av algoritmen, lösningarna i varje iteration och konvergens kriteriet (stoppvillkoret), och konvergenshastigheten i e).
Lösning a) och b) Vi ser att det finns 4 olika rötter till f(x) = 0, symmetriskt placerade kring x=0. Punkter där derivatan är noll (extrempunkter), tex x=0 är problem för Newton- Raphson. Om vi är intresserade av största roten som ligger ungefär vid x=1.9 så är det olämpligt att välja startgissining i i intervallet [0, 1.4] då vi kommer röra oss mot en annan rot vid x 0.4. Newton-Raphson konvergerar kvadratiskt mot roten x om startgissningen ligger tillräckligt nära x. En startgissning i intervallet [1.8, ] är nära den sökta roten x 1.9. Lösning c) Newton-Raphson för f(x) = 0 skrivs, x k+1 = x k f(x k) f (x k ) I vårt fall har vi f (x) = x e x 0x och vi får alltså x k+1 = x k ex k 10 x k x k e x k 0x k Vi inför feluppskattningen e k+1 = x k+1 x k. Stoppkriteriet är: fortsätt iterera tills e k+1 tol där vi i vårt fall kräver korrekta decimaler, dvs tol = 0.5 10 Om vi låter x 0 = 1.8 får vi ger sekvensen i Tabell 1. k x k e k 0 1.8000-1 1.98 0.18 1.8940 0.088 1.8914 0.006 Tabell 1: Sekvens av approximationer x k och feluppskattningar e k = x k x k 1 från Newton- Raphsons metod. Efter tre iterationer ser vi att e = 0.006 < 0.005, det vill säga x är en tillräckligt noggrann approximation av roten x. Svar: x x = 1.89. Om vi låter x 0 = får vi ger sekvensen i Tabell. k x k e k 0.0000-1 1.918 0.0818 1.89 0.049 1.891 0.0019 Tabell : Sekvens av approximationer x k och feluppskattningar e k = x k x k 1 från Newton- Raphsons metod. Efter tre iterationer ser vi att e = 0.0019 < 0.005, det vill säga x är en tillräckligt noggrann approximation av roten x. Svar: x x = 1.89. Om vi låter x 0 = 1.6 får vi ger sekvensen i Tabell. 4
k x k e k 0 1.6000-1.9480 1.480.7806 0.1674.6061 0.1745 4.469 0.179 5.495 0.1774 6.0884 0.1611 7 1.9667 0.117 8 1.9051 0.0616 9 1.8919 0.01 10 1.891 0.0005 Tabell : Sekvens av approximationer x k och feluppskattningar e k = x k x k 1 från Newton- Raphsons metod. Efter 10 iterationer ser vi att e 10 = 0.0005 < 0.005 (här korrekta decimaler), det vill säga x 1 0 är en tillräckligt noggrann approximation av roten x. Svar: x x = 1.891. Lösning d) Den alternativa metoden (som konvergerar linjärt) är Bisektionsmetoden. Felet i iteration k skrivs x x k, där x är den sökta roten. Feluppskattningen ges av (som vi tex gick igenom under F1 på kursen) x x k b a k+1, där startintervallet ges av [a, b]. I vårt fall väljer startgissningen i intervallet [1.6, ] och toleransen är tol = 0.005. Lös nu ut k ur olikheten b a tol, dvs k+1 1.6. Ta k+1 0.005 -logaritmen, vilket ger oss k log (0.4/0.005) 1 = 5.19 Svar: k = 6. (För korrekta decimaler krävs k = 11 och för 4 korrekta decimaler krävs k = 14. Med Newton-Raphson får vi 4 korrekta decimaler efter endast 4 iterationer med startgissning x 0 = 1.8, eller x 0 =.0.) Lösning e) Newton-Raphson konvergerar kvadratiskt under antagandet att vi är tillräckligt nära en enkelrot. (Man antar också att derivatan och andraderivatan är tillräckligt snälla.) Detta betyder att e k+1 c e k, för någon konstant c. Från Tabell ser vi tex att 0.0818 /0.049 = 0.687 och 0.049 /0.0019 = 0.6. Dvs i stort sett kvadratiskt. Ju närmare vi är roten desto närmare blir det exakt kvadratiskt. Bisektionsmetoden konvergerar linjärt, vilket betyder att felet minskar med en konstant faktor (i detta fall ) i varje iteration. Newtor-Raphson konvergerar alltså i regel betydligt snabbare. 5
Del B. Studera återigen integralen (1). (a) Beräkna integralen (1) med en 4de ordningens noggrann metod (NO 4), där du använder minst lika många intervall som i uppgift 1a). (b) En mycket noggrann uppskattning av integralen (1) ges av I = 0.54498710. Hur många korrekta decimaler fick vi med metoderna i 1a) respektive a)? (c) Uppkatta hur många intervall som skulle krävas för att trapetsformeln skulle ge samma noggrannhet som för metoden i deluppgift a). För godkänt krävs en redovisning av feluppskattning samt bakomliggande antagande. Lösning a) I uppgift 1a) krävdes minst intervall för trapetsformeln. För Simpson krävs ett jämnt antal intervall. Vi väljer det minsta möjliga till 4 (det ska vara minst från formuleringen av uppgiften). Detta motsvarar h = 0.5/4 = 1/8. Simpsons formel ger oss, S(1/8) = 1/8 = 1/8 (f(0) + 4 f(1/8) + f(1/4) + 4 f(/8) + f(1/)) (1.0000 + 4 1.0157 + 1.0645 + 4 1.1510 + 1.840) = 0.544999 Lösning b) Felet uppskattas till 0.544999 0.54498710 = 0.119 10 4, dvs minst 4 korrekta decimaler. Svar: I=0.5450. Felet för T(1/6) ges av 0.5479498 0.54498710 = 0.9 10, dvs korrekta decimaler. Lösning c) Kvoten mellan felet med S(1/8) och T(1/6) ges av 0.9 10 /0.119 10 4 48. Vi ska alltså minska felet en faktor 48. Felet hos trapetsformeln ges av R T (h) = c h där c är en konstant. R T (h) R T (1/6) = 6 h = 1 1 48 h = 6 48 = 0.01058. Detta motsvarar 0.5/0.01058 = 47.4 intervall. Vi väljer N=48 intervall. 4. Vattenföringen (här benämnd q(t)) i Fyrisån har vid en mätstation registrerats var e timme under ett dygn. Den högsta vattenföringen uppmättes under dygnet till q max (t) = q(15) = 6.765 m /sekund. Mätnoggrannheten uppskattades till 0.005%, dvs det finns ett mätfel som motsvarar 0.005% av det uppmätta värdena q(t). Man har beräknat den totala vattenföringen under dygnet (baserat på de 9 mätvärdena) med trapetsformel T (h), för tre olika val av steglängd h. Resultaten är i enheten m /dygn och presenteras i följande tabell (tillsammans med en figur över vattenföringen), 6
Figur 1: Vattenföringen q(t), var e timme. h [timmar] T(h) [m /dygn] 1.50408 10 6 6.541444 10 6.5785 10 6 Tabell 4: Resultat med trapetsformeln. Uppskatta det totala felet hos T(), dvs trapets beräkningen av den totala vattenföringen under dygnet med steglängden timmar. Beräkna sedan en 4de ordningens noggrann approximation till vattenföringen under dygnet, och uppskatta det totala felet hos approximationen. Ange till sist den potentiellt mest noggranna approximationen till vattenföringen under dygnet baserat på tabellen och uppgifterna i texten. Ange även en teoretisk övre undre för den totala noggrannheten, baserat på den givna mätnoggrannheten. Lösning Vi har här två olika fel, Trunkeringsfel och Funktionsfel. Områdets bredd (a b) ges av 4 600 sekunder. Det maximala funktionsfelet ges av 0.00005 6.765 = 0.00186 m /sekund. Funktionsfelet ges av 0.00005 6.765 4 600 = 75.86 m. Om vi inte utnyttjar mer noggranna mätningar så är vi begränsade av detta fel. Dvs, det teoretiskt minsta felet ges av 75.86 m, oavsett numerisk metod. Vi ska nu bestämma trunkeringsfelen hos de olika numeriska metoderna. Vi använder Richardson extrapolation (Rombergs metod) för att först bestämma motsvarande uppskattningar med Simpsons metod. Utnyttja att T (h) T ( h) S(h) = T (h) + Trunkeringsfelet, hos T (h), här benämnt R T (h), kan uppskattas med e-dels regeln T (h) T ( h) T (6) T (1) = R T (h) = S(h) T (h). Från tabellen får vi S(6) = T (6) +.5447789 10 6 m T () T (6), S() = T () + =.5908809 10 6 m. Felet hos T () kan vi uppskatta till R T () = S() T () = 1.59 10 m. Dvs, trunkeringsfelet hos T () är betydligt större än funktionsfelet. Det totala felet för trapets beräkningen på det finaste nätet uppgår alltså till 1.59 10 + 75.86 = 1.51 10 m. Vi kan ta fram en 6e ordningens noggrann uppskattning, här benämnd C(h) genom att igen utnyttja Richardson extrapolation, C(h) = S(h) + S(h) S( h) 15 7
Felet hos S(h), här benämnt R S (h), kan uppskattas med 15-dels regeln, dvs R S (h) S(h) S( h) = C(h) S(h). Från våra tidigare beräkningar av S() och S(6) får vi nu 15 C() = S() + S() S(6) =.587087 10 6 m. Felet hos S() uppskattas till R 15 S () = C() S() =.79895 10 m. Dvs trunkeringsfelet för S() är i storleksordningen av funktionsfelet. Det totala felet i Simpson beräkningen på det finaste nätet uppgår alltså till.79895 10 + 75.86 = 6.54 10 m. 8