Bikubisk interpolation

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 26 november 2018; kontroller kräver 16 redigeringar .

Bikubisk interpolation  är en utvidgning av kubisk interpolation i beräkningsmatematik till fallet med en funktion av två variabler, vars värden ges på ett tvådimensionellt regelbundet rutnät. Ytan som härrör från bikubisk interpolation är en jämn funktion på gränserna för intilliggande kvadrater, till skillnad från ytor som resulterar från bilinjär interpolation eller närmaste granne-interpolation .

Bikubisk interpolation används ofta i bildbehandling , vilket ger bättre bildkvalitet än bilinjär interpolation. Bikubisk interpolation används också i styralgoritmer för CNC- maskiner för att ta hänsyn till ytoregelbundenheter, till exempel vid fräsning av kretskort.

Metodprincip

I fallet med bikubisk interpolation beräknas värdet på funktionen vid den önskade punkten genom dess värden vid 16 angränsande punkter belägna vid hörnen på planets kvadrater .

När du använder formlerna nedan för att programmatiskt implementera bikubisk interpolation, kom ihåg att värdena för och är relativa, inte absoluta. Till exempel för en punkt med koordinater . För att få relativa värden på koordinater är det nödvändigt att avrunda de reella koordinaterna nedåt och subtrahera de erhållna talen från de reella koordinaterna.

,

var

, , , , , , , , , , , , , , , ,

På ett liknande sätt kan högre ordningens interpolationer användas för att beräkna funktionens värden från närliggande punkter.

Bikubisk spline-interpolation

Låt oss anta att det är nödvändigt att interpolera värdet på funktionen i en punkt som ligger innanför kvadraten , och värdet på funktionen är känt vid sexton intilliggande punkter .

Då kan den allmänna formen av funktionen som definierar den interpolerade ytan skrivas på följande sätt:

.

För att hitta koefficienterna är det nödvändigt att ersätta funktionens värden vid kända sexton punkter i ovanstående ekvation. Till exempel:

.

Helt i matrisform:

,

var

,

,

.

Genom att lösa det resulterande systemet med linjära algebraiska ekvationer kan du hitta värdena explicit:

.

En gång hittade koefficienter kan nu användas för att upprepade gånger beräkna det interpolerade värdet av funktionen vid godtyckliga punkter i kvadraten .

Det bör noteras att denna metod säkerställer kontinuiteten för själva funktionen och dess andra derivata på gränserna för intilliggande kvadrater, men leder till ett brott i de första derivatorna vid gränserna för 4×4 celler. För att säkerställa kontinuiteten för själva funktionen och dess första derivata, är det nödvändigt att ersätta funktionens värden och värdena för de första derivatorna i x- och y-riktningarna vid hörnen av den centrala cellen med originalet uttryck beräknas derivaten genom centrala skillnader. För att ersätta derivat måste uttrycket differentieras i enlighet därmed.

Sekventiell kubisk interpolation

En annan tolkning av metoden är att för att hitta det interpolerade värdet kan man först utföra kubisk interpolation i en riktning och sedan i den andra.

För en funktion med kända värden , , , kan du konstruera en kubisk spline: , eller i matrisform:

,

var

,

.

För att hitta det interpolerade värdet i kvadraten kan du alltså först beräkna fyra värden , , , för fix , sedan bygga en kubisk spline genom de fyra erhållna punkterna och på så sätt slutföra beräkningen :

.

Det bör noteras att detta tillvägagångssätt säkerställer kontinuiteten för själva funktionen och dess andraderivator vid cellgränsen, men säkerställer inte kontinuiteten för den första derivatan. För att säkerställa kontinuiteten för den första derivatan är det nödvändigt att ersätta funktionens värden och dess första derivator vid gränsen för den centrala cellen. Då kommer splinekoefficienterna att se ut så här:

,

.

Se även

Litteratur