Interpolation. 8 december 2014 Sida 1 / 20

Relevanta dokument
Interpolation Modellfunktioner som satisfierar givna punkter

TANA09 Föreläsning 8. Kubiska splines. B-Splines. Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

Föreläsning 5. Approximationsteori

TANA19 NUMERISKA METODER

OH till Föreläsning 5, Numme K2, Läsa mellan raderna. Allmän polynom-interpolation, S Ch 3.1.0

OH till Föreläsning 5, Numme K2, GNM Kap 4-4.4A / GKN Kap 4.1A,(D),E Interpolation. Läsa mellan raderna. Allmän polynom-interpolation

NUMPROG, 2D1212, vt Föreläsning 1, Numme-delen. Linjära ekvationssystem Interpolation, Minstakvadratmetoden

Kurvanpassning. Kurvanpassning jfr lab. Kurvanpassning jfr lab

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Felfortplantning och kondition

Numerisk Analys, MMG410. Lecture 13. 1/58

Polynomanpassning i MATLAB

Numerisk Analys, MMG410. Lecture 12. 1/24

Lösningar till Tentamen i Beräkningsvetenskap II, 5.0 hp, Del A. 1. (a) ODE-systemet kan skrivas på formen

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28

Del I: Lösningsförslag till Numerisk analys,

Sammanfattning (Nummedelen)

Tillämpning: Bildinterpolation. Ekvationslösning. Integraler. Tillämpning: En båt. Räkning med polynom. Projekt. Tentamensinformation.

0.31 = f(x 2 ) = b 1 + b 2 (x 3 x 1 ) + b 3 (x 3 x 1 )(x 3 x 2 ) = ( ) + b 3 ( )(

Sekantmetoden Beräkningsmatematik TANA21 Linköpings universitet Caroline Cornelius, Anja Hellander Ht 2018

3.6 De klassiska polynomens ortogonalitetsegenskaper.

Linjär Algebra och Numerisk Analys TMA 671, Extraexempel

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

DATORLABORATION FÖR KURSEN ENVARIABELANALYS 2

KTH 2D1240 OPEN vt 06 p. 1 (5) J.Oppelstrup

Envariabelanalys 5B1147 MATLAB-laboration Derivator

Numeriska metoder. Kompendiet. Lektor: Yury Shestopalov. Tel Karlstads Universitet

f(x) = x 2 g(x) = x3 100 h(x) = x 4 x x 2 x 3 100

Tentamen, del 2 DN1240 Numeriska metoder gk II för F

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 2 juni 2014

f(x) = x 2 g(x) = x3 100

Fö4: Kondition och approximation. Andrea Alessandro Ruggiu

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Fredag 16 januari 2009 TID:

OH till Föreläsning 15, Numme K2, God programmeringsteknik

Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer

Varning!!! Varning!!!

TAYLORS FORMEL VECKA 4

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

TANA17 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

HANDLEDNING TILL LABORATION I GEOMETRI

a = a a a a a a ± ± ± ±500

F 4 Ch Numerisk integration, forts.; Ch.4 Numerisk derivering.

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

Ansvariga lärare: Yury Shestopalov, rum 3A313, tel (a) Problem 1. Använd Eulers metod II (tre steg) och lös begynnelsevärdesproblemet

TATA42: Föreläsning 3 Restterm på Lagranges form

Rapportexempel, Datorer och datoranvändning

Konvergens för iterativa metoder

Labb 3: Ekvationslösning med Matlab (v2)

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt.

med tillgång till värden på f: vi anser att vi kan evaluera f för alla x i (a,b) och använder kvadraturformler av typen n

Handledning till laboration i geometri

OH till Föreläsning 14, Numme I2, God programmeringsteknik

TMA226 datorlaboration

Uppgift 1 R-S. Uppgift 2 R-M. Namn:...

Något om Taylors formel och Mathematica

Teori- och räkneuppgifter

Modul 4 Tillämpningar av derivata

TANA09 Föreläsning 5. Matrisnormer. Störningsteori för Linjära ekvationssystem. Linjära ekvationssystem

Tentamen del 1 SF1511, , kl , Numeriska metoder och grundläggande programmering

f(x + h) f(x) h f(x) f(x h) h

Tentamen i Beräkningsvetenskap II, 5.0 hp,

SF1513 NumProg för Bio3 HT2013 LABORATION 4. Ekvationslösning, interpolation och numerisk integration. Enkel Tredimensionell Design

Teknisk beräkningsvetenskap I 5DV154

Lösningar och kommentarer till uppgifter i 3.1

7x 2 5x + 6 c.) lim x 15 8x + 3x Bestäm eventuella extrempunkter, inflexionspunkter samt horizontella och vertikala asymptoter

Omtentamen i DV & TDV

15 februari 2016 Sida 1 / 32

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

TANA17 Matematiska beräkningar med Matlab

Kapitel Ekvationsräkning

Sidor i boken f(x) = a x 2 +b x+c

f(a + h) = f(a) + f (a)h + f (θ) 2 h2, θ [a, a + h]. = f(a+h) f(a)

Numeriska metoder för ODE: Teori

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Lösningar tentamen i kurs 2D1210,

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Kurs 2D1213, Laboration 2: Att lösa ordinära differentialekvationer med finita differensmetoden

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Torsdag 28 aug 2008 TID:

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Anteckningar Numeriska Metoder

Gamla tentemensuppgifter

2D1250 Tillämpade numeriska metoder II

Kapitel 7. Numerisk derivering och integration

Fixpunktsiteration. Kapitel Fixpunktsekvation. 1. f(x) = x = g(x).

Institutionen för Matematiska Vetenskaper TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA

Tentamen i Beräkningsvetenskap II, 5.0 hp,

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

Föreläsning 14: Exempel på randvärdesproblem. LU-faktorisering för att lösa linjära ekvationssystem.

TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1/TM1, TMA

Viktiga begrepp, satser och typiska problem i kursen MVE460, 2015.

Institutionen för Matematik. F1 - Linjär algebra och numerisk analys, TMA671 Svar till övningar i Heath s bok och extraövningar

OH till Föreläsning 12, NumMet O1, God programmeringsteknik

Euler-Mac Laurins summationsformel och Bernoulliska polynom

Matematisk kommunikation (FMA085 4,5hp) Läsperiod 2, HT 2011

Icke-linjära ekvationer

Transkript:

TANA09 Föreläsning 7 Interpolation Interpolationsproblemet. Introduktion. Polynominterpolation. Felanalys. Runges fenomen. Tillämpning. LED display. Splinefunktioner. Spline Interpolation. Ändpunktsvillkor. Feluppskattning. Exempel. 8 december 2014 Sida 1 / 20

Interpolation Antag att vi har en tabell x x 1 x 2... x n+1 f(x) f 1 f 2... f n+1 Hur skall vi uppskatta f(x) för x 1 x x n+1? Definition Ett polynom p(x) interpolerar en funktion f(x) i punkterna x 1, x 2,..., x n+1, om p(x i ) = f(x i ), i = 1, 2,...,n+1. Frågor Polynomets gradtal? Hur skall polynomet beräknas? Feluppskattning? 8 december 2014 Sida 2 / 20

Linjär Interpolation f(x) f 1 f 2 p 1 (x) x 1 x 2 Sats Det förstagrads polynom p 1 (x) som interpolerar två punkter (x 1, f 1 ) och (x 1, f 2 ) ges av p 1 (x) = f 1 + x x 1 x 2 x 1 (f 2 f 1 ). 8 december 2014 Sida 3 / 20

Felanalys vid Linjär Interpolation Lemma Antag att felen i använda funktionsvärden f 1 och f 2 uppfyller f i ε. Det resulterande felet då linjär interpolation används kan uppskattas R XF ε. Sats Antag att p 1 (x) är det linjära polynom som interpolerar en funktion f(x) i punkterna x 1 och x 2. Då gäller R T = f(x) p 1 (x) = f (ξ) 2 (x x 1)(x x 2 ), där x 1 < ξ < x 2. eller R T Ch 2, där h = x 2 x 1. 8 december 2014 Sida 4 / 20

Polynom Interpolation Sats Antag att vi har n+1 punkter (x i, f i ). Vi kan då bestämma ett unikt polynom p n (x) av grad n som interpolerar de givna punkterna, dvs p n (x i ) = f i, i = 1, 2,..., n+1. Sats Låt p n (x) vara det polynom av gran n som interpolerar f(x) i punkterna x 1, x 2,...,x n+1. Då gäller f(x) p n (x) = f(n+1) (ξ(x)) (x x (n+1)! 1 ) (x x n+1 ). Funktionen f(x) måste ha tillräckligt många kontinuerliga derivator. Hur skall räkningarna organiseras? 8 december 2014 Sida 5 / 20

Newtons Interpolationsformel Hitta ett polynom p n (x) som interpolerar värdena i tabellen Vi gör ansatsen x x 1 x 2... x n+1 f(x) f 1 f 2... f n+1 p n (x)=c 0 +c 1 (x x 1 )+c 2 (x x 1 )(x x 2 )+...+c n (x x 1 ) (x x n ). Interpolationsvillkoren ger då och p n (x 1 ) = c 0 = f 1, p n (x 2 ) = c 0 + c 1 (x 2 x 1 ) = f 2,= c 1 = (f 2 c 0 )/(x 2 x 1 ). Varje nytt villkor p n (x i ) = f i ger en koefficient c i. Enkla räkningar! 8 december 2014 Sida 6 / 20

Feluppskattning I praktiken känner vi inte f (ξ). Istället väljer vi en extra punkt (x n+2, f n+2 ) och beräknar ett nytt interpolerande polynom p n+1 (x). Vi gör feluppskattningen R T P n+1 (x) P n (x). Detta kan ses som att vi approximerar f (n+1) (ξ(x)) P (n+1) n+1 (ξ(x)) = c n+1. Kommentar Används Newtons interpolationsformel är det lätt att genomföra räkningarna. 8 december 2014 Sida 7 / 20

Exempel Låt f(x) = e x/2 cos(x/7)+(x 0.1) 2 /2, och antag att vi har följande tabell över funktionsvärden. x 0.0 0.5 0.7 f(x) 1.005 0.857 0.881 Använd dessa tabellvärden för att uppskatta f(x) för x = 0.35 genom linjär interpolation. Gör även en feluppskattning. Hur skall vi lösa uppgiften i MATLAB? Vad händer om vi vill använda kvadratisk interpolation? 8 december 2014 Sida 8 / 20

I MATLAB skriver vi >> x=[0 0.5 0.7];, y=[ 1.005 0.857 0.881 ]; >> p1 = polyfit( x(1:2), y(1:2), 1 ); >> p2 = polyfit( x(1:3), y(1:3), 2 ); Vi beräknar polynomen genom exempelvis >> xx=-0.1:0.01:0.8; y1=polyval(p1,xx); 1.15 0.16 1.1 0.14 1.05 0.12 1 0.1 0.95 0.08 0.9 0.06 0.85 0.04 0.8 0.02 0.75 0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0 0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 Vänster: Polynomen p 1 (x) och p 2 (x) samt f(x). Höger: Felet f(x) p 1 (x) och feluppskattningen R T p 2 (x) p 1 (x). Här är R T 0.038. 8 december 2014 Sida 9 / 20

För kvadratisk interpolation behövs 3 punkter för p 2 (x) och en ytterligare punkt för att uppskatta R T. 1.1 1.8 x 10 3 1.6 1.05 1.4 1.2 1 1 0.95 0.8 0.6 0.9 0.4 0.2 0.85 0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0 0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 Vänster: Polynomen p 2 (x) och p 3 (x) samt f(x). Höger: Felet f(x) p 2 (x) och feluppskattningen R T p 3 (x) p 2 (x). Här är R T 1.2 10 4. Vad händer om vi ökar polynomets gradtal ytterligare? 8 december 2014 Sida 10 / 20

Runges fenomen 2 1.5 1 0.5 0 0.5 5 4 3 2 1 0 1 2 3 4 5 Polynom av gradtal n = 4, 6, och 10 som interpolerar f(x) = 1/(1+x 2 ). Felet växer då polynomets gradtal ökar. Använd endast interpolerande polynom av lågt gradtal! 8 december 2014 Sida 11 / 20

Tillämpning - Upplösning på bildskärmar En LED display har ett fixt antal bildpunkter ordnade i ett rutnät av storlek M N. Allt som visas på skärmen måste ha precis denna upplösning. Höger: Bildpunkter. Vi söker värdet i punkt P. Mitten: Använd punkter Q 11, Q 12, Q 21, och Q 22 och bilinjär interpolation. Vänster: Bikubisk interpolation kräver 16 interpolationspunkter. Färre artefakter! 8 december 2014 Sida 12 / 20

Spline Interpolation Problem En funktion f(x) är känd i ett antal noder x 1, x 2,...,x n. Vi vill hitta en approximation s(x) f(x) på [x 1, x n ]. Hur skall vi göra? Lösning Använd linjär interpolation på varje delintervall [x i, x i+1 ]. f 2 f(x) f f 3 f 5 1 s(x) f 4 x 1 x 2 x 3 x 4 x 5 Teorin för linjär interpolation gäller! 8 december 2014 Sida 13 / 20

Linjära splinefunktioner Definition En funktion s(x) är en interpolerande linjär spline med noder x 1,...,x n om 1. s(x) är kontinuerlig på [x 1, x n ]. 2. s(x) är en rät linje på varje delintervall [x i, x i+1 ]. 3. s(x) interpolerar f(x) i noderna, dvs s(x i ) = f(x i ). Sats För en interpolerande linjär spline gäller f(x) s(x) M 8 h2, där f (x) M och h = max x i+1 x i. 8 december 2014 Sida 14 / 20

Kubiska Splinefunktioner f 2 f f 3 f 5 1 s 1 s 2 f 4 s 3 s 4 x 1 x 2 x 3 x 4 x 5 Definition En funktion s(x) är en interpolerande kubisk spline med noder x 1,...,x n om 1. s(x), s (x), och s (x) är kontinuerliga på [x 1, x n ]. 2. s(x) ges av ett tredjegrads polynom på varje delintervall [x i, x i+1 ]. 3. s(x) interpolerar f(x) i noderna, dvs s(x i ) = f(x i ). 8 december 2014 Sida 15 / 20

Exempel Bestäm en kubisk spline s(x) som interpolerar tabellen x 0 1 2 f(x) 1 2.5 2 med ändpunktsvillkor f (0) = 1 och f (2) = 1. Lösning Hitta polynom s 1 (x) och s 2 (x). f 2 f 3 f 1 s 1 s 2 x 1 x 2 x 3 Översätt kraven på s 1 och s 2 till ett linjärt ekvationssystem! 8 december 2014 Sida 16 / 20

Vår spline funktion blir { s1 (x)=1.0+1.00(x 0)+1.75(x 0) s(x)= 2 1.25(x 0) 3, 0 x 1, s 1 (x)=2.5+0.75(x 1) 2.00(x 1) 2 +0.75(x 1) 3, 1 x 2, 3 2.5 2 s 1 (x) s 2 (x) 1.5 1 0.5 0 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 Två kontinuerliga derivtor och rätt lutning i ändpunkterna! 8 december 2014 Sida 17 / 20

Ändpunktsvillkor Sats En kubisk spline funktion s(x), som interpolerar f(x) i noderna x 1,...,x n, blir unikt bestämd om vi ger två ändpunktsvillkor. Detta bevisas genom att jämföra antalet obekanta (4 koefficienter/intervall) med antalet villkor. Vi kan välja mellan Naturliga randvillkor: s (x 1 )=s (x n )=0. Rätta randvillkor: s (x 1 )=f (x 1 ) och s (x n )=f (x n ). Periodiska randvillkor: s (x 1 )=s (x n ). 8 december 2014 Sida 18 / 20

Feluppskattning Sats Då rätta randvillkor används gäller att s(x) f(x) 5 384 Mh4, där h = max x i+1 x i och M = max f (4) (x). Exempel Vi vill approximera f(x) = 1/(1+x 2 ), på intervallet [ 5, 5], med en kubisk spline funktion. Vi använder rätta ändpunktsvillkor. Hur beror felet på antalet punkter? N 5 9 17 h 1/4 1/8 1/16 Felet 0.2714 0.0561 0.0037 Vi ser att felet beter sig som Ch 4. 8 december 2014 Sida 19 / 20

I MATLAB används csape för att beräkna en interpolerande kubisk spline. >> pp = csape( x, y, complete, [ d1, d2 ] ); där d 1 och d 2 är numeriska värden på derivatorna f (x 1 ) och f (x n ). Beräkna splinefunktionens värden med ppval. 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 5 4 3 2 1 0 1 2 3 4 5 Vi plottar funktionen f(x) = 1/(1+x 2 ) och kubiska spline funktioner s(x) då N = 5, 9, och 17 punkter används. 8 december 2014 Sida 20 / 20