Interpolare bicubică

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 26 noiembrie 2018; verificările necesită 16 modificări .

Interpolarea bicubică  este o extensie a interpolării cubice în matematica computațională la cazul unei funcții a două variabile, ale căror valori sunt date pe o grilă regulată bidimensională. Suprafața rezultată din interpolarea bicubică este o funcție netedă pe limitele pătratelor adiacente, spre deosebire de suprafețele rezultate din interpolarea biliniară sau interpolarea celui mai apropiat vecin .

Interpolarea bicubică este adesea folosită în procesarea imaginii , oferind o calitate mai bună a imaginii decât interpolarea biliniară. De asemenea, interpolarea bicubică este utilizată în algoritmii de control pentru mașinile CNC pentru a lua în considerare neregularitățile de suprafață, de exemplu, la frezarea plăcilor de circuite imprimate.

Principiul metodei

În cazul interpolării bicubice, valoarea funcției în punctul dorit este calculată prin valorile sale din 16 puncte învecinate situate la vârfurile pătratelor planului .

Când utilizați formulele de mai jos pentru a implementa în mod programatic interpolarea bicubică, amintiți-vă că valorile și sunt relative, nu absolute. De exemplu, pentru un punct cu coordonate . Pentru a obține valori relative ale coordonatelor, este necesar să rotunjiți coordonatele reale în jos și să scădeți numerele obținute din coordonatele reale.

,

Unde

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

În mod similar, pot fi utilizate interpolări de ordin superior, calculând valorile funcției din punctele învecinate.

Interpolare bicubică spline

Să presupunem că este necesar să interpolăm valoarea funcției într-un punct situat în interiorul pătratului , iar valoarea funcției este cunoscută în șaisprezece puncte adiacente .

Apoi forma generală a funcției care definește suprafața interpolată poate fi scrisă după cum urmează:

.

Pentru a găsi coeficienții , este necesar să înlocuiți valorile funcției la șaisprezece puncte cunoscute în ecuația de mai sus. De exemplu:

.

Complet sub formă de matrice:

,

Unde

,

,

.

Rezolvând sistemul rezultat de ecuații algebrice liniare , puteți găsi valorile în mod explicit:

.

Odată găsiți, coeficienții pot fi acum utilizați pentru a calcula în mod repetat valoarea interpolată a funcției în puncte arbitrare ale pătratului .

Trebuie remarcat faptul că această metodă asigură continuitatea funcției în sine și a derivatei a doua a acesteia pe limitele pătratelor adiacente, dar duce la o rupere a primelor derivate la limitele celulelor 4×4. Pentru a asigura continuitatea funcției în sine și a primei sale derivate, este necesar să înlocuiți valorile funcției și valorile primelor derivate în direcțiile x și y la vârfurile celulei centrale în originalul. expresie, derivatele se calculează prin diferențe centrale. Pentru a înlocui derivate, expresia trebuie diferențiată în mod corespunzător.

Interpolare cubică secvențială

O altă interpretare a metodei este că pentru a găsi valoarea interpolată, se poate efectua mai întâi interpolarea cubică într-o direcție și apoi în cealaltă.

Pentru o funcție cu valori cunoscute , , , puteți construi o spline cubică: , sau sub formă de matrice:

,

Unde

,

.

Astfel, pentru a găsi valoarea interpolată în pătrat , puteți calcula mai întâi patru valori , , , pentru fix , apoi construiți o spline cubică prin cele patru puncte obținute și, astfel, finalizați calculul :

.

Trebuie remarcat faptul că această abordare asigură continuitatea funcției în sine și a derivatelor sale secundare la limita celulei, dar nu asigură continuitatea primei derivate. Pentru a asigura continuitatea primei derivate, este necesar să înlocuiți valorile funcției și primele sale derivate la limita celulei centrale. Apoi coeficienții spline vor arăta astfel:

,

.

Vezi și

Literatură