Sari la conținut

Interpolare

De la Wikipedia, enciclopedia liberă
O interpolare a unei mulțimi finite de puncte de pe o epitrohoidă. Punctele (roșii) sunt conectate prin curbe spline de interpolare (albastre), deduse doar din punctele roșii. Curbele de interpolare au formule polinomiale mult mai simple decât cele ale curbei epitrohoide originale.

În matematică, în special în analiza numerică, interpolarea este un tip de estimare, o metodă de obținere a valorilor în alte puncte, bazată pe o mulțime de puncte discrete, cunoscute.[1][2]

În știință și inginerie adesea se cunosc un număr de puncte, obținute prin experimentare sau eșantionare, care reprezintă valorile unei funcții pentru un număr limitat de valori ale variabilei independente⁠(d). Adesea este necesară interpolarea, adică estimarea valorii acelei funcții pentru o valoare intermediară a variabilei independente.

O problemă strâns legată de aceasta este aproximarea unei funcții⁠(d) complicate printr-o funcție simplă. Se presupune că formula pentru o anumită funcție este cunoscută, dar prea complicată pentru a fi evaluată eficient. Câteva puncte ale funcției originale pot fi interpolate pentru a produce o funcție mai simplă, care este încă destul de apropiată de cea originală. Câștigul rezultat în simplitate poate depăși pierderea cauzată de eroarea de interpolare și poate oferi o performanță mai bună în procesul de calcul.

Graficul punctelor date în tabel

Tabelul următor prezintă câteva valori ale unei funcții necunoscute .

00
10,8415
20,9093
30,1411
40,7568
50,9589
60,2794

Interpolarea oferă un mijloc de estimare a funcției în puncte intermediare, cum ar fi x = 2,5.

Se vor descrie câteva metode de interpolare, care diferă prin proprietăți precum: precizia, costul, numărul de puncte necesare și netezimea⁠(d) funcției de interpolare rezultate.

Interpolare constantă pe porțiuni

[modificare | modificare sursă]
Interpolare constantă pe porțiuni, adică la valoarea celui mai apropiat punct vecin

Cea mai simplă metodă de interpolare este localizarea celui mai apropiat punct dat și atribuirea valorii sale. În problemele simple, este puțin probabil să fie utilizată această metodă, deoarece interpolarea liniară (vezi mai jos) este aproape la fel de ușoară, dar la interpolarea multivariabilă în dimensiuni superioare aceasta ar putea fi o alegere favorabilă datorită vitezei și simplității sale.

Interpolare liniară

[modificare | modificare sursă]
Graficul datelor cu interpolarea liniară suprapusă

Una dintre cele mai simple metode este interpolarea liniară. Fie exemplul de mai sus de estimare a lui f(2,5). Deoarece 2,5 se află la jumătatea distanței dintre 2 și 3, este rezonabil să se ia f(2,5) la jumătatea distanței dintre f(2) = 0,9093 și f(3) = 0,1411, ceea ce dă f(2,5) = 0,5252.

În general, interpolarea liniară are loc între două puncte, să zicem (xa, ya) și (xb,yb), iar funcția de interpolare este:

în punctul

În plus,

Precedentele două ecuații afirmă că panta dreptei dintre și este aceeași cu panta dreptei dintre și

Interpolarea liniară este rapidă și ușoară, dar un dezavantaj este că funcția de interpolare nu este derivabilă în punctele xk.

Următoarea estimare a erorii arată că interpolarea liniară nu este foarte precisă. Fie g o funcție derivabilă de două ori și se știe că x se află între xa și xb. Atunci eroarea de interpolare liniară este:

Adică, eroarea este proporțională cu pătratul distanței dintre punctele date. Eroarea altor metode sw interpolare, inclusiv interpolarea polinomială și interpolare spline (descrise mai jos), este proporțională cu puterile mai mari ale distanței dintre punctele de date. Aceste metode produc, de asemenea, interpolări mai netede.

Interpolare polinomială

[modificare | modificare sursă]
Graficul punctelor date și al interpolării polinomiale

Interpolarea polinomială este o generalizare a interpolării liniare. Se înlocuiește funcția de interpolare liniară cu un polinom de grad mai mare.

Fie din nou problema dată mai sus. Următorul polinom de gradul șase trece prin toate cele șapte puncte:

Substituind x = 2,5 se obține f(2,5) = ~0,59678.

În general, dacă sunt date n puncte, există exact un polinom de gradul cel mult n ± 1 care trece prin toate punctele respective. Eroarea de interpolare este proporțională cu distanța dintre punctele date la puterea n. În plus, funcția de interpolare este un polinom, prin urmare infinit derivabil. Deci, interpolarea polinomială rezolvă majoritatea problemelor interpolării liniare.

Totuși, interpolarea polinomială are și unele dezavantaje. Calcularea polinomului interpolat este costisitoare din punct de vedere computațional (v. teoria complexității) în comparație cu interpolarea liniară. În plus, interpolarea polinomială poate prezenta artefacte oscilatorii, în special spre punctele finale (v. fenomenul Runge).

Spre deosebire de interpolarea liniară, interpolarea polinomială poate estima maxime și minime locale care sunt în afara punctelor cunoscute. De exemplu, funcția de interpolare de mai sus are un maxim local în x ≈ 1,566,   f(x) ≈ 1,003 și un minim local în x ≈ 4,708,   f(x) ≈ −1,003. Totuși, aceste maxime și minime pot depăși intervalul teoretic al funcției; de exemplu, o funcție care este întotdeauna pozitivă poate avea o funcție de interpolare cu valori negative în unele puncte, prin urmare a cărei inverse conține asimptote verticale false datorită împărțirii cu zero.

Mai general, forma curbei rezultate, în special pentru valori foarte mari sau foarte mici ale variabilei independente, poate fi contrară bunului simț. Adică contrar a ceea ce se știe din experiența care a generat acele puncte date. Aceste dezavantaje pot fi reduse prin utilizarea interpolării spline sau prin restricționare la polinoamele Cebîșev⁠(d).

Interpolare spline

[modificare | modificare sursă]
Graficul punctelor date și al interpolării spline

Interpolarea liniară utilizează o funcție liniară pentru fiecare dintre intervalele [xk, xk+1]. Interpolarea spline utilizează polinoame de grad mic în fiecare dintre intervale și alege porțiunile polinomului astfel încât acestea să se racordeze perfect între ele. Funcția rezultată se numește „spline”.

De exemplu, funcția spline cubică naturală este cubică pe porțiuni și derivabilă continuu de două ori. În plus, derivata sa de ordinul al doilea este nulă în punctele de la capete. Funcția spline cubică naturală care interpolează punctele din tabelul de mai sus este dată de:

În acest caz se obține f(2,5) = 0,5972.

La fel ca interpolarea polinomială, interpolarea spline prezintă o eroare mai mică decât interpolarea liniară, însă interpolarea este mai netedă și mai ușor de evaluat decât polinoamele de grad înalt utilizate în interpolarea polinomială. Totuși, natura globală a funcțiilor de bază duce la o condiționare defectuoasă. Acest aspect este eliminat prin utilizarea funcțiilor spline cu suport compact, cum ar fi cele implementate în Boost.Math și discutate în Kress.[3]

Interpolare mimetică

[modificare | modificare sursă]

În funcție de discretizarea subiacentă a câmpurilor, pot fi necesare funcții de interpolare diferite. Spre deosebire de alte metode de interpolare, care estimează funcții definite prin puncte, interpolarea mimetică evaluează integralele câmpurilor pe linii, suprafețe sau volume, în funcție de tipul câmpului (scalar, vectorial, pseudo-vectorial sau pseudo-scalar).

O caracteristică cheie a interpolării mimetice este aceea că identitățile calculului vectorial sunt satisfăcute, inclusiv la teorema lui Stokes și teorema divergenței⁠(d). Prin urmare, interpolarea mimetică conservă integralele curbilinii, de suprafață și de volum.[4] De exemplu, conservarea integralelor curbilinii ar putea fi de dorit la interpolarea câmpului electric, deoarece integrala curbilinie dă diferența de potențial electric la capetele curbei integrate.[5] Interpolarea mimetică asigură că eroarea de estimare a integralei curbilinii a unui câmp electric este aceeași cu eroarea obținută prin interpolarea potențialului în punctele finale ale curbei integrate, indiferent de lungimea acesteia.

Interpolările liniară, biliniară și triliniară sunt și ele considerate mimetice, chiar dacă valorile câmpului sunt cele care sunt conservate (nu integrala câmpului). În afară de interpolarea liniară, interpolarea ponderată de suprafață poate fi considerată una dintre primele metode de interpolare mimetică dezvoltate.[6]

Aproximarea funcțiilor

[modificare | modificare sursă]

Interpolarea este o metodă obișnuită de aproximare a funcțiilor. Având o funcție cu un set de puncte , se poate forma o funcție astfel încât pentru (adică, interpolează în aceste puncte). În general, o interpolare nu trebuie să fie o aproximare bună, dar există condiții bine cunoscute și adesea rezonabile în care va fi. De exemplu, dacă (de patru ori continuu derivabilă), atunci interpolarea spline cubică are o limită de eroare dată de unde iar este o constantă.[7]

Printr-un proces gaussian

[modificare | modificare sursă]

Un proces gaussian⁠(d) este un instrument puternic de interpolare neliniară. Multe instrumente populare de interpolare sunt de fapt echivalente cu anumite procese gaussiene. Procesele gaussiene pot fi utilizate nu doar pentru ajustarea unei funcții de interpolare care trece exact prin punctele date, ci și pentru regresie; adică, pentru ajustarea unei curbe prin date afectate de zgomot.

Ponderare cu inversa distanței

[modificare | modificare sursă]

Ponderarea cu inversa distanței este o metodă de interpolare spațială care estimează valori pe baza punctelor date din apropiere, punctele mai apropiate având o influență mai mare.[8] Folosește o inversă a puterii pentru ponderare, unde valorile mai mari ale ponderării accentuează efectele locale, în timp ce valorile mai mici creează o suprafață mai netedă. Metoda este utilizată pe scară largă în sistemele de informații geografice (GIS), meteorologie și modelarea mediului, pentru simplitatea sa, dar poate produce artefacte în date grupate sau neuniforme.[9]

Alte forme de interpolare

[modificare | modificare sursă]

Alte forme de interpolare pot fi construite prin alegerea unei clase diferite de funcții de interpolare. De exemplu, interpolarea rațională este o interpolare cu funcții raționale folosind aproximarea Padé⁠(d), iar interpolarea trigonometrică⁠(d) este o interpolare cu polinoame trigonometrice⁠(d) folosind serii Fourier.

Formula de interpolare Whittaker–Shannon⁠(d) poate fi utilizată dacă numărul de puncte de date este teoretic infinit sau dacă funcția care urmează să fie interpolată are suport compact.

Uneori se cunosc nu doar valori în anumite puncte ale funcției care trebuie interpolată, ci și derivata acesteia. Aceasta duce la probleme de interpolare de tip Hermite⁠(d).

În mai multe dimensiuni

[modificare | modificare sursă]
Interpolări uni- și bidimensionale.
Punctele negru și roșii/galbene/verzi/albastre corespund punctului interpolat, respectiv celor învecinate. Înălțimile lor față de planul de bază corespund valorilor lor.

Interpolarea multivariabilă este interpolarea funcțiilor cu mai multe variabile. Metodele cuprind interpolarea la cel mai apropiat vecin, interpolarea biliniară și interpolarea bicubică în bidimensional și interpolarea triliniară în tridimensional. Acestea pot fi aplicate datelor sub formă de grilă sau dispersate. Interpolarea mimetică se generalizează la spații n-dimensionale, unde .[10][11]

La prelucrarea semnalelor digitale

[modificare | modificare sursă]

În domeniul prelucrării digitale a semnalelor, termenul de interpolare se referă la procesul de conversie a unui semnal digital eșantionat (cum ar fi un semnal audio eșantionat) la unul cu o rată de eșantionare mai mare utilizând diverse tehnici de filtrare digitală. O discuție destul de elementară pe această temă poate fi găsită în cartea lui Rabiner și Crochiere, „Multirate Digital Signal Processing”.[12]

Concepte înrudite

[modificare | modificare sursă]

Termenul extrapolare este folosit pentru a găsi valori în puncte din afara intervalului de puncte cunoscute.

În problemele de aproximarea curbelor, constrângerea conform căreia funcția de interpolare trebuie să treacă exact prin punctele date este relaxată. Este necesar (în cadrul altor constrângeri) doar să se apropie cât mai mult posibil de punctele date. Aceasta necesită parametrizarea potențialelor funcții de interpolare și existența unei modalități de măsurare a erorii. În cel mai simplu caz aceasta duce la aproximarea prin metoda celor mai mici pătrate.

Teoria aproximării⁠(d) studiază cum se obține cea mai bună aproximare a unei funcții date printr-o altă funcție dintr-o clasă predeterminată și cât de bună este această aproximare. Aceasta oferă în mod clar o limită privind cât de bine poate aproxima funcția de interpolare funcția necunoscută.

  1. en Wikisource Sheppard, William Fleetwood (). „Interpolation”. În Chisholm, Hugh. Encyclopædia Britannica. 14 (ed. 11). Cambridge University Press. pp. 706–710.
  2. en Steffensen, J. F. (). Interpolation (ed. Second). Mineola, N.Y. ISBN 978-0-486-15483-1. OCLC 867770894.
  3. en Kress, Rainer (). Numerical Analysis. Springer. ISBN 9781461205999.
  4. en Pletzer, Alexander; Hayek, Wolfgang (). „Mimetic Interpolation of Vector Fields on Arakawa C/D Grids”. Monthly Weather Review (în engleză). 147 (1): 3–16. Bibcode:2019MWRv..147....3P. doi:10.1175/MWR-D-18-0146.1. ISSN 1520-0493. Arhivat din originalNecesită abonament cu plată la . Accesat în .
  5. en Stern, Ari; Tong, Yiying; Desbrun, Mathieu; Marsden, Jerrold E. (), Chang, Dong Eui; Holm, Darryl D.; Patrick, George; Ratiu, Tudor, ed., „Geometric Computational Electrodynamics with Variational Integrators and Discrete Differential Forms”, Geometry, Mechanics, and Dynamics, Fields Institute Communications, New York, NY: Springer New York, 73, pp. 437–475, arXiv:0707.4470Accesibil gratuit, doi:10.1007/978-1-4939-2441-7_19, ISBN 978-1-4939-2440-0, accesat în
  6. en Jones, Philip (). „First- and Second-Order Conservative Remapping Schemes for Grids in Spherical Coordinates”. Monthly Weather Review. 127 (9): 2204–2210. Bibcode:1999MWRv..127.2204J. doi:10.1175/1520-0493(1999)127<2204:FASOCR>2.0.CO;2Accesibil gratuit.
  7. en Hall, Charles A.; Meyer, Weston W. (). „Optimal Error Bounds for Cubic Spline Interpolation”. Journal of Approximation Theory. 16 (2): 105–122. doi:10.1016/0021-9045(76)90040-XAccesibil gratuit.
  8. en Donald, Shepard (). „A two-dimensional interpolation function for irregularly-spaced data”. 23rd ACM National Conference.
  9. en Ben Moshe, Nir (). „A Simple Solution for the Inverse Distance Weighting Interpolation (IDW) Clustering Problem”. Sci. 7 (1): 30. doi:10.3390/sci7010030Accesibil gratuit.
  10. en Whitney, Hassler (). Geometric Integration Theory. Dover Books on Mathematics. ISBN 978-0486445830.
  11. en Pletzer, Alexander; Fillmore, David (). „Conservative interpolation of edge and face data on n dimensional structured grids using differential forms”. Journal of Computational Physics. 302: 21–40. Bibcode:2015JCoPh.302...21P. doi:10.1016/j.jcp.2015.08.029Accesibil gratuit.
  12. en Crochiere, Ronald E.; Rabiner, Lawrence R. (). R.E. Crochiere and L.R. Rabiner. (1983). Multirate Digital Signal Processing. Englewood Cliffs, NJ: Prentice–Hall. Prentice-Hall. ISBN 0136051626.

Legături externe

[modificare | modificare sursă]