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

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

Interpolation. 8 december 2014 Sida 1 / 20

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

TANA17 Matematiska beräkningar med Matlab

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

TANA19 NUMERISKA METODER

Föreläsning 5. Approximationsteori

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

Kurvanpassning. Kurvanpassning jfr lab. Kurvanpassning jfr lab

Interpolation Modellfunktioner som satisfierar givna punkter

Kurvor och ytor. Gustav Taxén

15 februari 2016 Sida 1 / 32

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

TAIU07 Matematiska beräkningar med Matlab

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

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

3.6 De klassiska polynomens ortogonalitetsegenskaper.

Sammanfattning (Nummedelen)

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.

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

Numerisk Analys, MMG410. Lecture 12. 1/24

Polynomanpassning i MATLAB

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

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.

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

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

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

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

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

Omtentamen i DV & TDV

Parametriserade kurvor

Numerisk Analys, MMG410. Lecture 13. 1/58

Partiella differentialekvationer av första ordningen

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

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

Linjära ekvationssystem

Lennart Carleson. KTH och Uppsala universitet

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

Tentamen i Teknisk-Vetenskapliga Beräkningar

HANDLEDNING TILL LABORATION I GEOMETRI

Minsta-kvadratmetoden

Fö4: Kondition och approximation. Andrea Alessandro Ruggiu

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

Minsta kvadratmetoden

1.1 MATLABs kommandon för matriser

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

1 Konvexa optimeringsproblem grundläggande egenskaper

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

DATORLABORATION FÖR KURSEN ENVARIABELANALYS 2

TANA17 Matematiska beräkningar med Matlab

Rapportexempel, Datorer och datoranvändning

TMA226 datorlaboration

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

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

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

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

Optimering med bivillkor

Linjär Algebra och Numerisk Analys TMA 671, Extraexempel

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

SF1669 Matematisk och numerisk analys II Bedömningskriterier till tentamen Torsdagen den 4 juni 2015

TMV036 Analys och linjär algebra K Kf Bt, del C

8. Euklidiska rum 94 8 EUKLIDISKA RUM

Optimeringsproblem. 1 Inledning. 2 Optimering utan bivillkor. CTH/GU STUDIO 6 TMV036c /2015 Matematiska vetenskaper

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

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

Gamla tentemensuppgifter

Omtentamen i DV & TDV

Sammanfattning av ordinära differentialekvationer

5B1817 Tillämpad ickelinjär optimering. Metoder för problem utan bivillkor, forts.

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

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

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 2

Flervariabelanalys E2, Vecka 5 Ht08

1 Kvadratisk optimering under linjära likhetsbivillkor

TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA671

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

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Tentamen i tmv036c och tmv035c, Analys och linjär algebra C för K, Kf och Bt A =, = det(a λi) = e 2t + c 2. x(t) = c 1. = c 1.

SF1624 Algebra och geometri

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

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Fredag 30 augusti 2002 TID:

AB2.4: Kurvintegraler. Greens formel i planet

9.3. Egenvärdesproblem

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

SF1633, Differentialekvationer I Tentamen, torsdagen den 7 januari Lösningsförslag. Del I

Om existens och entydighet av lösningar till ordinära differentialekvationer

Moment 4.11 Viktiga exempel 4.32, 4.33 Övningsuppgifter Ö4.18-Ö4.22, Ö4.30-Ö4.34. Planet Ett plan i rummet är bestämt då

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

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

Tillämpningar av integraler: Area, skivformeln för volymberäkning, båglängd, rotationsarea, integraler och summor

Isometrier och ortogonala matriser

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

TATA42: Föreläsning 9 Linjära differentialekvationer av ännu högre ordning

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

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

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

Moment Viktiga exempel Övningsuppgifter I Ö5.1b, Ö5.2b, Ö5.3b, Ö5.6, Ö5.7, Ö5.11a

x + y z = 2 2x + 3y + z = 9 x + 3y + 5z = Gauss-Jordan elemination ger: Area = 1 2 AB AC = 4. Span(1, 1 + x, x + x 2 ) = P 2.

MAA7 Derivatan. 2. Funktionens egenskaper. 2.1 Repetition av grundbegerepp

Transkript:

TANA09 Föreläsning 8 Approximerande Splines B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor. Exempel Parametriska Kurvor. Ritprogram. Beziér kurvor. Design av kurvor och ytor. Tillämpning - Matematisk typografi. 10 december 2014 Sida 1 / 29

Kubiska splines s 1 s 2 s 3 s 4 x 1 x 2 x 3 x 4 x 5 Definition En funktion s(x) är en 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 ]. 10 december 2014 Sida 2 / 29

Lemma Mängden kubiska splines S, med noder x 1,...,x n, utgör ett linjärt rum av dimension n+2. Hittar vi n+2 linjärt oberoende kubiska spline funktioner har vi en bas för rummet. Hur skall en lämplig uppsättning basfunktioner väljas? Man kan på liknande sätt bilda rum av linjära eller kvadratiska splines men det används nästan aldrig. 10 december 2014 Sida 3 / 29

B-Splines Sats Låt x 1,...,x n vara givna noder. Till varje intervall [x i, x i+4 ] finns en kubisk spline funktion B i (x) med egenskaperna 1. B i (x) = 0 för x x i och x x i+4. 2. B i (x i+1 ) = B i (x i+3 ) = 1/6 och B i (x i+2 ) = 2/3. Denna funktion kallas för den kubiska B-spline funktionen. Sats Låt x 2, x 1,...,x n+2, x n+3 vara noder. Om{B i (x)} n 1 i= 2 är kubiska B-splines gäller att de bildar en bas för rummets och n 1 i= 2 B i (x) = 1, x 1 < x < x n. 10 december 2014 Sida 4 / 29

0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0.1 2 1.5 1 0.5 0 0.5 1 1.5 2 Exempel Låt B(x) vara den naturliga kubiska spline funktion som interpolerar tabellen, x -2-1 0 1 2 B(x) 0 1/6 2/3 1/6 0 Om noderna x 2,...,x n+3 är ekvidistanta, med steglängd h=x 2 x 1, så gäller att B i (x) = B((x x i )/h). 10 december 2014 Sida 5 / 29

x 2 x 1 x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 Alla B-spline basfunktioner som behövs för intervallet x 1 < x < x 5. Totalt 7 basfunktioner behövs för att beskriva rummets. Vi har alltså S = span(b 2 (x), B 1 (x),...,b 4 (x)). 10 december 2014 Sida 6 / 29

Minsta Kvadrat Anpassning med Splines Exempel Vi vill studera koncentrationen av ett visst kemiskt ämne i ett vattendrag. Vi har därför placerat ut ett instrument som mäter koncentrationen fyra gånger dagligen, under 100 dagar. Vi är intresserade av att behandla den uppmätta signalen teoretiskt, exempelvis vill vi kunna beräkna derivator vid olika tid punkter. Mätningarna innehåller även en del slumpmässiga mätfel. Dessa vill vi i möjligaste mån eliminera. 3 2.8 2.6 Koncentration [g/m 3 ] 2.4 2.2 2 1.8 1.6 1.4 1.2 1 0 10 20 30 40 50 60 70 80 90 100 Tid [dag] 10 december 2014 Sida 7 / 29

Vi väljer ett grovt grid x 2 < x 1 < < x N+3 sådant att x 1 = 0 och x N = 100. Antalet grid punkter bestämmer hur mycket detaljer spline approximationen kommer att innehålla. Ansats F(t) s(x) = N 1 c i B i (x). i= 2 Vi väljer nu ett fint grid 0=x 1 <x 2 <...<x 1 <x n=100, som svarar mot mätningarna, dvs F i = F(x i ) är kända. Formulera problemet att bestämma koefficienterna c som ett överbestämt ekvationssystem Ac = F. 10 december 2014 Sida 8 / 29

3 2.8 2.6 Koncentration [g/m 3 ] 2.4 2.2 2 1.8 1.6 1.4 1.2 1 0 10 20 30 40 50 60 70 80 90 100 Tid [dag] Resultatet med steglängd h 1 = 5 dagar, eller 23 B-spline basfunktioner. Approximationen är bra förutom nära de två spikarna! Utöka med ett par extra basfunktioner med h 2 = 2 nära spikarna. 10 december 2014 Sida 9 / 29

3 2.8 2.6 Koncentration [g/m 3 ] 2.4 2.2 2 1.8 1.6 1.4 1.2 1 0 10 20 30 40 50 60 70 80 90 100 Tid [dag] Approximation med totalt 29 basfunktioner. Förutom de 23 funktionerna med h 1 = 5 används 3 basfunktioner med h 2 = 2 nära varje spik. Mycket flexibelt sätt att approximera en vektor innehållande mätvärden med en deriverbar funktion. Styckvis polynom gör det enkelt att beräkna derivator eller integraler. 10 december 2014 Sida 10 / 29

Ett enkelt Ritprogram De flesta ritprogram, exempelvis xfig, innehåller en funktion där vi ritar krökta linjer genom att klicka på ett antal punkter. Detta är inte en funktions kurva y = f(x). Hur skall vi göra istället? 10 december 2014 Sida 11 / 29

Parametriska kurvor Definition En parametrisk kurva i planet ges av s(t) = (x(t), y(t)) Ț a < t < b. Varje kurva i planet beskrivs alltså av två funktioner x(t) och y(t). För en kurva ir 3 tillkommer en tredje funktion z(t). 10 december 2014 Sida 12 / 29

Exempel Vi vill att en kurva s(t) skall interpolera ett antal givna punkter. P 4 = (x 4, y 4 ) T P 3 = (x 3, y 3 ) T P 1 = (x 1, y 1 ) T P 2 = (x 2, y 2 ) T Kurvan s(t) skall interpolera punkterna P 1, P 2, P 3, och P 4. 10 december 2014 Sida 13 / 29

Välj ett parameter interval a = t 1 t t 4 = b och bestäm två kubiska spline funktioner som interpolerar tabellerna och t t 1 t 2 t 3 t 4 x(t) x 1 x 2 x 3 x 4 t t 1 t 2 t 3 t 4 y(t) y 1 y 2 y 3 y 4 Då gäller s(t i ) = (x(t i ), y(t i )) T = (x i, y i ) T = P i. Kurvan s(t), a t b, interpolerar de givna punkterna. 10 december 2014 Sida 14 / 29

Exempel Hitta en kurva som interpolerar punkterna använd naturliga ändpunktsvillkor. t 0 1 3 5 x(t) 8.3 6.0 2.1 2.2 y(t) 4.8 2.8 3.7 7.3 I MATLAB kan ginput() användas för att klicka ut punkter och enkelt skapa tabellen. 10 december 2014 Sida 15 / 29

Givet vektorer t, x, och y skriver vi >> px = csape(t,x, variational ); >> py = csape(t,y, variational ); >> tt=0:0.1:5; >> plot( ppval(px,tt), ppval(py,tt), b- ); >> plot( x,y, r+ ); Resultatet blir en kurva som interpolerar tabellen 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 december 2014 Sida 16 / 29

Inverkan av ändpunktsvillkoren Definition Kurvans tangent i punkten s(t) är s (t) = (x (t), y (t)) T. Kurvans tangent visar kurvans riktning i en viss punkt. Exempel Använd samma tabell som tidigare men välj s (0) = (1, 1) T, och s (5) = ( 2, 1) T. Vad händer? 10 december 2014 Sida 17 / 29

Givet vektorer t, x, och y skriver vi nu >> px = csape(t,x, complete,[1-2]); >> py = csape(t,y, complete,[-1 1]); >> tt=0:0.1:5; >> plot( ppval(px,tt), ppval(py,tt), b- ); >> plot( x,y, r+ ); 8 7 6 5 4 3 2 2 3 4 5 6 7 8 9 Kurvans tangent riktning ändras i ändpunkterna! 10 december 2014 Sida 18 / 29

Beziér kurvor Definition En Beziér kurva (eller yta) bestäms av ett antal styrpunkter. Exempel P 2 P 2 P 1 P 1 P 3 En linjär Beziér kurva bestäms av två styr punkter. En kvadratisk kurva bestäms av tre punkter. Beziér kurvor är approximerande splines. 10 december 2014 Sida 19 / 29

Kubiska Beziér kurvor En kubisk Beziér kurva ges av fyra styrpunkter. P 2 P 3 P 4 P 1 Kurvan ges av uttrycket s(t) = (1 t) 3 P 1 + 3(1 t) 2 tp 2 + 3(1 t)t 2 P 3 + t 3 P 4. Lemma En kubisk Beziér kurva s(x) interpolerar den första och sista styrpunkten. Alltså gäller s(0) = P 1 och s(1) = P 4. 10 december 2014 Sida 20 / 29

Definition Det konvexa höljet som bildas av punkterna {P i } n i=1 är alla punkter som kan skrivas som konvexa linjär kombinationer av punkterna {P i } n i=1. Exempel Vad blir det konvexa höljet av punkterna ( ) ( ) 0 2 P 1 =, P 0 2 =, och P 1 3 = ( 1 3 ). Sats En Beziér kurva ligger helt inom det konvexa höljet som bildas av dess styrpunkter. 10 december 2014 Sida 21 / 29

Sats För en Beziér kurva med styr punkter {P i } n i=1 gäller att kurvans tangent i start, respektive slutpunkt, ges av s (0) = α(p 2 P 1 ), och s (1) = α(p n P n 1 ), därα > 0. Vi kan allstå enkelt styra kurvans lutning i ändpunkterna. P 2 P 3 P 7 P 4 P 1 P 5 P 6 Två kubiska Beziér kurvor som ges av styrpunkter {P 1, P 2, P 3, P 4 } respektive {P 4, P 5, P 6, P 7 }. Interpolationspunkten P 4 är gemensam. Villkoret P 4 P 3 =P 5 P 4 garanterar att kurvans tangent är kontinuerlig. 10 december 2014 Sida 22 / 29

Vektoriserade Fonter För att ett dokument skall kunna tryckas på olika skrivare med varierande upplösning måste vi kunna generera bitmap bilder som representerar bokstäver i olika upplösning. Exempel Tre bokstäver från Computer Modern Hur skall bokstävernas form representeras? 10 december 2014 Sida 23 / 29

Exempel För att representera bokstaven e inför vi ett antal styrpunkter på kurvan. 50 50 100 100 150 150 200 200 250 250 300 300 350 350 50 100 150 200 250 300 50 100 150 200 250 300 Välj först ett par interpolationspunkter och sedan extra styrpunkter. 10 december 2014 Sida 24 / 29

Välj först interpolationspunkterna och plotta linjestycket. >> P=[ 74 276 179 172 172 24]; >> plot( P(1,1:2),P(1,1:2) Vi väljer sedan styrpunkter >> C = [ 74 105 255 276] 110 24 24 110]; och kan exempelvis rita en streckad linje mellan interpolationspunkt P 1 och styrpunkt C 1 med >> plot([p(1,1),c(1,1)],[p(2,1),c(2,1)], r-- ) 10 december 2014 Sida 25 / 29

50 50 100 100 150 150 200 200 250 250 300 300 350 350 50 100 150 200 250 300 50 100 150 200 250 300 Slutresultatet med eller utan styrpunkterna utritade. Totalt behövs 2 Linjestycken och 11 Beziér kurvor för att beskriva bokstaven. Font paket är inte särskilt stora. 10 december 2014 Sida 26 / 29

Beziérytor Inför interpolationspunkter P 1, P 2 och P 3 samt styrpunkter C 1, C 2 och C 3. En kvadratisk yta ges av uttrycket s(x, y) = P 1 x 2 + P 2 y 2 + P 3 (1 x y) 2 + C 1 2xy+ C 2 2x(1 x y)+c 3 2y(1 x y), där 0 x 1, 0 < y 1 och x+y 1. Välj interpolations- och styrpunkter Rita sedan upp ytan. P=[0 0 0 ; 0 5 1 ; 7 1 1 ] ; C=[0 3 2 ; 4 1 1 ; 5 4 2] ; 10 december 2014 Sida 27 / 29

1.5 1 0.5 0 1 0 1 0 1 2 3 4 5 6 7 5 4 3 2 Styrpunkerna ligger högre (i z-koordinat) än interpolationspunkerna vilket ger ytan en krökning. 10 december 2014 Sida 28 / 29

Sammanfattning Mängden spline funktioner med givna noder är ett linjärt rum. Finns olika basfunktioner (exempelvis B-splines). Kan göra minsta kvadrat anpassningar. Splinefunktioner kan användas för att beskriva parametriska kurvor i planet eller rummet. Vanligt i ritprogram. Standard metoden att beskriva mera komplicerade kurvor och ytor är att använda Beziér kurvor. Definition av vektoriserade fonter använder Beziér kurvor. 10 december 2014 Sida 29 / 29