MA250 Numerical methods Solutions to problem set Problem a) The function f (x) = x 3 3x + satisfies the following relations f (0) = > 0, f () = < 0 and there must consequently be at least one zero for f (x) in the interval (0, ). Moreover, as f (x) = 3x 2 3 = 3( x 2 ) < 0 for x (0, ), the function is strictly decreasing in (0, ) and there can thus be at most one zero in (0, ). The zero of f (x) in [0, ] is consequently unique. The function f 2 (x) = cos(x) cos(3x) satsifies the following relations f 2 () = cos() cos(3) > 0, f 2 (2) = cos(2) cos(6) < 0 and there must consequently be at least one zero for f 2 (x) in the interval (, 2). Moreover, as f 2(x) = 3 sin(3x) sin(x) < 0 for x (, 2) the function can have at most one zero in (, 2). The zero of f 2 (x) in [, 2] is thus unique. Alternatively one can use the trigonometric identity at page 92 in the textbok and rewrite f 2 in the form f 2 (x) = 4 sin(x) 2 cos(x). The zero of this function in the interval (, 2) is at x = π/2.
With a little bit of inspection we see that f 3 (x) = x 3 6x 2 + 2x 8 = (x 2) 3 which means that the zero of f 3 (x) in [.5, 3] is unique (x = 2) and of multiplicity 3. b) We will apply the bisection method (intervallhalvvering) to locate the zero of f 2 (x) in [, 2]. Starting with we find i) ii) iii) iv) a 0 =, f 2 (a 0 ).53029 > 0 b 0 = 2, f 2 (b 0 ).37632 < 0 c 0 = 2 (a 0 + b 0 ) =.5, f 2 (c 0 ) 0.2853 > 0. The zero of f 2 (x) is thus in the interval (c 0, b 0 ), so we set a = c 0 =.5, b = b 0 = 2 and start over. c = 2 (a + b ) =.75, f 2 (c ) 0.69033 < 0. The zero of f 2 (x) is thus in the interval (a, c ), so we set a 2 = a =.5, b 2 = c =.75 and start over. c 2 = 2 (a 2 + b 2 ) =.625, f 2 (c 2 ) 0.2607 < 0. The zero of f 2 (x) is thus in the interval (a 2, c 2 ), so we set a 3 = a 2 =.5, b 3 = c 2 =.625 and start over. c 3 = 2 (a 3 + b 3 ) =.5625, f 2 (c 3 ) 0.0338 > 0. The zero of f 2 (x) is thus in the interval (c 3, b 3 ). We may continue the process, but accurately locating the zero by means of the bisection method is too tedious for hand calculation. Four iterations of the bisection method thus locates the zero of f 2 (x) on [, 2] to the more narrow interval (.5625,.625). Newton s method, however, is in this case defined by the scheme x n+ = x n f 2(x n ) f 2 (x n) = x n cos(x n) cos(3x n ) 3 sin(3x n ) sin(x n ) () 2
Table : Newton iterates () from x 0 =.5 n x n 0.5.5763534039879 2.5707963254678 3.57079632679490 4.57079632679490 for all n 0. Choosing x 0 =.5 and performing four iterations of () we find the iterates in Table. In fact, as may be seen by inspection, the exact solution to f 2 (x) = 0 is x = π 2.570796326794896. We thus see that merely four iterations of () is sufficient to compute the exact solution to f 2 (x) = 0 to at least 6 significant digits. This is an example of the rapid convergence often exhibited by Newton s method when started sufficiently close to the exact solution. c) Not shown here. d) A suggested improvement is available as a function newton_improved (in newton_improved.m) from the course homepage. e) The zero of f (x) on [0, ] may be found using fzero by implementing a function f (in f.m) as function y = f(x) % f -- Implement function f from problem set, MA250. y = x.^3-3*x + ; and then calling fzero as >> x = fzero( f, [0, ]) x = 0.34729635533386 The same procedure may be applied to functions f 2 (x) and f 3 (x). 3
Oppgave a) Vi vet at r = Ae e = A r. La være en vektornorm på R n med en tilhørende avledet (subordinat) matrisenorm på R n n. Siden blir Ax A = sup Ax A x, x 0 x e x = A r A r x x = r A A A x som var det vi skulle vise. A A r Ax = A A r r = κ(a) b b b) «Problem» 7..5. Vi finner at [ ] [ ] 0.00 343 0.00 r =, ẽ =, 0.00 572 0.00 [ ] [ ] 0.000 00 0.659 ˆr =, ê =. 0.000 000 0.93 Vi observerer altså at løsningen med størst residual ( r = 0.00 572) har klart minst feil ( ẽ = 0.00). Dette skyldes at matrisen A er dårlig kondisjonert. Spesielt finner vi at κ (A) = A A 2.66 0 6. Videre er x =, ê = 0.93, ˆr =.000 0 6 og b = 0.254. Dermed er feilestimatet oppfylt for både ẽ og ê. Eksemplet viser altså at man må være forsiktig med å bruke residualet som eneste indikator på feilen hvis koeffisientmatrisen er dårlig kondisjonert. c) Vi velger eksaktløsning x = [,,..., ] T. For n = 0 kan vi da løse problemet ved matlab-setningene n = 0; x = ones([n, ]); A = hilb(n); b = A * x; xt = A \ b; e = norm(x - xt, inf) k = cond(a, inf) 4
n x x κ (A) 5.9926 0 2 9.4366 0 5 0 3.7952 0 4 3.5354 0 3 5 7.75 8.0290 0 7 Table 2: Feil og kondisjonstall for system basert på Hilbertmatrisen. n x x κ (A) 5 2.6645 0 5 2.4435 0 0 2.4425 0 5 4.8644 0 5 4.463 0 4 6.72 0 2 00 4.443 0 3 2.4773 0 3 000 4.5336 0 4.8960 0 5 Table 3: Feil og kondisjonstall for system basert på en tilfeldig matrise. Resultatene er oppsummert i Tabell 2. De samme eksperimentene med utgangspunkt i en tilfeldig matrise av tilfeldige tall, definert i matlab som A = rand(n), gir derimot resultatene i Tabell 3. Dine egne resultater vil sannsynligvis variere noe fra disse. Dette viser imidlertid at kondisjonstallet for Hilbertmatrisen er ganske ekstremt. På den annen side vil vi normalt måtte forvente at kondisjonstallet vokser med økende dimensjon på matrisen. Oppgave 2 Kincaid & Cheney, «Problem» 7.2.9 Vi skal løse ligningssystemet 2x + 3x 2 = 8 x + 2x 2 x 3 = 0 3x + 2x 3 = 9 ved help av Gausseliminasjon med skalert delvis pivotering. Denne metoden er beskrevet i boka på side 280 og utover. 5
Vi skriver ligningssystemet på formen Ax = b og får 2 3 0 2 x x 2 = 8 0. (2) 3 0 2 x 3 9 Først beregner vi skaleringsfaktoren til hver rad i A. Skaleringsfaktoren er den største absoluttverdien i hver rad, det vil si s i = max j n a ij for hver rad i n. Skaleringsfaktorene beregnes kun én gang. Vi får s = 3, s 2 = 2, s 3 = 3. I skritt k velger vi som pivotligning den rad i A der forholdet a ik / s i, i I er størst. I er her mengden av «gjenværende» pivotrader. I skritt finner vi a s = 2/3, a 2 s 2 = /2, a 3 s 3 =, så vi velger ligning 3 som pivotrad. Ett skritt i Gaussprosessen gir da 2 3 0 x 8 0 3 4/3 x 2 2 x 2 = 0 0 2 /3 x 2 = 3. 3 0 2 x 3 9 3 0 2 x 3 9 I skritt 2 beregner vi for de gjenværende radene i I = {, 2} a 2 s = 3/3 =, a 22 s 2 = så vi velger rad som pivotrad fordi den har lavest indeks. Ett skritt i Gaussprosessen gir da 0 3 4/3 x 2 0 3 4/3 x 2 0 2 /3 x 2 = 3 0 0 5/9 x 2 = 5/3. 3 0 2 x 3 9 3 0 2 x 3 9 Den siste pivotraden som vi ikke gjør noe med blir rad 2. Vi gjør tilbakesubstituering i samme motsatt rekkefølge av den rekkefølgen vi fikk for pivotradene, altså 2,, 3. Det gir x 3 = 5/9 5/3 = 3, x 2 = 3 (4/3 3 + 2) = 2, x = 3 (9 2 3) =. 6
Kincaid & Cheney, «Problem» 8..4 Vi er gitt matrisen 2 2 A =. 3 2 a) Vi skal vise at A ikke kan LU-faktoriseres, det vil si A kan ikke skrives som et produkt av en nedre enhetstriangulær matrise L og en øvre triangulær matrise U. En matrise kan LU-faktoriseres hvis og bare hvis naiv Gausseliminasjon ikke stopper opp på grunn av null som pivotelement (se forøvrig side 38 i C & K). Vi utfører et skritt med naiv Gausseliminasjon: 2 2 0 0 /2 0 /2 Vi ser at a 22 = 0. Matrisen A har dermed ingen LU-faktorisering. b) Vi skal vise at vi ved å bytte om radene i matrisen A kan produsere en matrise som har en LU-faktorisering. Vi ser at problemet med A er at a = a 2 og a 2 = a 22. Det betyr at eliminasjon av a 2 ved hjelp av a også vil eliminere a 22 ved «hjelp» av a 2. Ved å bytte om radene som rad 2, rad 3 og rad 3 2 får vi da B = 3 2. 2 2 Dermed gir ett skritt med Gausseliminasjon 3 2 0 2. 2 2 0 0 Matrisen B, oppnådd ved å permutere radene til A, har altså en LUfaktorisering. 7