Polynomanpassning i MATLAB

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

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

Kurvanpassning. Kurvanpassning jfr lab. Kurvanpassning jfr lab

Interpolation. 8 december 2014 Sida 1 / 20

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

Interpolation Modellfunktioner som satisfierar givna punkter

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

Föreläsning 5. Approximationsteori

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

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

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.

Numerisk Analys, MMG410. Lecture 13. 1/58

Numerisk Analys, MMG410. Lecture 12. 1/24

TANA19 NUMERISKA METODER

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Rapportexempel, Datorer och datoranvändning

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

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

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

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

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

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

Beräkning av integraler

Sammanfattning (Nummedelen)

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

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

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

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

5 Om f (r) = 0 kan andraderivatan inte avgöra vilken typ av extrempunkt det handlar om. Återstår att avgöra punktens typ med teckenstudium.

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

Linjär Algebra och Numerisk Analys TMA 671, Extraexempel

Från förra gången: Newton-Raphsons metod

9 Skissa grafer. 9.1 Dagens Teori

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

Envariabelanalys 5B1147 MATLAB-laboration Derivator

Uppsala Universitet Matematiska Institutionen Bo Styf. Lösningar till kryssproblemen 1-5. Uppgifter till lektion 1: = 10 x. = x 10.

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

Kurvor och ytor. Gustav Taxén

Dagens tema är exponentialfunktioner. Egentligen inga nyheter, snarare repetition. Vi vet att alla exponentialfunktioner.

Fö4: Kondition och approximation. Andrea Alessandro Ruggiu

2 Matrisfaktorisering och lösning till ekvationssystem

NUMPROG, 2D1212, vt Föreläsning 9, Numme-delen. Stabilitet vid numerisk behandling av diffekvationer Linjära och icke-linjära ekvationssystem

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

3.6 De klassiska polynomens ortogonalitetsegenskaper.

Lösningar och kommentarer till uppgifter i 3.1

Modul 4 Tillämpningar av derivata

1.5 Lösningar till kapitel 7

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.

Uppsala Universitet Matematiska Institutionen Bo Styf. Genomgånget på föreläsningarna

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

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

Teori och teori idag, som igår är det praktik som gäller! 1 (Bokens nr 3216) Figur 1:

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Introduktion till MATLAB

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Tentamen i Teknisk-Vetenskapliga Beräkningar

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

Labb 3: Ekvationslösning med Matlab (v2)

Varning!!! Varning!!!

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

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

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

TAIU07 Matematiska beräkningar med Matlab

Konvergens för iterativa metoder

Handledning till laboration i geometri

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

6 Derivata och grafer

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

Lösningar till linjära problem med MATLAB

1.1 MATLABs kommandon för matriser

Flervariabelanalys E2, Vecka 3 Ht08

DN1212 Numeriska Metoder och Grundläggande Programmering DN1214 Numeriska Metoder för S Lördag , kl 9-12

Gamla tentemensuppgifter

Mälardalens högskola Akademin för utbildning, kultur och kommunikation

Polynomanpassningsprogram

Frågorna 1 till 6 ska svaras med sant eller falskt och ger vardera 1

DATORLABORATION FÖR KURSEN ENVARIABELANALYS 2

TANA17 Matematiska beräkningar med Matlab

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

HANDLEDNING TILL LABORATION I GEOMETRI

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

ENDIMENSIONELL ANALYS B1 FÖRELÄSNING XV. Föreläsning XV. Mikael P. Sundqvist

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

2D1212 NumProg för P1, VT2006 PROJEKTUPPGIFT

Fel- och störningsanalys

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2

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

3D: transformationer:

LMA515 Matematik, del B Sammanställning av lärmål

Omtentamen i DV & TDV

SF1511. Numeriska metoder och grundläggande programmering. för M1, 9 hp (högskolepoäng)

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

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

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

4. Vad kan man multiplicera x med om man vill öka värdet med 15 %?

Envariabel SF1625: Föreläsning 11 1 / 13

Transkript:

Polynomanpassning i MATLAB Funktionsanropet c=polyfit(x,y,n) ger koefficiemterna i ett n:e-gradspolynom som anpassar sig till y-värdena för x-värdena med lämplig metod. I tredje föreläsningens exempel 3, där andragradspolynomet y = F(x) = c 1 + c 2 x + c 3 x 2 anpassas till x=[15:1:19]';y=[15 8 5 3 3]' ger c=polyfit(x,y,2) [1.0714-39.3286 363.6000] I exemplet A\y ger [363.6-39.3286 1.0714] yv=polyval(c,xv) ger värdet av polynomet för xv. polyval(c,17) ger 4.6571, stämmer med 4.6571-2.9000(x-17)+1.0714(x-17)^2 (OBS! för lab 1:5) OBS! Omvänd ordning, högsta koefficienten först, också i c för polyval Frågor från F3: norm(x,inf) och norm(x,inf) är samma sak Finns ingen funktion för att sortera om till diagonaltung (god idé) Yngve Sundblad Föreläsning 4 sid.1 SF 1518/19 ht 2015 9 sept.

Interpolation med polynom Interpolation innebär att beräkna en polynomkurva som går genom ett antal punkter och använda detta för att uppskatta mellanliggande värden. (Man kan använda andra basfunktioner men det ligger utanför kursen.) Extrapolation innebär att använda polynomkurvan för att uppskatta värden utanför de givna. Algebrans fundamentalsats (Gauss 1799): Givet n punkter (värdepar) (x 1, y 1 ), (x 2, y 1 ), (x n, y n ). Det finns precis ett polynom P av grad n-1 som uppfyller P(x k )=y k Naiva formen: P(x) = c 1 + c 2 x + c 3 x 2 + + c n x n-1, kräver någon form av ekvationslösning för att beräkna c:na Newtons interpolationsformel (1675): P(x) = c 1 + c 2 (x-x 1 ) + c 3 (x-x 1 )(x-x 2 ) + + c n (x-x 1 )(x-x 2 ) (x-x n-1 ) Yngve Sundblad Föreläsning 4 sid.2 SF 1518/19 ht 2015 9 sept.

Beräkning av koefficienterna Med naiva blir systemmatrisen och ekvationen ( )( )=( ) 1 x 1 x 2 n-1 1 x 1 1 x 2 x 2 2 x n-1 2 1 x n x 2 n-1 n x n c 1 c 2 c n y 1 y 2 y n A*c = y, i MATLAB c = A\y Möjliga problem: Stora x k ger stora element i A, blir illa konditionerat, dvs små fel i y k blir stora fel i c k. Lösning: Centrera kring x medel Stort gradtal, n, ger stora svängningar (oberoende av metod) Yngve Sundblad Föreläsning 4 sid.3 SF 1518/19 ht 2015 9 sept.

Interpolationsproblemen i MATLAB c=polyfit(x,y,n-1) kan också användas för att beräkna interpolationspolynomets genom n punkter koefficienter, liksom yv=polyval(c,xv) som ger värdet av polynomet för xv OBS! Ordningen, högsta koefficienten först. Exempel: Följande data anger andelen internetanvändare i procent i hela världen olika år, anpassa med sjättegradspolynom T=[1997 2000 2003 2006 2009 2012 2015]; a = [2 7 12 18 26 36 42]; c6=polyfit(t,a,6); Warning: Polynomial is badly conditioned. Add points with distinct X values, reduce the degree of the polynomial, or try centering and scaling as described in HELP POLYFIT. > In polyfit (line 75) c6 =1.0e+15 * 0.0000-0.0000 0.0000-0.0000 0.0000-0.0062 2.0606 Yngve Sundblad Föreläsning 4 sid.4 SF 1518/19 ht 2015 9 sept.

Centrera, först, minska gradtal sedan T=T-2006; format long; c6=polyfit(t,a,6) -0.000007620789514-0.000102880658436-0.000171467764060 0.00771604938271 0.113271604938272 2.272222222222221 17.999999999999996 (I short nollor i c(1)) format short; a6_2018=polyval(c6,12); ger 23.0000 % Pröva med varannan punkt och tredjegradare T=[-9:6:9]; a=[2 12 26 42]; c3=polyfit(t,a,3) -0.0015 0.0417 2.3472 18.6250 a3_2018=polyval(c3,12); ger 50.1250 Tpl=-9:0.1:9; in6pl=[c6(1)*tpl.^6+c6(2)*tpl.^5+c6(3)*tpl.^4+c6(4)*t pl.^3+c6(5)*tpl.^2+c6(6)*tpl+c6(7)]; in4pl=[c4(1)*tpl.^3+c4(2)*tpl.^2+c4(3)*tpl+c4(4)]; plot(2006+t,a, * ); hold on; plot(2006+tpl,in6pl,2006+tpl,in3pl); Yngve Sundblad Föreläsning 4 sid.5 SF 1518/19 ht 2015 9 sept.

Interpolationspolynomen Den röda. 6:egrads, verkar böja, rentav neråt. Värdet 23 år 2018 bekräftar. Den blå, 3:egrads, verkar snällare. Värdet 50 bekräftar. Yngve Sundblad Föreläsning 4 sid.6 SF 1518/19 ht 2015 9 sept.

Runges fenomen 1 Ännu värre problem kan inträffa i utkanterna av en interpolation. I Pohl,sid.139, interpoleras e x /(1+9x 2 ) i tretton punkter i intervallet (-1,1) med polynom av tolfte graden: x=-1:1/6:1; y=exp(x)./(1+9*x.^2); c=polyfit(x,y,12) 170.5044-19.6793-449.9423 51.9314 445.0745-51.3695-211.9794 24.4662 53.6316-6.1891-8.1345 0.9578 1.0000 xpl=-1:0.01:1; ypl=zeros(1,201); for i=1:13 ypl=ypl+c(i)*xpl.^(13-i); end plot(xpl, ypl, xpl, exp(xpl)./(9+xpl.^2)) Yngve Sundblad Föreläsning 4 sid.7 SF 1518/19 ht 2015 9 sept.

Runges (Carl, 1856-1927) fenomen 2 Den röda är funktionen, den blå polynomet som interpolerar där det ska men ändå svänger våldsamt i kanterna! Yngve Sundblad Föreläsning 4 sid.8 SF 1518/19 ht 2015 9 sept.

Styckvis interpolation Man kan få snällare interpolationskurvor genom att interpolera styckvis mellan varje par av punkter och byta polynom i varje punkt. Extra bra blir det om derivatan (lutningen) och till och med andraderivatan (krökningen) blir oförändrad vid punkterna. Enklast är styckvis linjär interpolation, dvs med linjer mellan punkterna som följer på varandra. P(t) = P(x k +t*h k )=y k +t* y k, där h k =x k+1 -x k och y k =y k+1 -y k, 0 t 1 I allmänhet blir det hörn (diskontinuerlig derivata) i punkterna, olämpligt t.ex. för profiler som ska ha lågt luftmostånd. Om punkterna ligger tätt kan man lura ögat, som vid plottning i MATLAB. Styckvis kvadratisk används sällan, just inte bättre, men styckvis kubisk interpolation används mycket. Yngve Sundblad Föreläsning 4 sid.9 SF 1518/19 ht 2015 9 sept.

Hermiteinterpolation (1864) Mellan varje par av x lägger man ett tredjegradspolynom, vars värden resp. derivator är desamma i ändpunkterna som de angänsandes. Därmed försvinner hörnen. Tredjegradspolynomet P k (x) mellan x k och x k+1 ska alltså ha egenskaperna P i (x k )=y k, P k (x k+1 )=y k+1, P k (x k )=y (x k )=d k, P k (x k+1 )=y (x k+1 )=d k+1 Vi ansätter ett tredjegradspolynom på hanterbar form: P k (x)=c 1 + c 2 (x-x k )+c 3 (x-x k ) 2 (x-x k+1 )+c 4 (x-x k )(x-x k+1 ) 2 Genom att derivera, sätta in x k och x k+1, använda h k =x k+1 -x k och y k =y k+1 -y k får vi c 1 =y k, c 2 = y k /h k, c 3 =(d k+1 -c 2 )/h k 2, c 4 =(d k -c 2 )/h k 2 Beteckningar som i Pohl, dock.. k istf.. i d istf k Yngve Sundblad Föreläsning 4 sid.10 SF 1518/19 ht 2015 9 sept.

Exempel (Pohl 4.13): Hermite, exempel x = [1 5 9]; y= [2.54 6.52 6.02]; yprim=[2.12 0.22-0.33]; Två polynom, P 1 i intervallet 1 x 5, P 2 i intervallet 5 x 9 P 1 : c 1 =y 1 =2.54, c 2 = y 1 /h 1, =(6.52-2.54)/4=0.995 c 3 =(d 2 -c 2 )/h 1 2 =(0.22-0.995)/16, c 4 =(d 1 -c 2 )/h 1 2 =(2.12-0.995)/16 P 1 (x) =2.54+0.995(x-1)+(x-1)(x-5)(1.125(x-5)-0.775(x-1))/16 Använd MATLABs symboliska algebra: syms x; P1=2.54+0.995*(x-1)+ (x-1)*(x-5)*(1.125*(x-5)-0.775*(x-1))/16; ger (199*x)/200 + (((7*x)/20-97/20)*(x - 1)*(x - 5))/16 + 309/200 P1=simplify(P1) ger (7*x^3)/320 - (139*x^2)/320 + (4677*x)/1600 + 47/1600 Yngve Sundblad Föreläsning 4 sid.11 SF 1518/19 ht 2015 9 sept.

Hermite, exempel, forts P 2 : c 1 =y 2 =6.52, c 2 = y 2 /h 2, =(6.02-6.52)/4=-0.125 c 3 =(d 3 -c 2 )/h 2 2 =(-0.33+0.125)/16, c 4 =(d 2 -c 2 )/h 2 2 =(0.22+0.125)/16 P 2 (x) =6.52-0.125(x-5)+(x-5)(x-9)(0.345(x-9)-0.205(x-5))/16 Använd MATLABs symboliska algebra: P2=simplify(6.52-0.125*(x-5)+(x-5)*(x-9)* (0.345*(x-9)-0.205*(x-5))/16) ger (7*x^3)/800 - (101*x^2)/400 + (1671*x)/800 + 259/200 ezplot(p1,[1,9]) ger den blå hold on ezplot(p2,[1,9]) ger den röda Kurvorna går mjukt över i varandra för x=5 (mitten) Yngve Sundblad Föreläsning 4 sid.12 SF 1518/19 ht 2015 9 sept.

Kubiska splines I skepps-, flyg-, tåg- och bilbranschen behöver man mjuka kurvor där också andraderivatorna är kontinuerliga. Detta löste man med elastiska kurvlinjaler (eng. spline, svenska ri) som med god noggrannhet visar sig styckvis likna tredjegradspolynom. Med Hermite-interpolation med derivatorna ersatta: y (x k )= d k = y k /h k )=d k och andraderivatorna kontinuerliga och andraderivatan=0 i kanterna får man ett tridiagonalt ekvationssystem, som ger värdena till en spline (se Pohl 4.14) Yngve Sundblad Föreläsning 4 sid.13 SF 1518/19 ht 2015 9 sept.

Hermite och splines i MATLAB I MATLAB finns funktionen pchip - Piecewise Cubic Hermite Interpolating Polynomial som ger yi-värdena för x-värdena i xi om den anropas för givna x- och y-vektorer med Herm = pchip(x,y,x), där Herm sätts till interpolerade värdena för X-vektorn och för funktionen spline Ri = spline(x, y, X) ger Ri värdena för X-vektorn av den splinekurva som definieras av x och y Yngve Sundblad Föreläsning 4 sid.14 SF 1518/19 ht 2015 9 sept.

Överkurs I NAM (Eriksson), avsnitt 3.4-3.7 beskrivs för interpolation 3.4 Hackigheter i kurvan genom illa-konditionering 3.5 Experimentell störningsanalys 3.6 Polynommultiplikation genom interpolation 3.7 Flerdimensionell interpolation Det ingå inte i kursen och kommer inte på tentan, men är läsvärt för speciellt intresserade. Yngve Sundblad Föreläsning 4 sid.15 SF 1518/19 ht 2015 9 sept.