TANA21/22 HT2018 Fö4: Kondition och approximation Andrea Alessandro Ruggiu
Kondition och approximation A.A.Ruggiu 13:e September 2018 1 Konditionstal
Kondition och approximation A.A.Ruggiu 13:e September 2018 2 Kondionstal Konditionstal är ett mått på hur väl ett visst problem lämpar sig för numeriska beräkningar. Skiss på tavlan: Ax = b, A är 2 2, störning i b.
Kondition och approximation A.A.Ruggiu 13:e September 2018 3 För att analysera ett ekvationssystems kondition behövs vektor- och matris-normer. Vanliga vektornormer: n x 2 = i=1 x i 2, två-norm (längden) x 1 = n i=1 x i, ett-norm x = max i=1,...,n x i, max-norm Exempel: låt x = (1, 2, 1, 3) T, x 2 = (1) 2 + (2) 2 + ( 1) 2 + (3) 2 3.87, x 1 = 1 + 2 + 1 + 3 = 7, x = 3.
Kondition och approximation A.A.Ruggiu 13:e September 2018 4 Matrisnorm Låt A R m n. Matrisnorm definieras från vektornorm Ax p A p = sup, p {1, 2,..., } x 0 x p Matrisnormen sägs vara inducerad ur vektornormen. Den uppfyller A B A B och Ax A x.
Kondition och approximation A.A.Ruggiu 13:e September 2018 5 Matrisnorm Låt A R m n. Matrisnorm definieras från vektornorm Ax p A p = sup x 0 x p = sup Ax p x =1 OBS: Två ekvivalenta uttryck, eftersom y = x/ x p leder till ( ) p A x p y Ax p sup x 0 x p = sup x 0 = sup x 0 x p x p Ay p = sup Ay x p p y p =1
Kondition och approximation A.A.Ruggiu 13:e September 2018 6 Matrisnorm Låt A R m n. Matrisnorm definieras från vektornorm Ax p A p = sup x 0 x p = sup Ax p x =1 A 1 = max j=1,...,n m i=1 a ij, max(kol.-beloppssumma) A = max i=1,...,m n j=1 a ij, max(rad-beloppssumma) Exempel: A = 1 2 4 1 1 2 5 2 3 7 5 9 A 1 = 9
Kondition och approximation A.A.Ruggiu 13:e September 2018 6 Matrisnorm Låt A R m n. Matrisnorm definieras från vektornorm Ax p A p = sup x 0 x p = sup Ax p x =1 A 1 = max j=1,...,n m i=1 a ij, max(kol.-beloppssumma) A = max i=1,...,m n j=1 a ij, max(rad-beloppssumma) Exempel: 1 2 4 A = 1 1 2 5 2 3 7 4 10 A = 10
Kondition och approximation A.A.Ruggiu 13:e September 2018 7 Konditionstalet i p-normen för en matris A definieras som κ p (A) = A p A 1 p κ p (A) 1 eftersom 1 = I p = A A 1 p A p A 1 p = κ p (A). Om κ p (A) är stort är A illa-konditionerad. Vad betyder det?
Kondition och approximation A.A.Ruggiu 13:e September 2018 8 Sats (Störningsanalys för Ax = b) Antag att vi vill lösa Ax = b, där A är exakt, och b = b b. Då gäller x p x p κ p (A) b p b p Om κ p (A) är stort är A illa-konditionerad. Det betyder att relativt fel för x blir ganska stort, även om relativt fel för b är litet!
Kondition och approximation A.A.Ruggiu 13:e September 2018 9 Bevis. Vi löser Ax = b där x = x x. Vi vet att Ax = b. A (x + x) = }{{}} b + {{ b } x b A x = b x = A 1 b b p = Ax p A p x p x p = A 1 b p A 1 p b p Multiplicera (alla är positiva) b p x p A p x p A 1 p b p. Dividera nu med x p b p, så är beviset klart.
Kondition och approximation A.A.Ruggiu 13:e September 2018 10 Exempel: [ ] 1 1 A = 1 1.01 b = [ ] 2.00 2.01 ( b) i 0.5 10 2 Uppskatta relativt fel för x i max-norm x / x. Vi behöver [ ] A 1 101 100 = 100 100 och κ (A) = A }{{ A 1 } = 404.01. }{{} =1+1.01 =101+100 x x κ (A) b b 0.5 10 2 404.01 2.01 1.005
Kondition och approximation A.A.Ruggiu 13:e September 2018 11 Exempel: [ ] 1 1 A = 1 1.01 b = [ ] 2.00 2.01 ( b) i 0.5 10 2 x x 1.005. Vi vet b leder till x = (1, 1) T och x 1.005 x 1.005 x }{{ = 1.005. } =1 [ ] 1 ± 1.005 x = 1 ± 1.005 Felet kan vara större än närmevärdet!
Kondition och approximation A.A.Ruggiu 13:e September 2018 12 Exempel: A = [ ] 1 1 1 1.01 b = [ ] 2.00 2.01 ( b) i 0.5 10 2 x 1.005 x [ ] 1 x = 1 OBS: b = [ ] 2.005 2.005 leder till x = [ ] 2.005 0
Kondition och approximation A.A.Ruggiu 13:e September 2018 13 Approximation
Kondition och approximation A.A.Ruggiu 13:e September 2018 14 1.4 1.35 x 10 5 Linköpings befolkning, årliga avläsningar 1982 1991 avlästa data Hur kan vi få en framtidsprognos mha givna data 1.3 1.25 1.2 1.15 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 Figur: Givna data.
Kondition och approximation A.A.Ruggiu 13:e September 2018 15 1.4 x 10 5 rät linje givna data fler data Linköpings befolkning 1.35 1.3 1.25 1.2 1.15 1985 1990 1995 2000 Figur: Framtidprognos med rät linje.
Kondition och approximation A.A.Ruggiu 13:e September 2018 16 1.4 x 10 5 andragradspolynom givna data fler data Linköpings befolkning 1.35 1.3 1.25 1.2 1.15 1985 1990 1995 2000 Figur: Framtidprognos med andragradspolynom.
Kondition och approximation A.A.Ruggiu 13:e September 2018 17 1.4 x 10 5 femtegradspolynom givna data fler data Linköpings befolkning 1.35 1.3 1.25 1.2 1.15 1985 1990 1995 2000 Figur: Framtidprognos med femtegradspolynom.
Kondition och approximation A.A.Ruggiu 13:e September 2018 18 Approximation Idé: Anpassa f (x) = c 0 + c 1 x +... + c n x n 1 till data (x, y) R m 2, där typiskt n << m. min f (x) y 1 : avvikande datapunkter påverkar lite. min f (x) y : min f (x) y 2 : avvikande datapunkter påverkar mycket. anpassar sig bra till alla datapunkterna. Minsta kvadratmetoden utjämnar mätfel!
Kondition och approximation A.A.Ruggiu 13:e September 2018 19 Minsta kvadratmetoden Anpassa ett andragradspolynom till x 101 102 104 105 y 2 2 3.3 6 Ansätt p(x) = c 0 + c 1 (x 103) + c 2 (x 103) 2, där 103 är medelvärdet av x. Stoppa in data: p(101) : c 0 2c 1 + 4c 2 = 2 p(102) : c 0 1c 1 + 1c 2 = 2 p(104) : c 0 + c 1 + c 2 = 3.3 p(105) : c 0 + 2c 1 + 4c 2 = 6 Ac = y
Kondition och approximation A.A.Ruggiu 13:e September 2018 20 Ac = y saknar lösning (överbestämt) så vi minimera y Ac 2. Lösningen ges av normalekvationerna: A T Ac = A T y Bevis: y Ac 2 2 = (y Ac)T (y Ac) = y 2 2 2yT Ac + c T A T Ac. c y Ac 2 2 = 2yT A1 + 1 T A T Ac + c T A T A1 = 2 ( 1, A T y ) 2 + 2 ( 1, A T Ac ) 2 c y Ac 2 = 0 A T Ac = A T y
Kondition och approximation A.A.Ruggiu 13:e September 2018 21 Ac = y saknar lösning (överbestämt) så vi minimera y Ac 2. Lösningen ges av normalekvationerna: A T Ac = A T y 1 2 4 1 1 1 1 A T A = 2 1 1 2 1 1 1 4 0 10 1 1 1 = 0 10 0 4 1 1 4 10 0 34 1 2 4 ( där κ A T A ) 54 och 1 1 1 1 A T y = 2 1 1 2 4 1 1 4 2 2 3.3 6 13.3 = 9.3 37.3
Kondition och approximation A.A.Ruggiu 13:e September 2018 22 Lös [ A T A A T y ] = 4 0 10 13.3 0 10 0 9.3 10 0 34 37.3 OBS: pivotering behövs ej ty A T A är symmetrisk och positivt definit! Gauss-elimination ger 4 0 10 13.3 0 10 0 9.3 2.5 0 9 4.05 c 0 = 2.2 c 1 = 0.93 c 2 = 0.45
Kondition och approximation A.A.Ruggiu 13:e September 2018 23 Krav på ansatsens form Allmänt f (x) = c 0 ϕ 0 (x) + c 1 ϕ 1 (x) +... + c n ϕ n (x), där c i är sökta konstanter; ϕ i (x) är givna linjärt oberoende funktioner. Till exempel: 1, x, x 2,... sin(x), cos(x), sin(2x),...
Kondition och approximation A.A.Ruggiu 13:e September 2018 24 Fördel med ansatsen Alternativt: ansätt p(x) = k 0 + k 1 x + k 2 x 2. Stoppa in data: p(101) : k 0 + 101k 1 + 101 2 k 2 = 2 p(102) : k 0 + 102k 1 + 102 2 k 2 = 2 p(104) : k 0 + 104k 1 + 104 2 k 2 = 3.3 p(105) : k 0 + 105k 1 + 105 2 k 2 = 6 Bk = y 4 412 42446 B T ( B = 412 42446 4373998, κ B T B ) 5.8 10 15 42446 4373998 450840098
Kondition och approximation A.A.Ruggiu 13:e September 2018 25 Stort konditionstal medför risk för sämre noggrannhet i lösningen k = (k 0, k 1, k 2 ) T. Matrisen A T A har κ ( A T A ) 54 och är mycket bättre konditionerad.
Kondition och approximation A.A.Ruggiu 13:e September 2018 26 OBS: pivotering behövs ej i minsta kvadratmetoden, för att A T A (och B T B...) är symmetrisk och positivt definit. ( A T A ) T = A T ( A T ) T = A T A; x T A T Ax = (Ax) T (Ax) = y T y = y 2 1 +... + y 2 n > 0 om A har linjärt oberoende kolumner och x 0.
Kondition och approximation A.A.Ruggiu 13:e September 2018 27 Minsta kvadratmetoden i MATLAB Vi har vektorer x, y och vi vill anpassa polynom av grad n. Figur: Alternativ 1. OBS: polyfit använder (x x) /σ för att beräkna minsta kvadratmetodens lösningen. Koefficienterna räknas ändå för 1, x, x 2,... basen.
Kondition och approximation A.A.Ruggiu 13:e September 2018 28 Minsta kvadratmetoden i MATLAB Vi har vektorer x, y och vi vill anpassa polynom av grad n. Figur: Alternativ 2. OBS: c = A\y går också bra, A överbestämd konstateras.
Kondition och approximation A.A.Ruggiu 13:e September 2018 29 Övning Jämför i MATLAB alternativ 1 och 2. Ger dem samma polynom?
Andrea Alessandro Ruggiu www.liu.se