Ikke lineære likninger Opp til nå har vi studert lineære likninger og lineære likningsystemer. 1/19 Ax = b Ax b = 0. I en dimensjon, lineære likninger kan alltid løses ved hjelp av formler: ax + b = 0 x = b/a, a 0. Eksempler: 3x + 2 = 5, lineær, vi kan bruke en formel, x = (5 2)/3 = 1. ax 2 + bx + c = 0, ikke lineær, men vi kan bruke formel, x = b ± b 2 4ac 2a e x = 2, ikke lineær, bruk formel: x = ln 2 e x = x, ikke lineær, formel????
Det finnes en rekke ikke lineære likninger som ikke kan løses med formler. x 2 = 4 sin(x) ln(x) = x 2... 2/19 Som vanlig, omskiver man problemet som f(x) = 0 og prøver man å finne en x slik at f(x ) = 0 x kalles roten av f = 0, null av f Problem formulasjon: Gitt en funksjon f : R R, finn x (én eller flere) slik at f(x ) = 0
Rotene til f(x) = 0 er de intersesjoner av funksjonen y = f(x) med den x-aksen (abscissae aksen). y=f(x) 3/19 I slike tilfeller, har man en ide av hvor omtrent roten x er, kjører man en numerisk metode som approksimerer den. MATLAB eksempel
Om eksistens av røtter af f(x) = 0 Det viser seg at eksistens av røttene til f(x) = 0 for ikke lineære funksjoner f er mer komplisert enn for lineære likningssysytemer: Lineære likningssystemer Ikke lineære likninger 4/19 Ax = b det(a) 0: en løsning det(a) = 0: ingen eller uendelige løsninger f(x) = 0 e x + 1 = 0, ingen rot e x x = 0, kun en rot x 2 4 sin(x), to røtter n-grad polynom, n røtter sin(x) = 0 uendelige røtter.
f(x) = 0 Selv om man har ikke globale kriteria (som for lineære likningssystemer) det finnes også en del lokale kriteria som garantere eksistens av (minst) en løsning. En viktig resultat er: 5/19 Teorem (middelverdi): Hvis f er en kontinuelle funksjon i [a, b], og min f(x) y max f(x), da finnes det minst en x [a,b] x [a,b] x [a, b] slik at: f(x ) = y. y* a x* x* 1 2 b y=f(x)
Lokaliserig av røttene fil f skjer når man velger y = 0. Korollar: Hvis f er en kontinuell funksjon i [a, b] slik at f(a)f(b) < 0 (skifter fortegn), da har f minst en rot x i [a, b]. 6/19 a b Intervallen [a, b] kalles vindu, brakett.
Om degenererte røtter Hvis f er deriverbare, røtter x slik at kalles degenererte røtter kalles simple røtter. f (x ) = 0 f (x ) 0 7/19 Generelt, om kalles x rot av multiplisitet m. f(x ) = f (x ) = = f (m 1) (x ) = 0, f (m) (x ) 0,
simpel rot multippel rot 8/19
Multiple røtter er vanskeligere å approksimeres enn simple røtter. For eksempel: forrige korollar kan feile i å finne en passelig brakett 9/19 x 2 2x + 1 = 0 ingen brakett x 3 3x 2 + 3x 1 = 0 mulig å finne et brakett som oftest, metoder er kan ikke takle for multiple røtter. Hvis de klarer det, er de veldig trege.
Sensitivitet og kondisjonering Husk om kondisjonering: Kond = rel. output feil rel. input feil = x x x f(x ) f(x) f(x ) 10/19 For problemet f(x) = 0 denne er ikke vel definert, på grunn av f(x ) = 0 i denominatoren. Da bruker man en annen definisjon (med absolutt feil istedet av relativ feil): Kond = abs. output feil abs. input feil = x x f(x ) f(x) Merk at for x nær x, so gir f(x) = f(x ) + f (x )(x x ) +, Kond x x (x x )f (x ) = 1 f (x ).
Kondisjonering er avhenging av f (x ). Kond = 1 f (x ). har vi f (x ) veldig liten, er kondisjonering dårlig. 11/19 Da kan små feiler i input til returnere store feiler i output. merk at er f (x ) = 0 (x er en multippel rot), da er kondisjon til problemet Kond =. Noen algoritmer klarer ikke å takle multiple røtter.
Konvergens En av de største forskjell mellom lineære og ikke lineære likninger er at de første kan alltid løses i en endelig antall steg, mens de andre kan ikke. 12/19 Ax = b Direkte metoder, iterative metoder vs. f(x) = 0 Iterative metoder Iterative metoder starter med en initielle approksimasjon x 0 til x og genererer en følge {x k } slik at lim x k = x. k Man stopper iterasjoner når x k er nært nok x.
Avstanden e k = x k x kalles feil ved iterasjon k. Noen metoder genererer ikke en singel verdi x k men en interval, som blir mindre og mindre det mer vi iterere. I så fall, setter man e k = lengden av intervallen i iterasjon k. 13/19 Gitt en iterativ metode for f(x) = 0, sier vi at metode konvergerer med rate r hvis det finnes en konstant C > 0 e k+1 lim = C. k e k r r = 1: konvergens er lineært Merk at C < 1 ellers metoden konvergerer ikke! r > 1: konvergens er superlineært C > 0 kan være hva som helst I tilleg: r = 2: kvadratisk r = 3: kubisk o.s.v.
En annen interpretasjon av Lineær konvergens: e k+1 C e k, derfor hvis x k har t korrekte sifre, e k = x k x 10 t, e k+1 = x k+1 x C 10 t 14/19 og det vil si at antall korrekte sifre øker fra 10 t til 10 t+log 10 C. (Merk 0 < C < 1 log 10 C < 0). Kvadratisk konvergens: e k+1 C e k 2, Hvis e k 10 t, da e k+1 C 10 2t = 10 2t+log 10 C og antall signifikante sifre er dobblet. For en generisk r: e k+1 C 10 rt = 10 rt+log 10 C som gir omtrent r nye signifikante siffre per iterasjon.
Når stopper man iterasjoner? Konvergens resultater sier om en iterative metode konvergerer eller ikke og i hvilket konvergens rate, men de sier ingenting om når skal man stoppe å iterere. 15/19 Vi sier at man stopper når e k = x k x < T OL, hvor T OL er en bestemt toleranse over feilen MEN x ER UKJENT! En mulig alternative er å stoppe når den relative feil over x k er liten nok: x k+1 x k x k < T OL. (1) Man burde samtidig kontrollere at f(x k ) 0 (2) fordi, er problemet dårlig kondisjonert, kun (1) eller (2) være urimelig store i forhold til feil toleransen T OL. Vanligvis, er det veldig vanskelig å ha stoppe-mekanismer som holder for alle metoder. Derfor må man vurdere stoppe-mekanisme fra problem til problem.
Biseksjonsmetoden Den første og enkleste iterativ metode for ikke lineære likninger er den så kalt biseksjonsmetode. 16/19 Gitt en intervall [a, b] hvor f skifter fortegn, vi halverer [a, b] = [a, b + a 2 ] [b + a, b] og tar som 2 ny vindu den halvparten hvor f skifter fortegn: m=b a 2 a b
a m=b a 2 b 17/19 Algoritme: Biseksjonsmetode while ((b a) > T OL) m = a + b a % finner midtpunkt 2 if sign(f(a)) = sign(f(m)) a = m else b = m end end MATLAB programme
I dag: ikke lineære likninger (bare 1D), kap.5, opp til seksjon 5.5.1. Neste gang: fortsetter med biseksjonsmetode, fiks punkt iterasjoner og andre metoder for f(x) = 0. 18/19