OH till Föreläsning 5, Numme K2, 181119 S Ch 3-34, GNM Kap 4-44A / GKN Kap 41A,(D),E Interpolation x y 1900 3822 1910 3982 1920 4281 1930 4302 1940 4042 1950 3922 1960 3921 1970 3940 1980 3960 1990 3980 Läsa mellan raderna 1900 1920 1940 1960 1980 2000 Allmän polynom-interpolation, S Ch 310 Välj ett lämpligt gradtal till polynomet och välj ut nödvändigt antal tabellvärden(eller tag alla tabellvärdena och låt gradtalet bestämmas av det) Bestäm sedan polynomets koefficienter genom att låta polynomet gå igenom de utvalda tabellvärdena, p(x i ) = y i Linjär interpolation, S Ch 311, GNM sid (5)2 - GKN sid 134ff Sökt värde är y(1925) Linjär interpolation (approximation med en rät linje) kräver två givna punkter 1925 ligger mellan 1920 och 1930: y = kx+m y 1 = kx 1 +m y 2 = kx 2 +m 4281 = k1920+m 4302 = k1930+m k = 21 m = 249 y(1925) = k1925+m = = 21 1925+249 = = 40425+249 = 42915 Kvadratisk interpolation, S Ch 311, GNM sid (5)3 Sökt värde är y(1925) Kvadratisk interpolation (approximation med ett andragradspolynom) kräver tre givna punkter eftersom ett andragradspolynom har tre koefficienter 1925 ligger mellan 1920 och 1930, jag väljer x 1 = 1920, x 2 = 1930 och x 3 = 1940: y = c 1 +c 2 x+c 3 x 2 y 1 = c 1 +c 2 x 1 +c 3 x 2 1 y 2 = c 1 +c 2 x 2 +c 3 x 2 2 y 3 = c 1 +c 2 x 3 +c 3 x 2 3 4281 = c 1 +c 2 1920+c 3 1920 2 4302 = c 1 +c 2 1930+c 3 1930 2 4042 = c 1 +c 2 1940+c 3 1940 2 c 1 = 5206119 c 2 = 541135 y(1925) = c 1 +c 2 1925+c 3 1925 2 = 5206119+541135 1925+( 1405) 1925 2 = = 5206119 + 1041684875 5206403125 = 4326625 1 1920 19202 1 1920 3686400 A = 1 1930 1930 2 = 1 1930 3724900 = κ(a) = 29 10 11 1 1940 1940 2 1 1940 3763600 1940 ligger lika långt från 1925 som 1910 Hade jag valt x 1 = 1920, x 2 = 1930 och x 3 = 1910 hade jag fått c 1 = 5150535, c 2 = 53536 och c 3 = 139 vilket ger y(1925) = c 1 +c 2 1925+c 3 1925 2 = = 5150535+53536 1925+( 139) 1925 2 = 5150535+10305680 515081875= 432625 Nya koefficienter och ett lite annat svar! 1
Kvadratisk interpolation med centrering Med x 1 = 1920, x 2 = 1930 och x 3 = 1940 kan jag centrera kring medelvärdet m = 1930 y = c 1 +c 2 (x m)+c 3 (x m) 2 4281 = c 1 +c 2 (1920 1930)+c 3 (1920 1930) 2 4302 = c 1 +c 2 (1930 1930)+c 3 (1930 1930) 2 4042 = c 1 +c 2 (1940 1930)+c 3 (1940 1930) 2 c 1 = 4302 c 2 = 1195 y(1925) = c 1 +c 2 (1925 1930)+c 3 (1925 1930) 2 = = 4302+( 1195) (1925 1930)+( 1405) (1925 1930) 2 = 4302+5975 35125 = 4326625 1 1920 1930 (1920 1930) 2 1 10 100 A = 1 1930 1930 (1930 1930) 2 = 1 0 0 = κ(a) = 14 10 2 1 1940 1930 (1940 1930) 2 1 10 100 Hade jag valt x 1 = 1920, x 2 = 1930, x 3 = 1910 och m = 1920 hade jag fått c 1 = 4281, c 2 = 16 och c 3 = 139 vilket ger y(1925) = c 1 +c 2 (1925 1920)+c 3 (1925 1920) 2 = 4281+16 (1925 1920)+ ( 139) (1925 1920) 2 = 4281+80 3475 = 432625 Nya koefficienter (förutom högstagradskoefficienten)men samma svar! (Numreringen av x i spelar här ingen roll Vi hade fått exakt samma koefficienter om vi hade tagit tex x 1 = 1910, x 2 = 1920 och x 3 = 1930) Oavsett vilka punkter jag valt får jag mycket snällare siffror vid centrerad än naiv ansats! Kvadratisk interpolation med Newtons ansats, S Ch 312, GNM(5)4, GKN 135 Ett alternativ till centrering är Newtons fiffiga ansats Koefficienterna bestäms som vanligt med p(x i ) = y i Med x 1 = 1920, x 2 = 1930 och x 3 = 1940 (och y 1 = 4281, y 2 = 4302 och y 3 = 4042) får jag p(x) = c 1 +c 2 (x x 1 )+c 3 (x x 1 ) (x x 2 ) p(x) = c 1 +c 2 (x 1920)+c 3 (x 1920) (x 1930) 4281 = c 1 +c 2 (1920 1920)+c 3 (1920 1920) (1920 1930) = c 1 4302 = c 1 +c 2 (1930 1920)+c 3 (1930 1920) (1930 1930) = c 1 +10c 2 4042 = c 1 +c 2 (1940 1920)+c 3 (1940 1920) (1940 1930) = c 1 +20c 2 +200c 3 c 1 = 4281 c 2 = 21 A = y(1925) = c 1 +c 2 (1925 1920)+c 3 (1925 1920) (1925 1930) = = 4281+21 5+( 1405) 5 ( 5) = 4281+105+35125 = 4326625 1 0 0 Lättlöst ekvationssystem 1 10 0 = κ(a) = 20 10 2 Lågt konditionstal 1 20 200 Återanvändbara koefficienter Hade jag valt x 1 = 1920, x 2 = 1930, x 3 = 1910 och Newtons ansats hade jag fått p(x) = c 1 +c 2 (x x 1 )+c 3 (x x 1 ) (x x 2 ) p(x) = c 1 +c 2 (x 1920)+c 3 (x 1920) (x 1930) 4281 = c 1 +c 2 (1920 1920)+c 3 (1920 1920) (1920 1930) = c 1 4302 = c 1 +c 2 (1930 1920)+c 3 (1930 1920) (1930 1930) = c 1 +10c 2 3982 = c 1 +c 2 (1910 1920)+c 3 (1910 1920) (1910 1930) = c 1 10c 2 +200c 3 c 1 = 4281 c 2 = 21 c 3 = 139 y(1925) = c 1 +c 2 (1925 1920)+c 3 (1925 1920) (1925 1930) = = 4281+21 5+( 139) 5 ( 5) = 4281+105+3475 = 432625 2
Eftersom de två första punkterna i ansatsen var desamma blev ekvationerna likadana och koefficienterna därmed oförändrade Från och med den nya punkten får man nya koefficienter Dock är högstagradskoefficienten förstås densamma som vid naiva och centrerade ansatsen och vi känner igen svaret (Numreringen av x i påverkar koefficienternas värden men inte polynomets!) Hur bra är resultatet?, S Ch 312, GNM sid (5)6-7,16-17 - GKN sid 136 E trunk = Skillnaden mellan beräknat polynomvärde och rätta värdet Skillnaden mellan beräknat värde och det man får om man ökar gradtalet med ett första försummade termen i Newtons ansats (Inte vid naiv och centrerad ansats!) Specialfall : vid linjär IP i ekvidistant tabell blir E trunk max 2 y /8 vid kvadratisk IP i ekvidistant tabell blir E trunk max 3 y /15 E tab E y, dvs felgränsen i de givna tabellvärdena Exempel : vid linjär IP blir E tab = E y, vid kvadratisk IP blir E tab = 5/4E y Vårt exempel: Med linjär IP fick vi y(1925) = 42915 och med kvadratisk IP fick vi y(1925) = 4326625 Trunkeringsfelets gräns vid linjär IP skattas då till E trunk = 42915 4326625 = 35125 och osäkerheten pga fortplantade fel i indata till E tab = 1 E y = 05 Gränsen för beräkningsfelet är svårskattad men klart mindre om vi använt Newtons eller centrerad ansats än den naiva Eftersom trunkeringsfelets gräns är mycket större än tabelleringsfelets lönar det sig att öka gradtalet hos interpolationspolynomet Runges fenomen, S Ch 323, GNM sid (5)9 - GKN sid 139 Polynom av hög grad, speciellt vid ekvidistanta data, kan få kraftiga svängningar i ytterområdena x 1 y 1 k 1 x 2 y 2 k 2 x 3 y 3 k 3 Styckvis interpolation, S Ch 34, GKN sid 140 Olika polynom mellan varje punktpar Ett tredjegradspolynom har fyra koefficienter: p 1 (x) = c 1 +c 2 x+c 3 x 2 +c 4 x 3, x 1 x x 2 p 1 (x 1 ) = y 1 p 1 (x 2 ) = y 2 p 1 (x 1) = k 1 p 1 (x 2) = k 2 p 2 (x) = b 1 +b 2 x+b 3 x 2 +b 4 x 3, x 2 x x 3 p 2 (x 2 ) = y 2 p 2 (x 3 ) = y 3 p 2 (x 2) = k 2 p 2 (x 3) = k 3 Hermites interpolationsformel, GNM sid (5)10 & (5)20 - GKN sid 141 & 171! h i = x i+1 x i c i = (y i+1 y i )/(x i+1 x i ) P(x) = y i +c i (x x i )+ +(x x i )(x x i+1 )((k i+1 c i )(x x i )+(k i c i )(x x i+1 ))/h 2 i 3 4 1 5 2 1 6 3 25 Önskas y(42) blir det x i = 3 y i = 4 k i = 1 x i+1 = 5 y i+1 = 2 k i+1 = 1 = c i = (2 4)/(5 3) = 1 3
Skattningen blir y(x = 42): P(42) = 4+( 1) (42 3)+(42 3)(42 5)((( 1) ( 1))(42 3)+(1 ( 1))(42 5))/(2 2 ) = 3184 Vill man skatta y(x = 32): P(32) = 4+( 1) (32 3)+(32 3)(32 5)((( 1) ( 1))(32 3)+(1 ( 1))(32 5))/(2 2 ) = 4124 Vill man skatta y(52) måste man beräkna nya värden på h och c eftersom x = 52 ligger i nästa intervall Styckvis interpolation - splines, S Ch 341, GNM sid (5)12 - GKN sid 142 x y p 1 (x) = a 1 +a 2 x+a 3 x 2 +a 4 x 3 x 1 y 1 p 2 (x) = b 1 +b 2 x+b 3 x 2 +b 4 x 3 16 sökt x 2 y 2 x 3 y p 3 (x) = c 1 +c 2 x+c 3 x 2 +c 4 x 3 koefficienter! 3 x 4 y 4 p x x 1 2 x 3 x 4 x 4 (x) = d 1 +d 2 x+d 3 x 2 +d 4 x 3 5 x 5 y 5 Givna värden på funktionen i mätpunkterna och kontinuerlig första- och andraderivata ger villkoren p 1 (x 1 ) = y 1 p 1 (x 2 ) = y 2 p 2 (x 2 ) = y 2 p 2 (x 3 ) = y 3 p 3 (x 3 ) = y 3 p 3 (x 4 ) = y 4 p 4 (x 4 ) = y 4 p 4 (x 5 ) = y 5 p 1(x 2 ) = p 2(x 2 ) p 2 (x 3) = p 3 (x 3) p 3(x 4 ) = p 4(x 4 ) 1(x 2 ) = 2(x 2 ) 2 (x 3) = 3 (x 3) 3(x 4 ) = 4(x 4 ) = 14 villkor Fattas 2 st! De två felande villkoren får (måste) vi alltid välja själva I naturliga (kubiska) splines gör man valet = 0 i ytterkanterna, dvs i exemplet ovan skulle de två extra villkoren bli 1 (x 1) = 0 och 4 (x 5) = 0 I praktiken Lös ekvationssystemet nedan för k-värdena och använd sedan dessa k-värden i Hermites interpolationsformel 2h 1 h 1 0 0 0 h 2 2(h 2 +h 1 ) h 1 0 0 0 h 3 2(h 3 +h 2 ) h 2 0 0 h n 1 2(h n 1 +h n 2 ) h n 2 0 0 0 h n 1 2h n 1 y 1 om i = 1 h där b i = i 1 h i y i + hi h i 1 y i 1 om i = n y n 1 om i = 2,3,,n 1 Styckvis interpolation - nästan splines? k 1 b 1 k 2 b k 3 = 3 2 b 3 k n Om man vill slippa lösa ekvationssystemet ovan kan man skatta derivatorna med följande formler där N är antalet givna punkter (Detta betyder dock att andraderivatan inte blir kontinuerlig) ( ) ( ) y2 y 1 y3 y 1 k 1 = 2 x 2 x 1 x 3 x 1 ( ) ( ) ( yi+1 y i 1 yn y N 1 yn y N 2 k i = i = 2,,N 1 k N = 2 x i+1 x i 1 x N x N 1 x N x N 2 b n ) 4 c 2018 Ninni Carlsund Levin
Grad 2 Grad 2 Grad 3 Så här blev det utan centrering! Grad 7 Grad 8 Grad 9 Grad 7 6000 5500 5000 4500 3500 3000 Grad 8 4600 3600 Grad 9 2500 3400 Lagranges interpolationsformel, S Ch 311 L k (x) = (x x 1) (x x k 1 )(x x k+1 ) (x x n ) (x k x 1 ) (x k x k 1 )(x k x k+1 ) (x k x n ) Notera att L k (x j ) = δ jk vilket ger att p n 1 (x) = n y i L i (x) i=1 k = 1 n Hermites gamla interpolationsformel, GNM sid (5)10 (Används ibland i EXS och extentor) h i = x i+1 x i y i = y i+1 y i g i = h i k i y i c i = 2 y i h i (k i +k i+1 ) Så för valfritt t [0,1] kan vi beräkna x = x i +th i y = y i +t y i +t(1 t)g i +t 2 (1 t)c i 3 4 1 5 2 1 6 3 25 Önskas y(42) blir det Vill man skatta y(x = 42) : t = (x x i )/h i = (42 3)/2 = 06 y = 4+06 ( 2)+06 (1 06) 4+ +06 2 (1 06) ( 4) = 3184 h = 5 3 = 2 y = 2 4 = 2 g = 2 1 ( 2) = 4 c = 2 ( 2) 2(1+( 1)) = 4 Vill man skatta y(x = 32) : t = (x x i )/h i = (32 3)/2 = 01 y = 4+01 ( 2)+01 (1 01) 4+ +01 2 (1 01) ( 4) = 4124 Vill man skatta y(52) måste man beräkna nya värden på h, y, g och c eftersom x = 52 ligger i nästa intervall 5 c 2018 Ninni Carlsund Levin