Stjerneskinn.com

Interpolasjon: Utledning av interpolasjonsformelen

Interpolasjon er prosessen der man finner tallverdier som ligger mellom tallverdier man allerede kjenner. Eksempel: Venus' nedgangstid i Oslo 1. januar er 18:15, og at nedgangstiden 11. januar er 18:58. Hva er nedgangstiden 4. januar?

En enkel form for interpolasjon er lineær interpolasjon. Der lager man en rett linje gjennom to kjente datapunkter og finner mellomliggende tallverdier ved å anta at de ligger på den rette linjen. Hvis avstanden mellom x-verdiene er et rundt tall, for eksempel 10, og tallene man skal regne med ikke har for mange siffer, og ikke har for store differanser, kan man interpolere lineært i hodet.

Hvis man kjenner tre datapunkter med samme innbyrdes avstand langs x-aksen, og som ikke ligger på en rett linje, kan man lage en parabel gjennom punktene for å få et mer nøyaktig resultat. Dette kalles kvadratisk interpolasjon fordi parabelen er en kvadratisk kurve (annengradskurve = kvadratisk kurve).

Vi velger at x-verdiene skal være −1, 0 og +1 når vi skal utlede formelen. Hvis x-verdiene i tallmaterialet vi skal ta for oss for eksempel egentlig er 1990, 1995 og 2000 så vil −1 svare til 1990, 0 svarer til 1995 og +1 svarer til 2000. Om man skal finne verdien for 1998, regner man slik: x = (1998 − 1995) / (2000 − 1995) = 3 / 5 = 0,6. Det betyr at vi bruker x = 0,6 for å regne ut tallet for 1998. Legg merke til at differansen 1995 − 1990 må være den samme som 2000 − 1995 for at interpolasjonsformelen skal fungere. Hvis man skal finne verdien for 1991, regner man slik: x = (1991 − 1995) / (2000 − 1995) = −4 / 5 = −0,8

Den følgende tabellen illustrerer differanser. Vi bruker * som multiplikasjonstegn. Kolonnen "Differanse" er differansene mellom tallene i kolonnen "y-verdi". Kolonnen "2. differanse" er differansen mellom tallene i kolonnen "Differanse".

Punkt nr. x-verdi y-verdi Differanse 2. differanse
1 −1 y1    
      A  
2 0 y2   C
      B  
3 1 y3    

Tabellen illustrerer følgende:

  • A = y2 − y1
  • B = y3 − y2
  • C = B − A = y3 + y1 − 2 * y2

Eksempel 1

Punkt nr. x-verdi y-verdi Differanse 2. differanse
1 −1 23    
      14  
2 0 37   0
      14  
3 1 51    

I dette eksemplet kan man se at 2. differanse = 0. Det betyr at punktene ligger på en rett linje, og da får man samme resultat ved å bruke en rett linje som ved å lage en parabel. Hvis man forsøker å lage en parabel, kommer man til at leddet med x2 blir 0.

Interpolasjonsformel

Vi bruker tre punkter med koordinater (x1, y1), (x2, y2) og (x3, y3) og velger at x1 = −1, x2 = 0 og x3 = 1. Våre y-verdier er y1, y2, og y3.

Vi vil finne en parabelfunksjon på formen f(x) = a + bx + cx2. For å finne verdiene av a, b og c setter vi opp et ligningssett med tre ligninger med tre ukjente. Når ligningssettet er oppfylt betyr dette at parabelen går gjennom de tre punktene.

  • I: a + bx1 + cx12 = y1
  • II: a + bx2 + cx22 = y2
  • III: a + bx3 + cx32 = y3

Når vi setter inn våre verdier for x1, x2 og x3 får vi

  • I: a + b(−1) + c(−1)2 = y1
  • II: a + b(0) + c(0)2 = y2
  • III: a + b(1) + c(1)2 = y3

og vi ordner

  • I: a − b + c = y1
  • II: a = y2
  • III: a + b + c = y3

Vi har nå funnet at a = y2

Vi legger sammen ligningene I og III

  • a − b + c + (a + b + c) = y1 + y3
  • = 2a + 2c = y1 + y3

og flytter over 2a

  • 2c = y1 + y3 − 2a
  • 2c = y1 + y3 − 2y2
  • c = (1 / 2)(y1 + y3 − 2y2)

Vi har nå funnet at c = (1 / 2)(y1 + y3 − 2y2).

Vi trekker ligning I fra ligning III

  • a + b + c − (a − b + c) = y3 − y1
  • 2b = y3 − y1
  • b = (1 / 2)(y3 − y1)

Vi har nå funnet at b = (1 / 2)(y3 − y1).

Interpolasjonsfaktoren er et tall som angir hvilken verdi av x vi vil finne en y-verdi for. Vi kaller den x. Den må være fra −1 til +1. Interpolasjonsformelen gjelder ikke hvis interpolasjonsfaktoren er utenfor dette området. Interpolasjonsfaktoren x = −1 tilsvarer x1, x = 0 tilsvarer x2 og x = +1 tilsvarer x3. Hvis faktoren for eksempel er mellom −0,5 og 0 betyr det at vi skal finne y-verdien for en x-verdi mellom −0,5 og 0.

Parabelen vi har funnet er

f(x) = y2 + x * (1 / 2)(y3 − y1) + x2 * (1 / 2)(y1 + y3 − 2y2)

Dette kan faktoriseres til

f(x) = y2 + (x / 2) * ((y3 − y1) + x * (y1 + y3 − 2y2))

Ved å bruke uttrykkene for A, B og C som nevnt før eksempel 1, kan dette skrives slik:

f(x) = y2 + (x / 2) * (A + B + x * C)

Eksempel 2

Punkt nr. x-verdi y-verdi Differanse 2. differanse
1 −1 5,10    
      9,2  
2 0 14,3   4,4
      13,6  
3 1 27,9    

Vi skal finne y-verdien som tilsvarer x = 0,3.

A = 9,2, B = 13,6, C = 4,4

f(x) = y2 + (x / 2) * (A + B + x * C)

f(x) = 14,3 + (x / 2) * (9,2 + 13,6 + x * 4,4)

f(0,3) = 14,3 + (0,3 / 2) * (22,8 + 0,3 * 4,4) = 17,918

Svaret er 17,9 fordi de opprinnelige tallene har tre gjeldende siffer, og da må svaret også ha tre gjeldende siffer.

Se også