MA251 Numeriske metoder Løsningsforslag, Øving 3 Oppgave 1 a) Start med å tegne en skisse av funksjonen f(x) = x.99(e x 1). Vi oppdager fort at α må ligge svært nær, faktisk rundt.2. Newtons metode anvendt på ligningen fører til 1 x 1 4 skjemaet x k+1 = x k xk.99(e x k 1) 1.99e x k Med startverdi.2 får vi: x k, k =, 1,, 1 2 k 3.2 1.2673418858258 4 2.26711439885131 3.26711439626623 5.5.1.15.2.25.3.35.4 b) Det mest opplagte iterasjonsskjemaet er x k+1 = g(x k ) =.99(e x k 1), x.99*(exp(x) 1) og vi har at g (x) =.99e x. Det er da lett å vise at g (x) < 1 for alle x <.1 som betyr at x k konvergerer mot roten. For x >.11 er imidlertid g (x) > 1 og det fører til at dette iterasjonsskjemaet ikke kan konvergere mot den positive roten α. Et annet alternativ er x k+1 = g(x k ) = ln ( 1 + x k ).99 Her er g (x) = 1/(x+.99), som betyr at g (x) < 1 for alle x >.11. Dessuten, for alle x.11 er g(x).11 og dermed finnes det et entydig fikspunkt av ligningen for x.11. Iterasjonsprosessen konvergerer mot dette fikspunktet forutsatt at altså x.11. Deretter skal vi finne k slik at x k α 1 6. Bruk x k α = g(x k 1 ) g(α) λ x k 1 α λ k x α (2) der λ = max g (x). Vi ser at fra figuren at α [.19,.21] slik at vi kan velge λ = max x>.19 g (x) = g (.19) =.9911. α er riktignok en størrelse vi ikke kjenner, men følgende triks kan benyttes: Fra (2) vet vi Vi vet at x 1 α λ x α. Dermed kan vi skrive x α = x x 1 + x 1 α x x 1 + x 1 α x x 1 + λ x α x (1) 1
slik at Innsatt i (2) får vi da følgende uttrykk: x α 1 1 λ x 1 x. x k α λk 1 λ x 1 x. Med for eksempel x =.19 får vi x 1 =.1912, og vi finner at for k 787. x k α λk 1 λ x 1 x 1 6 Oppgave 2 a) Problem 2 (Kap. 3.2): La oss først gjøre et par iterasjoner for å se hva som skjer 1) x = 3, x 1 = 1, f (x 1 ) = og algoritmen krasjer 2) x = 3.1, x 1 = 1.27, x 2 = 17.8, x 3 = 12.4 3) x = 2.9, x 1 =.67, x 2 = 6.75, x 3 = 4.7. Tja, rent bortsett fra at det åpenbart går galt når x = 3, så er det vanskelig å trekke klare konklusjoner. Så la oss tegne noen skisser, og prøve å forstå hva som skjer. Vi vet at r.7, og at f (x) =, for x = 1 og x = 2. 6 Skisserer vi iterasjonerne, så ser det ut til at vi har konvergens hvis x n < 1 for en eller annen n. Men for x n > 1 kan vi riskere å havne i en slags syklus. Så la oss undersøke hva som skjer med x rundt 3, det er rimelig å anta at dersom 2 < x < 3 så vil x 1 < 1 og vi får konvergens. Hvis x > 3 så havner vi i syklusen. 4 2 2 4 6 8 2 1 1 2 3 4 Strengt tatt må vi altså undersøke: a) Hvis x (2, 3), vil da x 1 < 1? Insetting av funksjonen f(x) = 2x 3 9x 2 + 12x + 15 i Newtons metode, x n+1 = x n f(x n) f (x n ), 2
gir, etter litt beregning, x n+1 = x2 n(4x n 9) 15 6(x n 1)(x n 2). (3) Hvis vi ser på det høyre leddet i (3) ser vi at x 1 < 1 hvis x (2, 3). b) Får vi konvergens hvis x n < 1 for en eller annen n? Igjen ser vi på høyre leddet til (3) og ser at x 1 < hvis x < 1. Hvis så er g(x) = x2 (4x 9) 15 6(x 1)(x 2) g(x) x = 2x3 + 9x 2 12x 15 6(x 1)(x 2) (Høyre leddet til (3)) >, (x n+1 > x n ) hvis bare x < a for noen a >, siden x 3 vokser raskere en noen annen ledd i telleren. Dette betyr at x n ikke kan bli hur litet som helst. Rekkefølgen er derfor nedåt begrenset og vi må ha konvergens hvis x n < 1 for noen n c) Hvad skjer hvis x (1, 2)? For 1 < x < 2 (mellom de singulære punktene) har vi et ekstrempunkt (minimumpunkt) i x n = 3/2 for g(x) med funksjonsverdien g(3/2) = 14.5. Hvis x n (1, 2) vil derfor x n+1 [14.5, ) og vi riskerer at havne i et cyklus. b) Problem 23 (Kap. 3.2): Den iterative funksjonen x n+1 = x n (2 x n R) = x n (x 2 n R x n) (4) kan ses som anvendelse av Newtons metode på en funksjon slik at f(x) f (x) = x2 R x. Dette er en separabel differentialligning med løsningen f(x) = (Rx 1)C, x hvor C er en generell konstant. f(x) = hvis og bare hvis x = 1/R. La R = 4, da får vi etter tre iterasjoner (4), med startverdi x =.2: Iterasjoner=, x=.2, feil=.5 Iterasjoner=1, x=.24, feil=.1 Iterasjoner=2, x=.2496, feil=.4 Iterasjoner=3, x=.24999936, feil=.64 3
Oppgave 3 a) Feilen, e n+1, etter n + 1 iterasjoner kan skrives [ e n+1 = x n+1 r = x n ω f(x ] n) f r = e n ω f(x n) (x n ) f (x n ). (5) Hvis f(r) = f (r) = og x n = r + e n har vi, etter Taylor utvikling omkring r, f(x n ) = f(r + e n ) = e2 n 2 f (r) + e3 n 3! f (3) (ξ), f (x n ) = f (r + e n ) = e n f (r) + e2 n 2 f (3) (λ), hvor ξ, λ [r, r + e n ]. Innsetting i (5) gir e n+1 = e [ n en f (r) + (e 2 n/2)f (3) (λ) ] ω [ (e 2 n/2)f (r) + (e 3 n/3!)f (3) (ξ) ] e n f (r) + (e 2 n /2)f (3). (λ) For at eliminere ledd av andre orden, e 2 n, i telleren velger vi ω = 2 slik at [ ] f (3) (λ)/2 f (3) (ξ)/3 e n+1 = f (r) + (e n /2)f (3) e 2 (λ) n. Siden funksjonen f (x) er kontinuerlig i en omegn av x = r så er f (3) (λ)/2 f (3) (ξ)/3 f (r) + (e n /2)f (3) (λ) max f (3) (p)/2 f (3) (q)/3 p, q Ω f (r) + (e n /2)f (3) (p) = C(δ), bergrenset av en konstant C(δ), avhengig av det observerte intervallet Ω = {x; x r δ} og den modifisert versionen av Newtons metode konvergerar kvadratisk: Eksempel: Funksjonen e n+1 C(δ)e 2 n. f(x) = x 4 4x 3 + 5x 2 4x + 4, f (x) = 4x 3 12x 2 + 1x 4, (6) har en rot i x = 2 slik at f(2) = f (2) =, f (2). Fire iterasjoner av den modifiserte Newton-metoden, hvor ω = 2, gir (x = 3): x n+1 = x n ω f(x n) f (x n ) Iterasjoner=1, x=2.237692, f(x)=1.e+1 Iterasjoner=2, x=2.18316, f(x)=3.18e-1 Iterasjoner=3, x=2.1322, f(x)=1.7e-3 Iterasjoner=4, x=2., f(x)=8.75e-8 b) Olvers metode: x n+1 = x n f(x n) f (x n ) 1 f [ ] (x n ) f(xn ) 2 2 f (x n ) f. (x n ) Eksempel på Matlab-kode for polynomet i a) (6): 4
% Dette s k r i p t e t implementerer Olver metode. % f ( x )=xˆ4 4xˆ3+5xˆ2 4x+4 har en d o b b e l r o t i x=2 x = 3 ; %s t a r t v e r d i nmax = 1; for n=1:nmax f = x.ˆ4 4 x.ˆ3+5 x.ˆ2 4 x+4; df = 4 x.ˆ3 12 x.ˆ2+1 x 4; ddf=12 x.ˆ2 24 x+1; x = x 2 f / df (1/2) ( ddf/ df ) ( f / df ) ˆ 2 ; er=abs ( x 2) ; fprintf ( n=%3d x=%15.12 f f ( x ) =%9.2e F e i l =%9.2 e \n,n, x, f, er ) pause end Oppgave 4 a) Vi søker en rot til ligningssystemet { f(x, y) = x 2 + y 2 25 = g(x, y) = x 2 y 2 =, med Jacobi-matrisen Eksempel i Matlab: J(x) = ( 2x 2y 2x 1 x=[1;1]; for k=1:1 f=[x(1)^2+x(2)^2-25; x(1)^2-x(2)-2]; J=[2*x(1) 2*x(2);2*x(2) -1]; h=j\f; x=x-h; end NB! Hvis (x, y) = (a, b) er en rot så er æven (x, y) = ( a, b) en rot. b) Eksempel på Matlab-kode: % Newtons metode andvent paa systemet % f ( x, y ) = x ˆ3 2 xy + y ˆ7 4 xˆ3 y 5 = % g ( x, y ) = y s i n ( x ) + 3 xˆ2 y + tan ( x ) = % x = [ 1 ; 1 ] ; for n=1:1 f =[x ( 1 ) ˆ3 2 x ( 1 ) x ( 2 )+x ( 2 ) ˆ7 4 x ( 2 ) x ( 1 ) ˆ3 5 ; x ( 2 ) sin ( x ( 1 ) )+3 x ( 1 ) ˆ2 x ( 2 )+tan ( x ( 1 ) ) 4]; J=[3 x ( 1 ) ˆ2 2 x ( 2 ) 12 x ( 2 ) x ( 1 ) ˆ2 2 x ( 1 ) +7 x ( 2 ) ˆ6 4 x ( 1 ) ˆ 3 ; x ( 2 ) cos ( x ( 1 ) )+6 x ( 1 ) x ( 2 ) +1/( cos ( x ( 1 ) ) ) ˆ2 sin ( x ( 1 ) )+3 x ( 1 ) ˆ 2 ] ; 5 ).
end h=j\ f ; x=x h ; fprintf ( n=%3d x=%15.16 f y=%15.16 f \n,n, x ( 1 ), x ( 2 ) ) c) Systemet har Jacobimatrisen x + y + z 3 = x 2 + y 2 + z 2 5 = e x + xy xz 1 = 1 1 1 2x 2y 2z e x + y z x x som er singulær i (x, y, z) = (,, ). Vi må derfor velge en annen startverdi. Oppgave 5 En ball flyter i vannet. I følge Arkimedes prinsipp så må det fortrengte vannet veie like mye som ballen, dvs.6ρv b = ρv v V v =.6V b, (7) hvor ρ er vannets tetthet og.6ρ er ballens tetthet. V b og V v er ballens, respektive det fortrengte vannets volum. Hvis r er ballens radius kan øvre sirkelbuen, bildet til høyre, skrives y = r 2 (x r) 2 = 2xr x 2. Det fortrengte vannets volum fås av rotasjonsintegralen V v = d πy 2 dx = V v = d π2xr x 2 dx = π [d 2 r d3 ] 3 (Eventuelt. Slå opp i en formelsamling). Ballens volum er V b = 4πr 3 /3 og av (7) må vi løse en tredjegradsligning i d: d 3 3rd 2 +.6 4r 3 =. Siden ikke r er oppgitt, kan vi velge d = d/r som ukjent, altså dybden i forhold til radien av ballen. Dette gir en ligning, som vi kan løse numerisk med fzero: d 3 3 d 2 +.6 4 =, >> d=fzero(inline( x^3-3*x^2+.6*4 ), 1) d = 1.1341 6