Lösningsförslag till tentamensskrivningen i Numerisk analys 160526 Del I: (1) (a) Heuns metod för numerisk lösning av differentialekvationer har noggrannhetsordning 2. Detta betyder att Felet avtar med antalet steg Antalet korrekta decimaler kvadereras Felet är proportionellt mot steglängden X Det globala felet är proportionellt mot steglängden i kvadrat (b) Talföljden x 0, x 1,... genereras av Newton-Raphsons metod för att lösa en icke-linjär ekvation har konvergensordning 2. Detta betyder att Felet avtar med antalet steg Antalet korrekta decimaler kvaderas X Felet i steg n är approximativt proportionell mot kvadraten på felet steg innan. Inget av ovanstående är rätt. (c) Trapetsmetoden ger vid testproblemet y = λy, y(0) = 1 differensekvationen, y n+1 = y n + 1 2 hλ(y n+1 + y n ), y 0 = 1. Det betyder att stabiltetsområdet är enhetsdiskskivan centrerad i 1 på det komplexa planet stabiltetsområdet är samma som det för bakåt Euler X stabiltetsområdet är det vänstra halva komplexa planet steglängden behöver begränsas (d) Vid beräkning av x ur ekvationssystemet x + ay = 1, ax + y = 0 spelar talet C P = 2a2 1 a 2 stor roll. Vad säger vi om a 2 1? X Problemet är illakonditionerat. välkonditionerat ekvationssystemet saknar lösning Är det möjligt att undvika a 2 1? Ja, nämligen genom en lämplig metod Nej eftersom. (2) Använd minstakvadratmetoden för att till givna mätdata anpassa modellen x 101 102 103 104 105 y -4 0 3 3 5 P (x) = c 1 + c 2 (x 103) + c 3 ((x 103) 2 2) coefficenten c 3 blir -2-1. x -0.5 0 0.5 1 2 103
(3) Beteckna ˆx(t), ŷ(t) approximationer för x(t), y(t). (a) Ett steg med Eulers metod med steglängden h = 0.25 på dx/dt = 2xy, dy/dt = 8t 2xy, x(0) = 1, y(0) = 4 ger bl.a. följande resultat (ett alternativ korrekt): ŷ(0.25) = 1 ˆx(0.25) = 0.75 ŷ(0.50) = 3 ˆx(0.25) = 1 x ŷ(0.25) = 2 ˆx(0.50) = 2 ŷ(1.00) = 3 ˆx(1.00) = 103 (b) Ytterligare ett steg med Euler med samma steglängd ger (ett alternativ korrekt) ˆx(0.25) = 1 ˆx(0.25) = 0.75 x ˆx(0.50) = 6 ˆx(0.50) = 1 ˆx(0.75) = 0.25 ˆx(0.50) = 2 ˆx(1.00) = 3 ˆx(1.00) = 103 (4) En metod för lösning av icke-linjära ekvationer x k+1 = x k + dx k ger en följd av korrektionstermer dx k enligt 0.4, 0.04, 0.004, 0.0004, 0.00004 Detta indikerar att metoden divergerar x är linjärt konvergent är bättre än linjärt konvergent är kvadratiskt konvergent är Newtons metod är Runge-Kuttas metod x 101 102 103 104 105 (5) Givet tabellen y -4 0 3 3 5 (a) Det interpolationspolynom som går genom samtliga punkterna i tabellen har gradtalet 2 3 x 4 5 (b) Om vi interpolerar linjärt till x = 104.3 så får vi 3.0 3.3 x 3.6 3.9 (6) Största positiva roten till ekvationen (x + 2)(x 2 1) 6 = 3 10 6 x 11 skall beräknas på en datamaskin, som använder flytande aritmetik med 7 decimala siffror. Maskinen kommer att behandla ekvationen (x + 2)(x 2 1) 6 = 0, vars exakta positiva 2
rot är 1. Det är onekligen ett dåligt resultat. Skulle du kunna få roten med full maskinnoggrannhet? ( ) 1 x Ja, dvs, genom omskrivningen x = 1 + 1 1 3x 11 6 x+1 10 x+2 och en iterationsmetod t ex med x 0 = 1 ger x 1 = 1.05 och roten ska vara > 1.05 Nej, nämligen (7) Differentialekvationsproblemet d 3 q dt 3 + 3dq dt q2 = sin(t) skrivs om som ett system av n st första ordningens differentialekvationer Då blir n det är omöjligt att säga 1 2 x 3 4 (8) En integral I = 4 0 f(x)dx har beräknats approximativt med trapetsregeln T (h) med steglängderna h = 0.1, h = 0.05 och h = 0.01. Följande resultat erhölls T (0.1) = 2.850216, T (0.05) = 2.761023, T (0.01) = 2.731224. Felet i T (0.1) är ungefär det är omöjligt att säga 1 x 0.1 0.01 0.0001 (9) Ekvationssystemet Ax = b kan lösas med Gauss-Seidels metod genom lämplig förbehandling, där 2 10 0 1 A = 0 1 1 5 5 1 0 0 1 0 10 0 b = 25 10 70 Dvs. bestäm en lämplig matris M sådan att x = c + Mx. Utan att iterera beräkna M = 0.03, vilket innebär att metoden konvergerar x M = 0.4, vilket innebär att metoden konvergerar M = 0.4, vilket innebär att metoden divergerar M = 1, ingen slutsats kan dras. Genomför två iterationer x (1) = (1.4, 3.22, 7.14, 4.216) T x (2) = (1.356, 3.150, 7.136, 4.203) T (10) En numerisk derivering ger ( ) f f(x + h) f(x h) h 2 (x) = 2h 3! f (3) (x) + h4 5! f (5) (x) + Richardson-extrapolation på ovanstående ekvationen ger Där f (x) = Af(x + 2h) + Bf(x + h) + Cf(x h) + Df(x 2h) 12h A = 1, B = 8, C = 8, D = 1, α = 4 + O(h α ). 3
DEL 2 (1) För givet z kan funktionen tan(z/2) beräknas enligt formeln y = tan z 2 = ± ( 1 cos z 1 + cos z Är denna beräknings metod numeriskt stabil för z 0, z π/2? I fall nödvändigt ange ett numeriskt stabilt alternativ. ( Lösning. Vi ska beräkna ỹ = fl 1 cos z 1+cos z ) 1/2 ).Låt nu beräkningarna fl(cos ) = cos (1 + δ 1 ), fl( ) = ( )(1 + δ 2 ), fl( + ) = ( )(1 + δ 3 ), fl( / ) = ( / )(1 + δ 4 ), fl( ) = (1 + δ 5 ), δ i ɛ, i = 1,..., 5, ɛ är mycket litet Då har vi (1 cos z(1 + δ 1 ))(1 + δ 2 ) ỹ = (1 + cos z(1 + δ 1 ))(1 + δ 3 ) (1 + δ 4)(1 + δ 5 ) (1 cos z)(1 cos z 1 cos z = δ 1)(1 + δ 2 ) (1 + cos z)(1 + cos z 1+cos z δ 1)(1 + δ 3 ) (1 δ 4)(1 + δ 5 ) Om z 0 blir cos z 1, vilket innebär att cos z/(1 cos z) exploderar. Alltså är metoden numeriskt instabil. Men metoden är OK för z π/2. Ett alternativ är att skriva om 1 cos z = 2 sin 2 z 2.Flytande punkts aritmetik ger fl(2 sin 2 z 2 ) = 2(sin z 2 (1 + δ 1 )) 2 (1 + δ 2 ) = 2 sin 2 z 2 (1 + 3δ 12) där δ 1, δ 3, δ 2, δ 4 är från beräkningarna sin, cos respektive multiplikationerna och δ 12 = 2 δ 1 + δ 2. För z 0 använd y = 2 sin 2 z 2 1 + cos z Då ỹ = 2 sin 2 z 2 (1 + 3δ 12)(1 + δ 4 ) (1 + cos z)(1 + cos z 1+cos z δ 1)(1 + δ 3 ) (1 + δ 5) = y(1 + ɛ y ) där 1 + ɛ y = (1 + 3δ 12 )(1 + δ 4 ) (1 + cos z 1+cos z δ 1)(1 + δ 3 ) (1 + δ (1 + 3δ 12 )(1 + δ 4 ) 5) (1 + 1 2 δ 1)(1 + δ 3 ) (1 + δ 5) cos z ty 1+cos z 1/2. Nu använder vi oss Taylorutvecklingen (1 + d)α = 1 + αd för att uppskatta högledet. Vi får (1 + 3δ 12 )(1 + δ 4 ) (1 + 1 2 δ 1)(1 + δ 3 ) (1 + δ 5) = (1 + 3 2 δ 12)(1 + δ 4 /2)(1 + δ 5 )(1 δ 3 /2)(1 δ 1 /4) = 1 + ɛ y där ɛ y < 9 4 ɛ. 4
(2) Man vill lösa andragradsekvationen x 2 3x + 1 = 0 med fixpunktsmetoden x n+1 = 1 3 (x2 n + 1). Experimentellt finner man att iterationerna konvergerar mot den mindre roten, om de alls konvergerar. Förklara detta! Hur många iterationer krävs för att minska felet med en faktor 10 6? Hur får man fram den större roten när man känner till den mindre? Lösning: I figuren till höger har vi kurvan y = x och kurvan y = φ(x) = 1 3 (x2 + 1) samt iterationerna med startvärde x 0 = 1.5. Vi ser att förfarandet går mot mot roten α = 0.3820. Derivatan φ (x) = 2 3x; konvergenskrav: φ (x) < 1 i en omgivning av roten. Det är uppfyllt för mindre roten ; φ (0.382) 0.25 < 1. Vid den större roten x 2.62 gäller φ > 1; ingen konvergens erhålls. En feluppskattning är x n+1 α = φ(x n ) φ(α) φ (ξ) x n α 0.25 x n α, vilket säger att felet reduceras med faktorn 0.25 i varje iteration. Nu ska vi bestämma k så att 0.25 k < 10 6. Det ger direkt k = 10 eftersom 2 10 = 1024 så gäller 4 10 = 1024 2 och ( 1 4 )10 < 10 6. Rötternas produkt är 1 (konstanttermen i andragradspolynom). Den större roten är 1/α = 2.6180. (3) Betrakta differentialekvationen y = ay + b med villkoret y(0) = y 0. Antag att a och b är reella tal och a min a a max < 0. En ostörd lösning {y n } med framåt Euler ger u n+1 = u n + h[au n + b], u 0 = y 0. Vi betraktar också en lösning {z n } för vilken begynnelsevärdet är stört med ett litet tal δ z n+1 = z n + h[az n + b], z 0 = y 0 + δ. Låt nu e n = z n u n. Beskriv effekten av den lilla störningen. Undersök vidare störnings effekt om det finns en störning i varje steg, dvs den störda lösningen z n ges av z n+1 = z n + h[az n + b + δ n ], z 0 = y 0 + δ 0. för små {δ n }. Lösning. Notera att a är reell och strikt negativ. En ostörd lösning {u n } med framåt Euler ges då av Låt e n := z n u n beskriva effekten av den lilla störningen. Då har vi En omskrivning ger e n+1 = e n + hae n, e 0 = δ. e n+1 = (1 + ha)e n = (1 + ha) n+1 δ. 5
Om nu 1 + ha < 1 (stabilitets villkor för för Euler) kommer faktorn 1 + ha n+1 < 1. Om dessutom ha min och ha max uppfyller samma villkor gäller att Det betyder att 1 + ah r < 1, r = max( 1 + ha max, 1 + ha min ). e n δr n = δr n 0, då n. Så har vi konstanterat att i detta fall 1 + ha < 1 är tillräckligt för att effekten av en liten störning ska försvinna när n. I fall det finns störning i varje steg har vi e n+1 = (1 + ha)e n + δ n = (1 + ha) n+1 δ 0 + δ n + (1 + ha)δ n 1 + + (1 + ha) n δ 1 Om 1 + ha < 1 = e n+1 δ n + 1 + ha δ n 1 + + 1 + ha n+1 δ 0 e n+1 max 0 j n δ j (1 + r + + r n+1 ) = δ 1 rn+1 1 r δ 1 r. Det innebär att effekten av störningarna inte alltid går mot 0 men är begränsad av storlekar på δ n. (4) Vi vill ha goda approximationer till integralvärdena I 1 och I där I 1 = 1 0 1 + x 4 + 1 + x 3 dx och I = 0 1 + x 4 1 + x 3 dx (a) Beräkna I 1 med trapetsregeln med en extrapolation. Välj steget så att minst två siffrors noggrannhet erhålls. (b) Ange en algoritm för beräkning av I med sikte på fem korrekta decimaler. (Du behöver inte räkna ut värdet på I.) Lösning. (a) Trapetsregeln med steget 1 ger T (1) = 1 ( 1 2 15 + 1 2 8.7868) = 11.89; med steget 0.5 fås T (0.5) = 13.01 och med steget 0.25: T (0.25) = 13.22. Extrapolera på de sista värdena: 13.22 + (13.22 13.01)/3 = 13.29. Med två siffrors noggrannhet gäller I 1 = 13. A (b) I = 0 1 + x 4 + 1 + x dx + 3 A 1 + x 4 + 1 + x dx = I 3 A + I svans. Kapa svansen vi ett så stort A-värde att I svans < 10 6. I svans < I = dx = A x4 3A 3 < 10 6 A 3 > 10 7, som ger A = 216. I = 18.59086. (5) I vetenskapsakademins almanacka finns en tabell över dagens längd vid olika tider av året på några orter. För den 21 juni visar tabellen följande värden: Ort Polhöjd Dagens längd Lund 55.7 17 tim 28 min Göteborg 57.7 18 tim 00 min Stockholm 59.3 18 tim 31 min Härnösand 62.6 19 tim 56 min Luleå 65.6 22 tim 34 min 6
Beräkna dagens längd den 21 juni i Hudiksvall, som ligger på 61.7. Lösning. Betrakta i tur och ordning Stockholm, Härnösand, Luleå, Göteborg, de mest närliggande tabellorterna till Hudiksvall. Låt y vara dagens längd minus arton timmar, räknad i minuter. x-värdena ordnas alltså 59.3, 62.6, 65.6, 57.7, och tillhörande y-värden är 31, 116, 274, 0. Först prövar vi kvadratisk interpolation med ansatsen P 2 (x) = c 1 + c 2 (x 59.3) + c 3 (x 59.3)(x 62.6). Stockholm: c 1 = 31 Härnösand: c 1 + 3.3c 2 = 116 c 2 = 25.76 Luleå: c 1 + 6.3c 2 + 6.3 3.0c 3 = 274 c3 = 4.27 Kvadratisk interpolation ger för Hudiksvall P 2 (61.7) = 83.6 84 min utöver 18 tim, dvs 19 tim 24 min. Om vi tar med Göteborg också, får vi utöka polynomet med en tredjegradsterm: P 3 (x) = P 2 (x) + c 4 (x 59.3)(x 62.2)(x 65.6). Ur sambandet P 3 (57.7) = 0 (för Go?teborg) erhålls c 4 = 0.376. För Hudiksvalls del gäller: P 3 (61.7) = P 2(61.7) + 3.2 = 83.6 + 3.2 87 min utöver 18 tim. Svar: Vid sommarsolståndet är dagens längd i Hudiksvall 19 tim 27min (med någon minuts osäkerhet). (6) Det hundrade primtalet är p 100 = 541, det tusende är 7919, det tiotusende är 104729 och det hundratusende är p 100000 = 1299709. Det gäller approximativt ett linjärt samband mellan tiologaritmen för n och kvoten p n /n. Gör minstakvadratanpassning till givna data och beräkna avvikelserna i de fyra punkterna. Hur stort är det fyratusende primtalet? Lösning. Inför x = 10 log n och y = p n /n. Då gäller a 1 + a 2 x y eller med centrering c 1 + c2(x 3.5) y. Med centrerade ansatsen får vi det överbestämda systemet n x = 10 log n y p n /n 100 2 5.41 1000 3 7.919 10000 4 10.4729 100000 5 12.99709 ( 4 0 0 5 ) ( 36.799 12.658 1 1.5 5.41 1 0.5 1 0.5 c 7.919 10.4729 1 1.5 12.99709 ) { c1 =9.200 Normalekvationer c = c 2 =2.5316 Avvikelserna är residylvektorn som blir (0.007, 0.015, 0.007, 0.000) T. För n = 4000 får vi y = c 1 + c 2 ( 10 log 4000 3.5) = 9.458 och det fyratusende primtalet bör ligga nära 4000y = 37832. (rätt primtal p 4000 = 37813. 7