Föreläsning 5. Approximationsteori

Relevanta dokument
Interpolation. 8 december 2014 Sida 1 / 20

Numerisk Analys, MMG410. Lecture 13. 1/58

Numerisk Analys, MMG410. Lecture 12. 1/24

Interpolation Modellfunktioner som satisfierar givna punkter

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

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

Kurvanpassning. Kurvanpassning jfr lab. Kurvanpassning jfr lab

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

Fö4: Kondition och approximation. Andrea Alessandro Ruggiu

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

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

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

Minsta kvadratmetoden

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

Sammanfattning (Nummedelen)

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

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.

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

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

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 ( )(

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

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

Omtentamen i DV & TDV

Tentamen i Beräkningsvetenskap II, 5.0 hp,

8.5 Minstakvadratmetoden

Minstakvadratmetoden

Varning!!! Varning!!!

Linjära ekvationssystem

Laboration 2. Laborationen löses i grupper om två och redovisas individuellt genom en lappskrivning den 3/10. x = 1±0.01, y = 2±0.05.

8. Euklidiska rum 94 8 EUKLIDISKA RUM

Omtentamen i DV & TDV

Teknisk Beräkningsvetenskap I Tema 3: Styvhetsmodellering av mjuk mark med icke-linjära ekvationer

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

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

TMV166 Linjär Algebra för M. Tentamen

Lösningar tentamen i kurs 2D1210,

Dagens teman. Linjära ODE-system av ordning 1:

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

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Konvergens för iterativa metoder

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Veckoblad 4, Linjär algebra IT, VT2010

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

15 februari 2016 Sida 1 / 32

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

Polynomanpassning i MATLAB

3.3. Interpolationsmetoder

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

Lösningar till SF1852 Optimeringslära för E, 16/1 08

Mer om texter i MATLAB och om iterativ lösning av linjära ekvationssystem

1 Konvexa optimeringsproblem grundläggande egenskaper

Linjära ekvationssystem

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Linjär Algebra och Numerisk Analys TMA 671, Extraexempel

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

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

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Lösningsförslag till övningsuppgifter, del V

1 Ickelinjär optimering under bivillkor

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.

CHALMERS Finit Elementmetod M3 Institutionen för tillämpad mekanik. Teorifrågor

1.1 MATLABs kommandon för matriser

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

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

SF1624 Algebra och geometri Lösningsförslag till tentamen Lördagen den 5 juni, 2010 DEL A

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

Optimalitetsvillkor. Optimum? Matematisk notation. Optimum? Definition. Definition

% Föreläsning 3 10/2. clear hold off. % Vi börjar med att titta på kommandot A\Y som löser AX=Y

Lösningsförslag till tentamensskrivningen i Numerisk analys

1. Vi skriver upp ekvationssystemet i matrisform och gausseliminerar tills vi når trappstegsform,

x 2 x 1 W 24 november, 2016, Föreläsning 20 Tillämpad linjär algebra Innehåll: Projektionssatsen Minsta-kvadratmetoden

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

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

Laboration 4: Lineär regression

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

Andragradspolynom Några vektorrum P 2

B. Kvadratkomplettering

Föreläsningsanteckningar Linjär Algebra II Lärarlyftet

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

. b. x + 2 y 3 z = 1 3 x y + 2 z = a x 5 y + 8 z = 1 lösning?

TMA226 datorlaboration

. (2p) 2x + 2y + z = 4 y + 2z = 2 4x + 3y = 6

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A

SF1624 Algebra och geometri Lösningsförslag till tentamen Fredagen den 23 oktober, 2009 DEL A

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A. t 2

SF1624 Algebra och geometri

2 Matrisfaktorisering och lösning till ekvationssystem

Fel- och störningsanalys

Ortogonal dekomposition. Minstakvadratmetoden.

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

SF1624 Algebra och geometri Lösningsförslag till modelltentamen DEL A

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

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

9.3. Egenvärdesproblem

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

= ( 1) xy 1. x 2y. y e

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2

Övningar. c) Om någon vektor i R n kan skrivas som linjär kombination av v 1,..., v m på precis ett sätt så. m = n.

Transkript:

Föreläsning 5 Approximationsteori Låt f vara en kontinuerlig funktion som vi vill approximera med en enklare funktion f(x) Vi kommer använda två olika approximationsmetoder: interpolation och minstrakvadratanpassning Vi börjar med interpolation och det enklaste fallet då f(x) är ett polynom 1 Polynominterpolation Vid polynominterpolation vill vi hitta ett polynom p(x) som överensstämmer med f i ett antal noder (x-koordinater), x 0 < x 1 < < x n, dvs p(x j ) = f(x j ), j = 0,,n Man kan först fråga sig om detta verkligen alltid är möjligt Svaret är ja och ges i precis form av satsen på sid 347 i Bradie Vi behöver bara se till att polynomets gradtal är minst lika stort som antal interpolationsnoder minus ett I vårt fall är antal noder n + 1 och vi behöver alltså ett polynom av gradtal minst n (Om vi väljer gradtalet precis lika med n är polynomet också unikt; tex, givet två punkter finns det exakt en rak linje som passerar igenom båda två) Nästa fråga är hur man kan få fram polynomet numeriskt För att göra det antar vi att gradtalet är n och ansätter p(x) = c 0 + c 1 x + c 2 x 2 + + c n x n (1) Vi vill hitta värdena för koefficienterna c k Villkoren för interpolation blir p(x j ) = m c k x k j = f(x j ), j = 0,,n (2) k=0 Detta kan skrivas som ett linjärt ekvationsystem for koefficienterna c k, Ac = f, (3) där c = c 0 c n, f = f(x 0 ) f(x n ), A = 1 x 0 x m 0 1 x 1 x n 1 1 x n x n n Notera att c R n+1, f R n+1 och A R (n+1) (n+1) Matrisen A kallas en Vandermondematris för noderna Vi kan nu beräkna de okända koefficienterna c k genom att lösa det linjära ekvationssystemet 1 (6)

Ett problem med denna metod är att elementen i Vandermondematrisen kan bli väldigt stora om vi har många noder, dvs stort n Det gör matrisen illa konditionerad och metoden blir opålitligt för stora problem En bättre variant är att ändra ansatsen (1) till den så kallade Newton-ansatsen, n 1 p(x) = c 0 +c 1 (x x 0 )+c 2 (x x 0 )(x x 1 )+c 3 (x x 0 )(x x 1 )(x x 2 )+ +c n (x x j ) (4) Denna ansats utnyttjar mer information om problemet när den inkluderar nodvärdena Den ger fortfarande ett polynom av gradtal n På samma sätt som ovan leder den till ett linjärt ekvationssystem för koefficienterna c k, med matrisen 1 0 0 0 1 (x 1 x 0 ) 0 0 A Newton = 1 (x 2 x 0 ) (x 2 x 0 )(x 2 x 1 ) 0 1 (x n x 0 ) (x n x 0 )(x n x 1 ) n 1 (x n x j ) Denna matris är dels bättre konditionerad än Vandermondematrisen, dels triangulär och det linjära ekvationssystemet är därför billigare att lösa Vi ska slutligen diskutera felet vi gör vid polynominterpolation Vi antar att alla noder ligger i intervallet [a,b] Man kan då visa att (se satsen på sid 348 i Bradie), f(x) p(x) = f(n+1) (ξ) (n + 1)! (x x 0) (x x n ) (5) för något ξ [a,b] (Detta kan ses som en generalisering av medelvärdessatsen, vilken ges för n = 0) Om noderna är ekvidistant placerade, dvs om kan man också visa att x j = a + jh, h = b a n (x x 0 ) (x x n ) n! hn+1 4 (6) Definera felet E n vid n noder som det maximala felet i intervallet, E n = max f(x) p(x) a x b För ekvidistanta noder ger då (5) och (6) tillsammas att f (n+1) (ξ) E n max a ξ b 4(n + 1) hn+1 (7) Betyder då detta att felet går mot noll när vi tar många punkter, dvs går E n 0 då n? Nej, i allmänhet inte Visserligen går h n+1 0, men ofta går max f (n+1) snabbare och E n kan inte begränsas med (7) För ekvidistant interpolation får interpolationspolynomet vilda oscillationer vid intervallets ändpunkter när n blir stort Detta kallas Runges fenomen och illustreras i Bradie på sidorna 386 387 Slutsatsen är att ekvidistant interpolation med höga gradtal inte är bra Om man själv kan välja noder är ett bättre alternativ ta noderna icke ekvidistant Det optimala valet ges av de sk 2 (6)

Chebyshev-noderna, se sid 379 i Bradie Ett annat mycket praktiskt alternativ är att använda styckvis polynominterpolation med lågt gradtal I detta fall delar vi in intervallet [a,b] i många små intervall och interpolerar med lågt gradtal i vart och ett av dessa Det enklaste fallet är styckvis linjär interpolation (se kap 55 i Bradie) där vi använder förstagradspolynom för att interpolera mellan varje nodpar, dvs vi approximerar genom att "dra ett rakt streck mellan punkterna" Vi kan använda samma feluppskattning som tidigare, (7), och applicera den på varje enskilt intervall Den ger då E styckvis = max j f (ξ) max f(x) p styckvis (x) max max x j x x j+1 j x j ξ x j+1 8 h 2 max a ξ b f (ξ) h 2 8 Här är n i (7) konstant lika med ett och h går mot noll oberoende av n Därmed konvergerar E styckvis 0 som O(h 2 ) Noggrannhetsordningen är alltså två för styckvis linjär interpolation I allmänhet för styckvis interpolation med gradtal p är noggrannhetsordningen p + 1 Kommentarer: Lagrange-polynomen för noderna är definerade som L j (x) := n k=0,k j x x k x j x k, j = 0,,n De är polynom av gradtal n med egenskapen att { 1, j = k, L j (x k ) = 0, j k Med dessa kan interpolationsproblemet enkelt lösas, p(x) = L j (x)f(x j ) Denna form för interpolationspolynomet är dock krånglig att använda i numeriska beräkningar Lagrange-polynomen är snarare ett teoretiskt verktyg och har ett stort värde vid analys av approximationsproblem Några praktiska Matlab-funktioner för interpolation är c=polyfit(x,f,n), som ger c k - koefficienterna när x k och f(x k ) ligger i (n + 1)-vektorerna x och f; polyval(c,x) som evaluerar ett polynom med koefficienterna c i punkten x; samt interp1(xnod,fnod,x,typ) som evaluerar styckvis polynominterpolation av (xnod,fnod) i punkten x, med varierande interpolationstyp som bestäms av sista argumentet Tex kan typ vara linear, cubic, eller spline Se Matlabs help-kommando för mer info 2 Minstakvadratanpassning Vid minstakvadratanpssning söker vi en enkel funktion som approximerar f(x) genom att minimera den totala avvikelsen från f i ett antal givna noder Mer precist söker vi en funktion f som minimerar "felkvadratsumman", r = ( f(x j ) f(x j )) 2 3 (6)

Vi börjar med att anta att f är ett polynom Om f tex är en snäll funktion med brus eller andra störningar överlagrade kommer vanlig polynominterpolation, både styckvis och direkt, ge en mycket oscillerande approximation Minstakvadratlösningen med ett polynom av lågt gradtal ger en snällare lösning För att beräkna minstakvadratlösningen för ett polynom gör vi som tidigare ansatsen p(x) = c 0 + c 1 x + c 2 x 2 + + c m x m, där m nu är mindre än n Vi kan då inte längre hitta c k så att p(x j ) = f(x j ) för alla j Istället vill vi minimera skillnaden Liksom ovan kan vi skriva denna på matrisform, Ac f = p(x 0 ) f(x 0 ), p(x n ) f(x n ) m+1 {}}{ n + 1 (8) Matrisen blir alltså nu rektangulär, A R (n+1) (m+1), c R m+1 och f R n+1 Systemet Ac = f är överbestämt och saknar då i allmänhet lösningar Vi noterar dock att eftersom Ac f 2 2 = (p(x j ) f(x j )) 2 = r, är minimering av felkvadratsumman r ekvivalent med att lösa Ac = f i minstakvadratmening, dvs hitta den vektor c som minimerar den euklidiska normen av residualen, Ac f 2 = min b R m+1 Ab f 2 (9) Vi ska nu visa att lösningen c till minstakvadratproblemet ges av normalekvationerna A T Ac = A T f (10) Notera att A T A R (m+1) (m+1) är en kvadratisk matris och systemet har alltid en lösning när kolumnerna i A är linjärt oberoende (se nedan) Normalekvationerna kan härledas på följande sätt Antag att c löser (10) Eftersom x 2 2 = x T x har vi då för alla b R m+1, Ab f 2 2 Ac f 2 2 = b T A T Ab 2b T A T f + f T f c T A T Ac + 2c T A T f f T f Med andra ord är = b T A T Ab 2b T A T f c T A T Ac + 2c T A T f = {utnyttja (10)} = b T A T Ab 2b T A T Ac + c T A T Ac = A(b c) 2 2 0 Ab f 2 2 Ac f 2 2 b R m+1, vilket visar att c faktiskt minimerar residualen och uppfyller (9) Alternativt kan vi härleda (10) med vanlig flervariabelanalys Definiera 4 (6) Φ(b) := Ab f 2 2

Låt betyda gradienten med avseende på b Då uppfyller minimumet c Vi utnyttjar att Φ(c) = 0 (b T Ub) = 2Ub, u T b = u, för alla kvadratiska matriser U R (m+1) (m+1) och vektorer u R m+1 (Jämför skalära fallet där (ub 2 ) = 2ub och (ub) = u) Detta ger Följdaktligen har vi Φ(b) = ( b T A T Ab 2b T A T f + f T f ) = 2A T Ab 2A T f 0 = Φ(c) = 2A T Ac 2A T f, vilket är samma sak som (10) Det återstår att visa att c är ett minimum (och inte ett maximum eller en sadelpunkt, till exempel) Villkoret för detta är att Hessianen till Φ är en positivt definit matris vid c I vårt fall är Hessianen precis 2A T A och vi behöver alltså visa att x T A T Ax > 0, för alla x 0 i R m+1 (11) Vi noterar nu att vårt tidigare antagande om att kolumnerna i A är linjärt oberoende betyder att Ax 0 när x 0 Därmed följer (11) från det faktum att x T A T Ax = Ax 2 2 Att AT A är positivt definit implicerar också att A T A är ickesingulär och att normalekvationerna (10) har en lösning Minstakvadratproblem i Matlab: c=polyfit(x,f,m) ger minstakvadratlösningen om m < n och vektorerna x och f har längd n + 1 A\b ger minstakvadratlösningen om A är en n m-matris, b en n-vektor och m < n Se Matlabs help-kommando för mer info 3 Interpolation med andra basfunktioner Vi betraktar ett allmännare fall när f(x) är en linjärkombination av godtyckliga basfunktioner, dvs när den kan skrivas som m f(x) = c k ψ k (x), k=0 med några funktioner ψ k (x) och obekanta koefficienter c k R, k = 0,,m I polynomfallet använder vi till exempel ψ k (x) = x k I allmänhet kan man använda välja andra funktioner som liknar f, tex trigonometriska funktioner ψ k (x) = exp(ikx) om f är periodisk Interpolationsvillkoren blir då m f(x j ) = c k ψ k (x j ) = f(x j ), j = 0,,n (12) k=0 Liksom tidigare kan det skrivas som ett linjärt ekvationsystem for c k, Ac = f, (13) 5 (6)

där c = c 0 c m, f = f(x 0 ) f(x n ), A = ψ 0 (x 0 ) ψ 1 (x 0 ) ψ m (x 0 ) ψ 0 (x 1 ) ψ 1 (x 1 ) ψ m (x 1 ) ψ 0 (x n ) ψ 1 (x n ) ψ m (x n ) Vi antar att basfunktionerna ψ k (x) och noderna {x i } är valda så att kolumnerna i A är linjärt oberoende När n = m är då A ickesingulär och vi kan hitta c som uppfyller (13) och alltså c k som uppfyller (12) När antalet punkter är större än antalet obekanta, dvs då n > m, kan vi lösa systemet i minstakvadratmening som ovan, vilket ger det f som minimerar ( f(x j ) f(x j )) 2 6 (6)