Interpolering är inom matematiken en metod för att generera nya datapunkter från en diskret mängd av befintliga datapunkter, det vill säga beräkning av funktionsvärden som ligger mellan redan kända värden.[1]
Inom ingenjörsvetenskap och annan vetenskap genomförs ofta olika praktiska experiment som resulterar i en mängd datapunkter och från dessa punkter försöker man skapa en funktion som beskriver punkterna så bra det går, detta kallas kurvanpassning. Interpolation är ett specialfall av detta, där funktionen måste gå exakt genom de givna datapunkterna.
Anta att har funktionsvärdena är kända i olika punkter . Då söks en funktion sådan att
och sägs då interpolera f i punkterna .
Den interpolerande funktionen kan användas för att approximera . Om x ligger utanför intervallet kallas det extrapolation.
Om endast är känt som närmevärden kan det vara olämpligt att kräva att en funktion som går exakt genom dessa vissa punkter. Då kan det vara bättre att använda en approximationsmetod för att anpassa en kurva till mätdata. Interpolation är också en numerisk metod för att bestämma en funktions nollställe. Andra metoder såsom intervallhalveringsmetoden och/eller Newtons metod kan också användas. Vid interpolation utgår man från två x-värden för vilka man vet att en given funktions nollställe ligger mellan dessa, antar man en ny approximation för nollstället, vars avstånd i x-led från en av de tidigare punkterna är proportionerligt mot förhållandet av de respektive funktionsvärdena för de ursprungliga två x-värdena. Den nya approximationen ersätter ett av de ursprungliga x-värdena vartefter processen upprepas till dess önskad noggrannhet uppnåtts.
Antag att vi har en tabell som ger några värden till en känd eller okänd funktion f.
x | f(x) | ||||
---|---|---|---|---|---|
0 | 0 | ||||
1 | 0 | . | 8415 | ||
2 | 0 | . | 9093 | ||
3 | 0 | . | 1411 | ||
4 | −0 | . | 7568 | ||
5 | −0 | . | 9589 | ||
6 | −0 | . | 2794 |
Med hjälp av interpolation kan man uppskatta funktionsvärdet i en mellanliggande punkt, till exempel x = 2.5.
Det finns flera metoder vid interpolation, några tas upp här nedan. När man väljer vilken metod bör man tänka på hur noggrann metoden är, hur beräkningskrävande den är, hur glatt interpolanten är, och hur många datapar som är nödvändiga.
Givet n+1 st datapunkter finns ett entydigt polynom av grad mindre eller lika med n, så att .
Det finns flera sätt att ansätta . Med Newtons interpolationspolynom ser ansatsen ut som:
och det smidiga med denna ansats är att det blir enkelt att bestämma konstanterna C, som vid n=2 bestäms ur:
vilket är ett lösbart system om .
En nackdel med interpolationspolynom av hög grad kan vara att de kan variera kraftigt mellan punkterna i början och slutet av intervallet. Detta kallas Runges fenomen. Om man har möjlighet att själv välja interpolationspunkter kan detta undvikas genom att ha ett tätare avstånd mellan interpolationspunkterna i början och slutet av intervallet än i mitten av intervallet. [2]
Ett annat sätt att undvika Runges fenomen när man har många mätpunkter att arbeta med är att byta interpolationsfunktion mellan interpolationspunkterna. Det enklast sättet är kanske att anpassa en rät linje mellan varje par av punkter. Det kallas linjär interpolation. I punkterna blir då ingen derivata definierad och resultatet kan se "hackigt" ut.
Linjär interpolation är inte lämpligt om f böjer sig mycket, om är stor, eftersom det ger upphov till ett stort trunkeringsfel.
Det går dock att anpassa polynom av högre gradtal till interpolationspunkterna. Hermite-interpolation kan användas om derivatan är känd i interpolationspunkerna.
Om derivatan inte är känd i interpolationspunkerna går det ändå att få en mindre "hackig" funktion genom att ställa krav på kontinuitet i polynomens derivator i interpolationspunkterna. Kubiska splines är tredjegradspolynom med kontinuerlig första- och andraderivata i interpolationspunkerna. Namnet kommer ifrån att konstruktörer använde sig av elastiska linjaler (splines på engelska) som tvingades in mellan interpolationspunkterna som markerades med stift på en skiva.