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

Relevanta dokument
TANA19 NUMERISKA METODER

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

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

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

Interpolation Modellfunktioner som satisfierar givna punkter

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod

TANA17 Matematiska beräkningar med Matlab

Föreläsning 5. Approximationsteori

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

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

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

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Kurvanpassning. Kurvanpassning jfr lab. Kurvanpassning jfr lab

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

Tentamen i Teknisk-Vetenskapliga Beräkningar

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

Linjär Algebra och Numerisk Analys TMA 671, Extraexempel

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

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

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

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

6 Derivata och grafer

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

TAIU07 Matematiska beräkningar med Matlab

Laboration 3. Funktioner, vektorer, integraler och felskattning

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

Rapportexempel, Datorer och datoranvändning

TANA17 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

Polynomanpassning i MATLAB

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

Laboration 3. Funktioner, vektorer, integraler och felskattning

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.

Envariabelanalys 5B1147 MATLAB-laboration Derivator

2D1212 NumProg för P1, VT2006 PROJEKTUPPGIFT

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

Fö4: Kondition och approximation. Andrea Alessandro Ruggiu

Numeriska metoder för ODE: Teori

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.

Laboration 6. Ordinära differentialekvationer och glesa system

Numerisk Analys, MMG410. Lecture 12. 1/24

DATORLABORATION FÖR KURSEN ENVARIABELANALYS 2

Sammanfattning (Nummedelen)

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

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

Numerisk lösning till den tidsberoende Schrödingerekvationen.

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

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

LABORATION cos (3x 2 ) dx I =

Parametriserade kurvor

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Lösningar och kommentarer till uppgifter i 3.1

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Laboration 3. Ergodicitet, symplektiska scheman och Monte Carlo-integration

Analys av funktioner och dess derivata i Matlab.

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2

2D1250 Tillämpade numeriska metoder II

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

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

3.6 De klassiska polynomens ortogonalitetsegenskaper.

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

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

Numerisk Analys, MMG410. Lecture 13. 1/58

Matematisk analys för ingenjörer Matlabövning 3 Numerisk lösning av differentialekvationer

Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, Del A

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

Ickelinjära ekvationer

Omtentamen i DV & TDV

TMA226 datorlaboration

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

Lösningar och kommentarer till uppgifter i 2.2

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

4 Numerisk integration och av differentialekvationer

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

2 Matrisfaktorisering och lösning till ekvationssystem

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

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Introduktion till MATLAB

Numeriska metoder för ODE: Teori

Fallstudie: numerisk integration Baserad på läroboken, Case Study 19.9

Tentamen i Beräkningsvetenskap II, 5.0 hp,

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

Ma3bc. Komvux, Lund. Prov kap

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

9 Skissa grafer. 9.1 Dagens Teori

SF1625 Envariabelanalys Lösningsförslag till tentamen

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.

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

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

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

Inlämningsuppgift 4 NUM131

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

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A. e 50k = k = ln 1 2. k = ln = ln 2

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

MATEMATIK Datum: Tid: förmiddag Hjälpmedel: inga. Mobiltelefoner är förbjudna. A.Heintz Telefonvakt: Christoffer Standar, Tel.

Flervariabelanalys och Matlab Kapitel 3

TANA19 NUMERISKA METODER

Transkript:

TANA18/20 mars 2015 LAB 3. INTERPOLATION 1 Inledning Vi ska studera problemet att interpolera givna data med ett polynom och att interpolera med kubiska splinefunktioner, s(x), som är styckvisa polynom. 1.1 Innehåll Du ska 1. använda MATLAB för att interpolera givna data med ett polynom 2. studera skillnaden mellan en given funktion och en interpolerande spline 3. göra experiment för att praktiskt bestämma noggrannhetsordningen p 4. formge bokstaven S med kubisk splineinterpolation 2 Interpolation med polynom Vi vill interpolera följande punkter med ett polynom. Uppgift 2.1 Polynominterpolation x 1.0 1.5 2.0 2.5 y 2.6 3.4 0.7 0.8 Använd polyfit och polyval för att interpolera tabellen med ett trejdegradspolynom, P 3 (x). Plotta det och givna data och kontrollera att det går genom de givna datapunkterna. Ange P 3 (x). P 3 (x) = Uppgift 2.2 Andragradspolynom Använd polyfit och polyval för att anpassa ett andragradspolynom, P 2 (x) till data. Plotta det och avgör vad polyfit gav i detta fallet. 3 Splineinterpolation 3.1 Problembeskrivning För att entydigt bestämma en interpolerande splinefunktion krävs två ändpunktsvillkor. Vi ska mer i detalj undersöka två olika val av ändpunktsvillkor. s (a) = s (b) = 0 (naturliga ändpunktsvillkor). Detta motsvarar den mekaniska tillämpningen med en böjlig ribba (en så kallad ri på svenska eller spline på engelska) som går igenom de givna interpolationspunkterna. Ribban antar då en form som minimerar den potentiella energin. Man kan matematiskt visa att denna form approximativt överensstämmer med en kubisk spline med naturliga ändpunktsvillkor. 1

s (a) och s (b) väljes fritt. Om vi känner derivatorna i x = a och x = b väljs förstås s (a) = f (a) och s (b) = f (b). Dessa kallas rätta ändpunktsvillkor. Vi ska se hur valet av ändpunktsvillkor påverkar felet vid interpolationen. Vi kommer att begränsa oss till det ekvidistanta fallet där alltså x i+1 x i = h = konstant. Därför kommer antalet delintervall, n, att bestämma steglängden h = (b a)/n. Vi ska även undersöka hur felet vid spline-interpolation beror av steglängden h. 3.2 Ändpunktsvillkorens inverkan Låt f(x) vara den funktion som ska interpoleras. Vi ska undersöka felets beroende av de valda ändpunktsvillkoren. Som testfunktion användes polynomet Uppgift 3.1 f(x) = 4 3 x4 4 3 x3 + 1 2 x2 på intervallet [ 0,1 ]. Beräkna f (0) och f (1). Dessa värden behövs då rätta ändpunktsvillkor ska användas. Beräkna även f (0) och f (1). f (0) = f (1) = f (0) = f (1) = Vi ska interpolera f(x) på intervallet [0,1] med en kubisk splinefunktion och använda h = 0.1, dvs 10 delintervall. För att utföra splineinterpolation ska MATLAB-rutinen csape användas. Den anropas enligt pn=csape(x,y, variational ) Då beräknas den naturliga spline som interpolerar tabellen x, y. För rätta randvillkor är motsvarande anrop pr=csape(x,y, complete,[yprima,yprimb]) där yprima, yprimb är numeriska värden på randvärdena. För att beräkna värdet av splinefunktionen används MATLAB-rutinen fnval. Man kan t.ex skriva (om resultatet också ska ritas), plot(xx,fnval(pn,xx)) för att plotta den naturliga splinefunktionen i punkterna xx= 0 : 0.01 : 1 (t.ex.). Uppgift 3.2 Interpolation med splines Skriv en funktionsfil fun.m eller skapa en anonym funktion i kommandofönstret med funktionen: fun=@(x) 4/3*x. 4-4/3*x. 3+x. 2/2 Skapa x=0:0.1:1 och y=fun(x) samt xx=0:0.01:1. Beräkna pn och pr enligt ovan och plotta splinefunktionerna samt använda data: plot(xx,fnval(pn,xx),xx,fnval(pr,xx),x,y, o ) Kan man se någon skillnad på kurvorna? För att tydligare se hur felet uppför sig, rita felkurvor istället: abs(fnval(pn,xx)-fun(xx)) med naturliga och rätta ändpunktsvillkor i olika bilder. Gör en skiss av bilderna. 2

Uppgift 3.3 Studera felkurvorna och besvara följande frågor. Det syns tydligt att felen är noll i noderna, dvs i kanten på varje delintervall. Ungefär var i delintervallen är felen störst? Vilken typ av ändpunktsvillkor ger genomgående de största felen och i vilket intervall erhölls maximala absoluta felet? Betrakta splinefunktionen med naturliga randvillkor. Ge en förklaring till felens variation, dvs förklara varför felen blir störst i kanterna och varför vi får olika stora fel i början och i slutet? (Ledning: Jämför andraderivatornas värden i början och slutet.). 3.3 Steglängdens inverkan En annan faktor som påverkar felet är antalet interpolationspunkter, som motsvaras av en viss steglängd h. Ju mindre steg (fler delintervall) desto mindre bör felet bli. Men hur avtar felet med avtagande steg? Använd csape för att utföra följande uppgifter. Uppgift 3.4 Datorexperiment med naturliga ändpunktsvillkor Använd naturliga ändpunktsvillkor och beräkna felen i mittpunkten av delintervallen, dvs använd x=0:0.1:1 och xx=0:0.05:1 då antalet delintervall ska vara lika med 10. Titta speciellt på det första delintervallet, ett intervall i mitten och det sista delintervallet. Fyll i beloppet av de absoluta felen i tabellen. Upprepa samma sak med antalet delintervall lika med 20 och 40. antal steglängd fel i fel i fel i i intervall h i första intervallet centrala intervallet sista intervallet 1 10 2 20 3 40 Uppgift 3.5 Tolkning av resultaten Med hjälp av resultaten ovan kan man experimentellt bestämma hur felet beror av steglängden h i de olika fallen. Felet, som är ett trunkeringsfel, eftersom beräkningsfelen kan försummas, är nämligen ungefär proportionellt mot h p, dvs R T ch p, där p bestämmer metodens noggrannhetsordning och c är oberoende av steglängden, h, men beror på x och på funktionen. Vi kan bestämma p på ett enkelt sätt genom att bilda kvoterna (sätt in R T (h) ch p och förkorta i uttrycket): R T (h i ) R T (h i /2) = 3

Uppgift 3.6 Felkvoter För in felkvoterna i tabellen nedan. första centrala sista ändpunktsvillkor i h i /h i+1 intervallet intervallet intervallet Naturliga 1 Bestäm nu p (heltal) och för in detta i tabellen. 2 första centrala sista ändpunktsvillkor intervallet intervallet intervallet Naturliga 3.4 Noggrannhetsordningen, p Det teoretiska uttrycket för trunkeringsfelet (se boken, Sats 5.10.6, sid. 139) säger att max s(x) f(x) < a x b c h4, c är en konstant där s(x) är en kubisk spline som interpolerar f(x) med rätta randvillkor. Uppgift 3.7 Slutsatser För vilket/vilka intervall ger den praktiska undersökningen av trunkeringsfelet med naturliga ändpunktsvillkor samma värde på p som teorin för rätta randvillkor anger? 3.5 Steglängdsval Med hjälp av resultaten i experimenten ovan kan en approximativ konstant c beräknas för varje delintervall. (Minsta h ger bästa approximation.) Uppgift 3.8 Beräkna steglängd Vilken steglängd ska man använda, då vi med den naturliga splinefunktionen vill ha trunkeringsfelet mindre än 10 5 på hela intervallet? Använd resultaten ovan och beräkna den steglängd, som ger ett största trunkeringsfel 10 5. Redovisa beräkningarna. h = vilket ger intervall. Uppgift 3.9 Testning Använd den framräknade steglängden (=1/antalet intervall) för att kontrollera noggrannheten. Hur stort blir det största trunkeringsfelet? 4

4 Tillämpningsexempel Matematisk typografi, dvs matematisk beskrivning av formen hos bokstäver och siffror har en lång tradition. Donald Knuth har skrivit en intressant artikel i ämnet (finns i hans bok TEX och METAFONT från 1979). Enligt Knuth är bokstaven S den svåraste att forma. Uppgiften består i att formge bokstaven S med kubisk splineinterpolation. 4.1 S-kurvan Uppgift 4.1 Handrita ett S Handrita först ett S på rutat papper. Välj exempelvis ut 7 punkter från den handritade kurvan och lagra dess x och y koordinaterna i två vektorer x och y. Välj punkterna så att avståndet, längs S-kurvan, dem emellan är ungefär lika. Här måste parametriska splines användas, dvsx = x(t) ochy = y(t) är funktioner av en monotont växande parameter t. Välj t = 1 i startpunkten och låt sedan t anta värdena 2,3,...,7. Uppgift 4.2 Bestäm en naturlig kubisk spline som interpolerar x-värdena och en som interpolerar y-värdena. Använd sedan en vektor tt=1:0.1:7 för att plotta resultatet, t.ex. plot(fnval(pnx,tt),fnval(pny,tt)), axis equal (Kommandot axis equal skalar axlarna lika och måste anges efter varje plottning). Ändra ev. indata och kör igen tills du blir nöjd med resultatet. Plotta även de utvalda 7 punkterna som stjärnor i figuren. Uppgift 4.3 Använd istället splineinterpolation med rätta randvillkor för att beräkna x(t) och y(t). Experimentera med olika start- och slut-lutningar hos kurvorna x(t) och y(t) så du får ett snyggt S. Plotta gärna tillsammans med det naturliga S:et. Redovisa dina data i tabellen: t 1 2 3 4 5 6 7 x(t) y(t) Snyggast blev det med x (1) = y (1) = x (7) = y (7) = 5