Spline

Spline ריבועי מורכב משישה מקטעי פולינום. בין הנקודה 0 לנקודה 1 קו ישר. בין נקודה 1 לנקודה 2 פרבולה עם נגזרת שנייה = 4. בין נקודה 2 לנקודה 3 פרבולה עם נגזרת שנייה = -2. בין נקודה 3 לנקודה 4 קו ישר. בין נקודה 4 לנקודה 5 פרבולה עם נגזרת שנייה = 6. בין נקודה 5 לקודה 6 קו ישר.
במתמטיקה, Spline ( פוּנְקְצִיַּת-אִפּוּץ) הוא פונקציה המוגדרת על תמך סופי על ידי קבוצה של פונקציות בסיס פולינומיות רציפות למקוטעין. פונקציות הבסיס נבחרות כך שהן חלקות בכל מקום פרט למספר סופי של נקודות החיבור בין מקטעי הפולינומים. נקודות החיבור מכונות קשרים (באנגלית knots).. פולינומים אלו נבחרים כך שבנקודת הקשר ערכיהם וערכי נגזרותיהם עד סדר הפולינום שוות מצידיו של הקשר. פונקציות spline מאופיינות בצורה חד ערכית על ידי דרגתן ווקטור הקשרים שלהן. 

לפונקציות spline שימושים רבים, לדוגמה, בחישוב קרובים לפונקציות על ידי אינטרפולציה, אינטרפולציית spline מועדפת לעיתים קרובות על אינטרפולציה פולינומית מפני שהיא מניבה תוצאות דומות ובו בעת נמנעת מבעיית חוסר היציבות הנובעת מתופעת רונגה המתרחשת בעת שימוש בפולינומים מסדר גבוה. 

בנוסף לשימוש הישיר בפונקציות ספליין לקרובים, שימוש נפוץ בהם הוא כפונקציות בסיס לתיאור עקומים פרמטריים הידועים גם בשם B-spline. לדוגמה, בגרפיקה ממוחשבת, עקומות b-spline פופולריות עקב פשטות בנייתן, קלות השימוש בהן ודיוקן. בנוסף, היכולת של עקומות b-spline לשערך צורות מורכבות ועיצוב עקומות אינטראקטיבי הופך אותן לנפוצות בישומי עיצוב גרפי. בישומים מעשיים מקובל להשתמש בספליינים מסדר שני ושלישי ( Quadratic and cubic splines), כלומר, מסדר 3,2.
== אטימולוגיה ==
מקור השם: רצועת המתכת המשמשת מעצבים - "Flat Spline"
המונח Spline אומץ על שם רצועה גמישה של מתכת המשמשת בדרך כלל מעצבים לסייע בציור עקומה מעוגלת. סרגלים מעוקמים כאלה שימשו בעבר בתכן של גופים בעלי צורות גאומטריות חלקות, למשל, קוער של ספינות<ref></ref>. בעידן המודרני מקובל לראות במאמר מ 1946 של Schoenberg את הניסוח המתמטי הראשון. 
:<math>
S(t)= \begin{cases}
\frac{1}{4}(t+2)^3 & -2\le {t} \le -1\\
\frac{1}{4}\left(3|t|^3 - 6t^2 +4 \right)& -1\le {t} \le 1\\
\frac{1}{4}(2-t)^3 & 1\le {t} \le 2
\end{cases}
</math>

== הגדרה ==
spline היא פונקציה פולינומית ממשית חלקה למקוטעין
:<math>S\colon [a,b]\to \R</math>
תחום סגור <math>[a,b]</math> המורכב מ-<math>k</math> מקטעים <math>[t_{i-1}, t_i] </math> כאשר <math>a = t_0 < t_1 < \dotsb < t_{k-1} < t_k = b</math>.

ההגבלה של <math>S</math> במקטע <math>i</math> הוא פולינום
:<math>P_i\colon [t_{i-1}, t_i] \to \R</math>,
כך ש:
:<math>S(t) = \begin{cases}
P_1 (t) \mbox{, } t_0 \le t < t_1\\
P_2 (t) \mbox{, } t_1 \le t < t_2 \\
\vdots\\
P_n(t) \mbox{, } t_{n-1} \le t < t_n \\
\end{cases}</math>
:
:

הסדר הגבוה ביותר של פולינומים <math> P_i (t)</math> נקרא סדר ה spline - <math>S</math>. כאמור, spline אחיד (uniform) אם כל תת-המקטעים באותו אורך במרחב הפרמטרי ולא אחידה אחרת.

הרעיון הוא לבחור פולינומים באופן המבטיח חלקות מספקת ל <math>S</math>. באופן ספציפי, spline מסדר <math>n</math>, <math>S</math> נדרש להיות רציף וגזיר <math>n-1</math> פעמים בנקודות הפנימיות <math>t_i</math>: ל <math>i=1, \dotsc, k-1 </math> ו <math>j=0, \dotsc, n-1 </math>

:<math>P_i^{(j)} (t_i) = P_{i+1}^{(j)} (t_i)</math>.
:

== דוגמאות ==
דוגמה פשוטה של spline ריבועי (מסדר 2)
:<math>
S(t) = \begin{cases}
(t+1)^2-1 & -2 \le t < 0\\
1-(t-1)^2 & 0 \le t \le 2
\end{cases}
</math>
אשר בה <math>S'(0)=2</math>.

דוגמה פשוטה של cubic spline היא
:<math>S(t) = \left|t\right|^3 </math>
או
:<math>
S(t) = \begin{cases}
t^3 & t \ge 0\\
-t^3 & t < 0
\end{cases}
</math>
ו
:<math>S'(0) =\ 0</math>
:<math>S(0) =\ 0</math>

דוגמה של שימוש ב cubic spline כדי ליצור עקומת פעמון של פולינומי הפצה של ארווין-הול:
:

=== B-splines ===
B-splineמישורי
ביישומים בהם פונקציית ספליין אחת אינה שימושית ניתן להשתמש בסכום ממושקל (weighted-sum) של פונקציות בסיס על מנת לתאר עקומים מורכבים. ברישום מקובל <math>C(t)=\sum_i P_i\cdot B^d_i( t)</math> כאשר <math>C(t) </math> פרמטרי ב <math>t</math>, <math>d</math> דרגת הספליין ונקודות הבקרה <math>P_i \in R^n </math> מגדירות את הטווח של העקום, לשם פשטות השמטנו את וקטור הקשרים הדרוש להגדרה מלאה של פונקציות הבסיס. לדוגמה, עבור עקום מישורי, נקודות הבסיס שוכנות במישור ו<math>n=2</math>. 

תכונות B-Spline 

# חלוקת היחידה - partition of unity - עבור וקטור קשרים <math>\cal{t}=\{t_i\}_{i=0}^{N}: \cal{t}\in[t_{k-1},t_{N-k+1}]</math>, <math>\sum_{i=0}^{N-k}B_{i,k}(t)=1, \forall{k}>0
</math>. אינטואיטיבית, בדומה לפונקציות בזייה(bezier), סכום כל פונקציות הבסיס לכל נקודה בה הפונקציות מוגדרות יהיה 1. 
# הכלה בקמור - convex hull property - העקום מול בקמור של נקודות הבקרה.<ref></ref>
# הפחתת שינויים - Variation diminishing, בדומה לעקומי בזייה גם בעקומי b-spline, אם נחתוך את העקום המוגדר ביחס לאוסף נקודות הבקרה ווקטור הקשרים מספר החיתוכים של הקו הישר יהיה שווה או קטן ממספר החיתוכים של הקו עם הפוליגון הנוצר מחיבור נקודות הבקרה בקוים ישרים. 
# תמך סופי - local support - שינוי במיקום של נקודת בקרה ישנה קטע סופי בעקום.

==קישורים חיצוניים==

* 
* 

== הערות שוליים ==

קטגוריה:אינטרפולציה