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

Relevanta dokument
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

3.6 De klassiska polynomens ortogonalitetsegenskaper.

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.

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,

Omtentamen i DV & TDV

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

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Numerisk Analys, MMG410. Lecture 13. 1/58

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

Parametriserade kurvor

Partiella differentialekvationer av första ordningen

% 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ösningar till Tentamen i Beräkningsvetenskap II, 5.0 hp, Del A. 1. (a) ODE-systemet kan skrivas på formen

Linjära ekvationssystem

Lennart Carleson. KTH och Uppsala universitet

TANA17 Matematiska beräkningar med Matlab

Tentamen i Teknisk-Vetenskapliga Beräkningar

Minsta-kvadratmetoden

TMA226 datorlaboration

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

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

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

1.1 MATLABs kommandon för matriser

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

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

DATORLABORATION FÖR KURSEN ENVARIABELANALYS 2

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

Omtentamen i DV & TDV

Gamla tentemensuppgifter

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

Rapportexempel, Datorer och datoranvändning

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

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

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

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

Linjär Algebra och Numerisk Analys TMA 671, Extraexempel

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

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

HANDLEDNING TILL LABORATION I GEOMETRI

8. Euklidiska rum 94 8 EUKLIDISKA RUM

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

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

1 Konvexa optimeringsproblem grundläggande egenskaper

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

SF1625 Envariabelanalys

Sammanfattning av ordinära differentialekvationer

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

SF1625 Envariabelanalys

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

SF1625 Envariabelanalys Lösningsförslag till tentamen

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

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

Vektorgeometri för gymnasister

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

Oändligtdimensionella vektorrum

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

Optimering med bivillkor

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

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

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.

Mer om generaliserad integral

Dagens ämnen. Linjära ekvationssystem: Successiv elimination Vektorer Definitionen Grundläggande räkneoperationer Bas och koordinater Ortsvektorer

SF1624 Algebra och geometri

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

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

AB2.4: Kurvintegraler. Greens formel i planet

9.3. Egenvärdesproblem

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

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

November 17, 2015 (1) en enda lsg. Obs det A = 1 0. (2) k-parameter lsg. Obs det A = 0. k-kolonner efter sista ledande ettan

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

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

Transkript:

TANA09 Föreläsning 8 Kubiska splines Approximerande Splines s s s s 4 B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor. x x x x 4 x 5 Exempel Parametriska Kurvor. Ritprogram. Beziér kurvor. Design av kurvor och ytor. Tillämpning - Matematisk typografi. Definition En funktion s(x) är en kubisk spline med noder x,..., x n om. s(x), s (x), och s (x) är kontinuerliga på [x, x n ].. s(x) ges av ett tredjegrads polynom på varje delintervall [x i, x i+ ]. 4 december 07 Sida / 9 4 december 07 Sida / 9 B-Splines Lemma Mängden kubiska splines S, med noder x,..., x n, utgör ett linjärt rum av dimension n+. Hittar vi n + 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. Sats Låt x,..., x n vara givna noder. Till varje intervall [x i, x i+4 ] finns en kubisk spline funktion B i (x) med egenskaperna. B i (x) = 0 för x x i och x x i+4.. B i (x i+ ) = B i (x i+ ) = /6 och B i (x i+ ) = /. Denna funktion kallas för kubiska B-spline. Sats Låt x, x,..., x n+, x n+ vara noder. Kubiska B-splines {B i (x)} n bildar en bas för rummet S och n i= i= B i (x) =, x < x < x n. 4 december 07 Sida / 9 4 december 07 Sida 4 / 9

.5 0.5 0 0.5.5 0.7 0.6 0.5 0.4 0. 0. 0. 0 0. x x x 0 x x x x 4 x 5 x 6 x 7 x 8 Exempel Låt B(x) vara den naturliga kubiska spline funktion som interpolerar tabellen, x - - 0 B(x) 0 /6 / /6 0 Om noderna x,..., x n+ är ekvidistanta, med steglängd h=x x, så gäller att B i (x) = B((x x i )/h). 4 december 07 Sida 5 / 9 Alla B-spline basfunktioner som behövs för intervallet x < x < x 5. Totalt 7 basfunktioner behövs för att beskriva rummet S. Vi har alltså S = span(b (x), B (x),..., B 4 (x)). 4 december 07 Sida 6 / 9 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 00 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. Vi väljer ett grovt grid x < x < < x N+ sådant att x = 0 och x N = 00. Antalet grid punkter bestämmer hur mycket detaljer spline approximationen kommer att innehålla. Ansats F(t) s(x) = N i= c i B i (x). Koncentration [g/m ].8.6.4..8.6.4. 0 0 0 0 40 50 60 70 80 90 00 Tid [dag] Vi väljer nu ett fint grid 0=x <x <...<x <x n =00, 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. 4 december 07 Sida 7 / 9 4 december 07 Sida 8 / 9

0 0 0 0 40 50 60 70 80 90 00 Koncentration [g/m ].8.6.4..8.6.4. Tid [dag] Koncentration [g/m ].8.6.4..8.6.4. 0 0 0 0 40 50 60 70 80 90 00 Tid [dag] Resultatet med steglängd h = 5 dagar, eller B-spline basfunktioner. Approximationen är bra förutom nära de två spikarna! Utöka med ett par extra basfunktioner med h = nära spikarna. 4 december 07 Sida 9 / 9 Approximation med totalt 9 basfunktioner. Förutom de funktionerna med h = 5 används basfunktioner med h = 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. 4 december 07 Sida 0 / 9 Ett enkelt Ritprogram Parametriska kurvor De flesta ritprogram, exempelvis xfig, innehåller en funktion där vi ritar krökta linjer genom att klicka på ett antal punkter. 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 i R tillkommer en tredje funktion z(t). Detta är inte en funktions kurva y = f(x). Hur skall vi göra istället? 4 december 07 Sida / 9 4 december 07 Sida / 9

Exempel Vi vill att en kurva s(t) skall interpolera ett antal givna punkter. P 4 = (x 4, y 4 ) T Välj ett parameter interval a = t t t 4 = b och bestäm två kubiska spline funktioner som interpolerar tabellerna t t t t t 4 x(t) x x x x 4 P = (x, y ) T P = (x, y ) T P = (x, y ) T och t t t t t 4 y(t) y y y y 4 Kurvan s(t) skall interpolera punkterna P, P, P, och P 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. 4 december 07 Sida / 9 4 december 07 Sida 4 / 9 Givet vektorer t, x, och y skriver vi Exempel Hitta en kurva som interpolerar punkterna använd naturliga ändpunktsvillkor. t 0 5 x(t) 8. 6.0.. y(t) 4.8.8.7 7. I MATLAB kanginput() användas för att klicka ut punkter och enkelt skapa tabellen. >> px = csape(t,x, variational ); >> py = csape(t,y, variational ); >> tt=0:0.: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 4 5 6 7 8 9 4 december 07 Sida 5 / 9 4 december 07 Sida 6 / 9

Inverkan av ändpunktsvillkoren Givet vektorer t, x, och y skriver vi nu Definition Kurvans tangent i punkten s(t) är s (t) = (x (t), y (t)) T. >> px = csape(t,x, complete,[ -]); >> py = csape(t,y, complete,[- ]); >> tt=0:0.:5; >> plot( ppval(px,tt), ppval(py,tt), b- ); >> plot( x,y, r+ ); 8 7 Kurvans tangent visar kurvans riktning i en viss punkt. Exempel Använd samma tabell som tidigare men välj s (0) = (, ) T, och s (5) = (, ) T. Vad händer? 6 5 4 4 5 6 7 8 9 4 december 07 Sida 7 / 9 Kurvans tangent riktning ändras i ändpunkterna! 4 december 07 Sida 8 / 9 Beziér kurvor Definition En Beziér kurva (eller yta) bestäms av ett antal styrpunkter. Kubiska Beziér kurvor En kubisk Beziér kurva ges av fyra styrpunkter. P P Exempel P 4 P P P P P P Kurvan ges av uttrycket s(t) = ( t) P + ( t) tp + ( t)t P + t P 4. 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. 4 december 07 Sida 9 / 9 Lemma En kubisk Beziér kurva s(x) interpolerar den första och sista styrpunkten. Alltså gäller s(0) = P och s() = P 4. 4 december 07 Sida 0 / 9

Definition Det konvexa höljet som bildas av punkterna {P i } n i= är alla punkter som kan skrivas som konvexa linjär kombinationer av punkterna {P i } n i=. Exempel Vad blir det konvexa höljet av punkterna ( ) ( ) ( 0 P =, P 0 =, och P = ). Sats En Beziér kurva ligger helt inom det konvexa höljet som bildas av dess styrpunkter. Sats För en Beziér kurva med styr punkter {P i } n i= gäller att kurvans tangent i start, respektive slutpunkt, ges av s (0) = α(p P ), och s () = α(p n P n ), där α > 0. Vi kan allstå enkelt styra kurvans lutning i ändpunkterna. P P P P 4 P 5 P 6 Två kubiska Beziér kurvor som ges av styrpunkter {P, P, P, P 4 } respektive {P 4, P 5, P 6, P 7 }. Interpolationspunkten P 4 är gemensam. P 7 Villkoret P 4 P =P 5 P 4 ger kontinuerlig tangent. 4 december 07 Sida / 9 4 december 07 Sida / 9 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 För att representera bokstaven e inför vi ett antal styrpunkter på kurvan. 50 50 Exempel Tre bokstäver från Computer Modern 00 50 00 50 00 00 50 50 00 00 50 50 50 00 50 00 50 00 50 00 50 00 50 00 Hur skall bokstävernas form representeras? Välj först ett par interpolationspunkter och sedan extra styrpunkter. 4 december 07 Sida / 9 4 december 07 Sida 4 / 9

Välj först interpolationspunkterna och plotta linjestycket. >> P=[ 74 76 79 7 7 4]; >> plot( P(,:),P(,:) Vi väljer sedan styrpunkter >> C = [ 74 05 55 76] 0 4 4 0]; 50 00 50 00 50 00 50 50 00 50 00 50 00 50 och kan exempelvis rita en streckad linje mellan interpolationspunkt P och styrpunkt C med >> plot([p(,),c(,)],[p(,),c(,)], r-- ) 50 00 50 00 50 00 Slutresultatet med eller utan styrpunkterna utritade. 50 00 50 00 50 00 Totalt behövs Linjestycken och Beziér kurvor för att beskriva bokstaven. Font paket är inte särskilt stora. 4 december 07 Sida 5 / 9 4 december 07 Sida 6 / 9 Beziérytor Inför interpolationspunkter P, P och P samt styrpunkter C, C och C..5 En kvadratisk yta ges av uttrycket s(x, y) = P x + P y + P ( x y) + C xy+ C x( x y)+c y( x y), 0.5 där 0 x, 0 < y och x+y. 0 Välj interpolations- och styrpunkter 0 0 4 5 6 7 5 4 Rita sedan upp ytan. P=[0 0 0 ; 0 5 ; 7 ] ; C=[0 ; 4 ; 5 4 ] ; Styrpunkerna ligger högre (i z-koordinat) än interpolationspunkerna vilket ger ytan en krökning. 4 december 07 Sida 7 / 9 4 december 07 Sida 8 / 9

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. 4 december 07 Sida 9 / 9