Interpolation og approksimation

Plan for de 5 minimoduler:
  1. Polynomiel interpolation. Glathed af kurver.
  2. Kubiske splines.
  3. B-splines.
  4. Kriging.
  5. Kriging/Kerne-udglatning.
Mini-modul 1

Onsdag 4. september gennemgås siderne 1-15 i Jens Henrik Badsbergs noter om interpolation og approximation. Noterne kan downloades her. Her kan også downloades et program, der illustrerer de forskellige metoder, som omhandles i noterne. Jeg vil ikke komme videre ind på dette program - i stedet skal vil bruge matlab til at løse de praktiske øvelser.

NB: noterne indeholder en del trykfejl, som kan være noget meningsforstyrrende af og til.  Her er et par stykker:

Side  2 linie 6 og definition af geometrisk kontinuitet side 5: erstat krumningsvektor med krumning. Skip evt. de 6 første linier i afsnit 2.4 - de er noget svære at finde hoved og hale i.
Side 5 ligning (8): her skal | | omkring venstresiden af ligheden.
Side 10 ligning 32: her skal indholdet i paranteserne kvadreres.
Side 10 anden linie i afsnit 4: i formlen for polynomiet skal x_n ændres til x^n (bemærk også at f(x)=p(x) i dette afsnit).

Teoretiske opgaver: 2.1, 2.5, 2.6 og 3.1 (side 28-29 i noterne). Opgave 2.5 er et eksempel på, at kontinuert første afledet ikke er nok til at sikre, at en kurve er glat.
Computer opgaver: Kig på matlab koden til tegning af kurver givet ved parameter-fremstillinger. Hvad sker der hvis vi erstatter (0.01*k) med (1/(1+0.01k)) i beregningen af spiralen ? Prøv at få spiralen til at køre med uret. Modificer koden til polynomiel interpolation og approximation så der i stedet bruges et 4. grads polynomium til approksimation.

En supplerende kommentar vedr. geometrisk kontinuitet i forhold til kontinuerte første og anden afledede: For funktioner er geometrisk kontinuitet essentielt det samme som kontinuerte første og anden afledede. Forskellen viser sig, når man betragter kurver givet ved parameter-fremstillinger. Her kan man godt have en geometrisk kontinuert kurve hvor 1. eller 2. afledede ikke er kontinuerte (jvf. et af eksemplerne til forelæsningen og opgave 2.6).

Mini-modul 2

Onsdag 11. september indleder vi med at repetere begreber vedr. glathed af kurver og betragter et praktisk eksempel (motorvejsafkørsel) i relation hertil. Dernæst ser vi på kubiske splines (siderne 16-27 i notesættet).

Opgaver: Som et simplere alternativ til klotoiden (se også xcoord og ycoord og spørgsmålet i klotoide.m) kan man konstruere afkørslen vha. et tredje grads polynomium. Lad motorvejen være givet ved liniestykket (-1,0) til (0,0) og bestem et tredjegradspolynomium der starter i (0,0), ender i (5,5), og har samme første og anden afledede som liniestykket i (0,0). Løs endvidere 3.4, 3.11, 5.4 og 5.7 (links til matlab-kode for nogle af opgaverne, men prøv først selv).

Mini-modul 3

Onsdag 18.09.02 er emnet B-splines og endvidere hvorledes FFT (fast Fourier transform) kan bruges til interpolation/approximation. På side 38 i noterne skal indekserne i-3,i-2,i-1,i for V'erne i (126) ændres til i-2,i-1,i,i+1. Tilsvarende skal henholdsvis 3 og n i (126) og (127) rettes til 2 og n-1.

Opgaver:  1) Prøv at interpolere cirklen i opgave 5.7 vha. matlabs interpft-funktion.  2) I næste uge skal vi se på interpolation vha kriging af  et datasæt med højdemålinger. XY-koordinaterne er i System 34 og højderne er forhold til dansk normal nul. Lav et matlab program, der indlæser data og konstruer som opvarmning til næste uge en bikubisk interpolation af højdemålingerne.

Her er et par fft-programmer: interpfft.m og circlefft.m.

Kommentar til opgave 5.4 sidste uge: i opg. 5.4 kan udnyttes at matlab-funktionen spline kan lave splines for vektorfunktioner (parameterfremstillinger). Det kan man så bruge til at tegne f.eks. konturkurver med. I denne forbindelse er det dog lidt ubekvemt, at man ikke kan specificere periodiske endebetingelser. I stedet er man henvist til at specificere ens værdier for de første afledede i første og sidste endepunkt. Se også help-siden i matlab.

Mini-modul 4

Mandag 30. september indleder vi med kort at se på tegning af konturplot og interpolation vha. triangulering og kerneudglatning. Dernæst er emnet kriging - eller på dansk: mindste kvadraters lineære prediktion (side 45-54 og side 66 i noterne).

Opgaver:

  1. Konstruer en Delaunay-triangulering af højde-datasættet.
  2. Interpoler data vha. lineær interpolation indenfor hver Delaunay-triangel (brug griddata) .
  3. Lad højderne 1 og -2 være målt i punkter p=1 og q=2. Udregn kriging-estimatet af højderne i punkterne t=(0:0.1:3) når kovarians funktionen mellem to punkter s og t er givet ved  henholdsvis Aexp(-((s-t)/B)^2) og Aexp(-|s-t|/B) Prøv at se, hvad der sker, når A og B varieres.
Matlab-programmer: del.m og flade.m.

Prøv at bruge rotate-funktionen i matlabs 3D-plotte funktion surf - dette er meget anvendeligt til at visualisere højdedataene.

Mini-modul 5

Onsdag 2. oktober fortsætter vi med kriging. Emnerne er kriging med observationer med målefejl, udregning af kriging prediktor og prediktionsvarians vha. Cholesky-dekomposition, trend i data og valg af kovariansfunktion. Læsestof: afsnit 13.2-13.5.

Opgaver:

  1. I program-eksemplet krige.m har der indsneget sig 5 fejl. Find fejlene og kør programmet.
  2. I programmet predikteres på et fint grid, hvad der tager temmelig lang tid (specielt når man beregner prediktionsvariansen til sidst). Prøv at modificere krige.m (og flade.m), således at der predikteres på et mindre fint grid.
  3. Med Gauss-klokken som kovariansfunktion kan der opstå numeriske problemer hvis målefejlen sættes lig nul - prøv at se hvilke konsekvenser det kan have for den  predikterede overflade.
  4. Hvordan er størrelsen af prediktionsvarianserne relateret til placeringen af data-punkterne ? Hvor ville I foretage evt. supplerende målinger ?

Her er et matlab program til spørgsmål 3 fra sidste gang.


Last modified: Tue Sep 9 10:33:42 MEST 2003