Interpolation og approksimation, 2003

Kursusholder: Jesper Møller, Institut for Matematiske Fag, Aalborg Universitet (jm@math.auc.dk; www.math.auc.dk/~jm).

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

Torsdag 4. september gennemgås side 1-15 (vi koncentrerer os hovedsagelig om side 2-3 og side 7-10) i Jens Henrik Badsbergs noter "Franske kurver" om interpolation og approximation. Noterne kan downloades her, hvor der også kan downloades et program, der illustrerer de forskellige metoder, som omhandles i noterne. Jeg vil ikke komme videre ind på dette program - i stedet skal vi bruge matlab til at løse de praktiske øvelser. Vi starter med side 7-10 og dernæst Afsnit 2.1 (side 2-3). Side 11-15 er selvstændig læsning, hvis man har lyst (jeg vil kommentere nogle trykfejl). Endelig, i stedet for Afsnit 2.2-2.4 (side 3-6), lægger vi mere vægt på at gennemgå Rasmus P. Waaagepetersens og mit notesæt "Lidt om plane kurver og geometrisk kontinuitet".

NB: Jens Henrik Badsbergs noter 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).

Opgaver: I bør både lave de teoretiske og computer opgaverne, da begge typer af opgaver bidrager med en forståelse af stoffet.

Teoretiske opgaver: Opgave 3.1 side 29 i "Franske kurver".

Computer opgaver:
1) Kig på matlab koden til tegning af kurver givet ved parameterfremstillinger. 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.
2) Modificer koden til polynomiel interpolation og approximation, så der i stedet bruges et 4. grads polynomium til approksimation.
3) Læs opgave 3.11 side 30 i "Franske kurver" - bemærk at et plan er givet ved ligningen z=a+bx+cy - diskuter nu, hvordan I ville lave et matlab program til løsning af opgaven.

Mini-modul 2

Mandag 8. september indleder vi med at repetere side 1-4 i "Lidt om plane kurver og geometrisk kontinuitet" og dernæst gennemgås resten af disse noter. Så regner vi opgaver (se nedenfor). Endelig, i den udstrækning der er tid til det, ser vi på kubiske splines (side 16-27 i "Franske kurver").

Teoretiske og computer opgaver:
1) Kig på matlab koden til tegning af kurver givet ved parameterfremstillinger. 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.
2) Opgave 2.1. side 28 i "Franske kurver" - afgør også om den tilsvarende kurve i punktet (0,0) er glat?
3) "Opgave i splines og geometrisk kontinuitet".

Mini-modul 3

Torsdag 11. september indleder vi med at løse opgave 1) og 2) nedenfor. Dernæst, efter en kort repetetion af kubiske splines, er emnet dels B-splines (side 33-43 i "Franske kurver" - men jeg gå let henover disse sider, der er ret så tekniske, og vil i stedet forsøge at give en mere enkel fremstilling) - og dels hvorledes FFT (fast Fourier transform) kan bruges til interpolation/approximation (dette emne er ikke behandlet i "Franske kurver", så jeg vil dele nogle noter ud). Endelig løser vi opgave 3) og 4) nedenfor.

På side 38 i "Franske kurver" 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. Og ligeså i de otte linier lige efter (127).

Teoretiske og computer opgaver:
1) Se på matlab-koderne klotoide.m, xcoord og ycoord og svar på spørgsmålet i klotoide.m.
2) Som et simplere alternativ til klotoiden 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).
3) Opgave 5.4 i "Franske kurver". Koncentrer jer om at diskutere, hvordan man kan løse opgaven (det vil nok tage for lang tid at regne tingene ud i hånden), og forstå matlab-koden i detaljer (I kan her bruge matlabs help).
4) Opgave 5.7 i "Franske kurver" (igen koncentrer jer om at diskutere, hvordan man kan løse opgaven, og forstå matlab-koden i detaljer). Prøv også at interpolere cirklen i opgave 5.7 vha. matlabs interpft-funktion (I kan her bruge circlefft.m). 

Kommentar til opgave 5.7: man kan her udnytte, at matlab-funktionen spline kan lave splines for vektorfunktioner (parameterfremstillinger). Det kan man så bruge til at tegne f.eks. konturkurver med. I den 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.

Her er et fft-program som bliver benyttet ved forelæsningen: fftgraf.m.

Mini-modul 4

Mandag 15. september indleder vi med kort at se på tegning af konturplot og interpolation vha. triangulering (side 45-47 i Franske kurver) og vha. kerneudglatning (side 66 i Franske kurver). Dernæst gennemgås kort afsnit 3.3-3.4 (side 8-10) i Franske kurver. Endelig er emnet kriging - eller på dansk: mindste kvadraters lineære prediktion (side 48-54 i Franske kurver). Vi slutter af med at løse følgende opgave.

Opgave: Vi betragter et datasæt med højdemålinger, hvor (x,y)-koordinaterne er i System 34 og højderne er forhold til dansk normal nul. I forbindelse med følgende spørgsmål bør I grundigt studere og diskutere de matlab programmer som down loades.

  1. Konstruer en Delaunay-triangulering af højde-datasættet vha. del.m. I forbindelse med den sidste figur programmet producerer prøv at bruge matlabs rotate-funktion - den er meget anvendelig til at visualisere højdemålingerne.
  2. Interpoler data ved dels lineær interpolation indenfor hver Delaunay-triangel og dels mindste kvadraters metode for (noget der næsten er) en bikubisk overflade vha. flade.m.
  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 kovariansfunktionen mellem to punkter s og t er givet ved  henholdsvis Aexp(-((s-t)/B)^2) og Aexp(-|s-t|/B) (her er et matlab program). Prøv at se, hvad der sker, når A og B varieres.

Mini-modul 5

Mandag 22. september repeterer og fortsætter vi med kriging. De nye emner 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 i Franske kurver.

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 ?


Last modified: Tue Sep 16 16:44:26 MEST 2003