Interpolation

Från Wikipedia
Hoppa till: navigering, sök

Interpolation är inom matematiken en metod för att generera nya datapunkter från en diskret mängd av befintliga datapunkter.

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.

Man antar att man har funktionsvärdena f_i = f(x_i) kända i (n+1) olika punkter x_1, x_2, ..., x_{n+1}. Då söks en funktion P sådan att

P(x_i) = f_i, \ \ i = 1, 2, ..., n+1

och P sägs då interpolera f i punkterna x_i.

Den interpolerande funktionen P kan användas för att approximera f(x), x \neq x_i. Om x ligger utanför intervallet kallas det extrapolation.

Om f_i 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.

Exempel[redigera | redigera wikitext]

Antag att vi har en tabell som ger några värden till en känd eller okänd funktion f.

Plot av data givet i tabellen.
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.

Interpolation med polynom[redigera | redigera wikitext]

Interpolation med polynom

Givet n+1 st datapunkter finns ett entydigt polynom P_n(x) av grad n, så att P_n(x_i) = f_i, i=1, 2, ..., n+1.

Det finns flera sätta att ansätta P_n(x). Med Newtons interpolationspolynom ser ansatsen ut som:

P_n(x) = c_0 + c_1(x-x_1) + c_2(x-x_1)(x-x_2) + ... + c_n(x-x_1)(x-x_2)...(x-x_n)

och det smidiga med denna ansats är att det blir enkelt att bestämma konstanterna C, som vid n=2 bestäms ur:


\begin{cases}
& x_1: c_0                 \quad = f_1 \\
& x_2: c_0 + c_1(x_2-x_1) \quad = f_2 \\
& x_3: c_o + c_1(x_3-x_1) + c_2(x_3-x_1)(x_3-x_2) \quad = f_3
\end{cases}

vilket är ett lösbart system om x_1 \neq x_2 \neq x_3.

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. [1]

Styckvis interpolation[redigera | redigera wikitext]

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.

Interpolation med linjär funktion

Linjär interpolation är inte lämpligt om f böjer sig mycket, om f'' ä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.

Se även[redigera | redigera wikitext]

Källor[redigera | redigera wikitext]

  1. ^ Peter Pohl Grunderna i numeriska metoder (5)9