În matematică, în special în analiza numerică, interpolarea splineRadu Trîmbițaș, Interpolare spline (curs, 2020), Universitatea Babeș-Bolyai, accesat 2026-03-04 este o formă de interpolare în care funcția de interpolare este un tip special de polinom pe porțiuni numit „spline”. În loc să se ajusteze un singur polinom de grad mare la toate valorilor simultan, interpolarea spline ajustează polinoame de grad mic la subseturi mici ale valorilor. De exemplu, pentru zece puncte, în loc să ajusteze un singur polinom de gradul nouă prin toate, ajustează nouă polinoame de gradul al treilea („cubice”), câte unul între fiecare din câte două puncte consecutive. Interpolarea spline este adesea preferată interpolării polinomiale deoarece eroarea de interpolare poate fi redusă chiar și atunci când se utilizează polinoame de grad mic pentru spline. Interpolarea spline evită și problema fenomenului Runge, în care, între puncte poate să apară oscilația atunci când se interpolează folosind polinoame de grad mare.
Descriere thumb|Interpolare cu spline cubice între opt puncte. Desenele tehnice desenate manual pentru construcția navală sunt un exemplu istoric de interpolare cu spline; desenele au fost trasate folosind rigle flexibile care au fost îndoite pentru a urma puncte predefinite. Inițial spline era un termen pentru riglele elastice, care erau îndoite pentru a trece printr-un număr de puncte predefinite (noduri). Acestea erau folosite pentru a realiza desene tehnice pentru construcția de nave, desene care erau trasate manual.
Se dorește modelarea unor tipuri similare de curbe folosind un set de ecuații matematice. Fie un șir de noduri, de la până la . Va exista un polinom cubic între fiecare pereche succesivă de noduri și care se conectează la ambele, unde Deci vor exista n polinoame, primul polinom începând din iar ultimul polinom terminându-se în
Curbura unei curbe este definită drept
unde și sunt derivatele de ordinul întâi, respectiv al doilea ale lui în . Pentru a face curba spline să ia o formă care minimizează îndoirea (cu constrângerea de a trece prin toate nodurile), se vor defini atât cât și ca fiind continue peste tot, inclusiv în noduri. Fiecare polinom succesiv trebuie să aibă valori egale ale lui și ale derivatelor de ordinul întâi și al doilea în nodurile lor de joncțiune, ceea ce înseamnă că:
Acest lucru se poate realiza doar dacă se utilizează polinoame de gradul al 3-lea (polinoame cubice) sau mai mare. Abordarea clasică este de a utiliza polinoame de exact gradul al 3-lea („spline cubice”).
Pe lângă cele trei condiții de mai sus, o spline cubică naturală are condiția ca
Pe lângă cele trei condiții principale de mai sus, o spline cubică tensionată îndeplinește condițiile și unde este derivata funcției interpolate.Alexandru Juncu, Interpolare cu funcții spline (curs), Universitatea Politehnica din București, accesat 2026-03-05
Pe lângă cele trei condiții principale de mai sus, o spline fără noduri are condițiile și .
Algoritm pentru a obține curbele de interpolare spline cubice Se dorește obținerea fiecărui polinom având date punctele până la . Pentru asta, fie o singură porțiune a curbei, care va interpola de la până la Această porțiune va avea pantele și la capetele sale:
Ecuația completă poate fi scrisă în forma simetrică:
unde:
Pentru a obține valorile lui și fie:
Rezultă că:
Punând și respectiv în ecuațiile () și (), din ecoația () se obțin derivatele de ordinul întâi și precum și cele de gradul al doilea:
Dacă acum sunt punctele și
unde i = 1, 2, ..., n și sunt cele n polinoame de interpolare de gradul al treilea pe intervalul pentru i = 1, ..., n astfel încât pentru i = 1, ..., n − 1, atunci cele n polinoame împreună definesc o funcție derivabilă pe intervalul și:
pentru i = 1, ..., n, unde:
Dacă șirul este astfel încât în plus este valabilă relația pentru i = 1, ..., n − 1, atunci funcția obținută va avea chiar și o derivată de ordinul al doilea continuă.
Din ecuațiile (), (), () și () rezultă că acesta este cazul dacă și numai dacă:
pentru i = 1, ..., n − 1. Relațiile () sunt ecuații liniare pentru cele valori .
Pentru ca o riglă elastică să fie un model pentru interpolarea spline, se presupune că la stânga celui mai din stânga „nod” și la dreapta celui mai din dreapta „nod” rigla se poate mișca liber, prin urmare va lua forma unei drepte cu Deoarece ar trebui să fie o funcție continuă de , „spline-urile naturale”, pe lângă ecuațiile liniare (), ar trebui să aibă:
adică:
În final, () împreună cu () și () formează un sistem de ecuații liniare care definește în mod unic cei parametri .
Pot fi și alte condiții de capăt, de tip „spline tensionată”, care specifică panta la capetele funcției spline și populara „spline fără noduri”, care necesită ca derivata de ordinul al treilea să fie și ea continuă în punctele și Pentru funcția spline „fără noduri”, ecuațiile suplimentare vor fi:
unde
Exemplu thumb|upright=1.5|Interpolare între trei puncte cu o funcție spline „naturală”, unde la capete curbura este nulă În cazul a trei puncte, valorile pentru se găsesc prin rezolvarea :
cu
Pentru trei puncte, se obține:
iar din () și () că:
În figură este afișată funcția spline constând din cele două polinoame cubice și date de ().
Note
Lectură suplimentară
Vezi și Interpolare polinomială
Legături externe Cubic Spline Interpolation Online Calculation and Visualization Tool (with JavaScript source code)
Dynamic cubic splines with JSXGraph Lectures on the theory and practice of spline interpolation Paper which explains step by step how cubic spline interpolation is done, but only for equidistant knots. Numerical Recipes in C, Go to Chapter 3 Section 3-3 A note on cubic splines Information about spline interpolation (including code in Fortran 77) TinySpline:Open source C-library for splines which implements cubic spline interpolation SciPy Spline Interpolation:a Python package that implements interpolation
Cubic Interpolation:Open source C#-library for cubic spline interpolation
spline Categorie:Spline