Spline

במתמטיקה, Spline (פוּנְקְצִיַּת-אִפּוּץ) הוא פונקציה המוגדרת על תמך סופי על ידי קבוצה של פונקציות בסיס פולינומיות רציפות למקוטעין. פונקציות הבסיס נבחרות כך שהן חלקות בכל מקום פרט למספר סופי של נקודות החיבור בין מקטעי הפולינומים. נקודות החיבור מכונות קשרים (באנגלית knots).. פולינומים אלו נבחרים כך שבנקודת הקשר ערכיהם וערכי נגזרותיהם עד סדר הפולינום שוות מצידיו של הקשר. פונקציות spline מאופיינות בצורה חד ערכית על ידי דרגתן ווקטור הקשרים שלהן. לפונקציות spline שימושים רבים, לדוגמה, בחישוב קרובים לפונקציות על ידי אינטרפולציה, אינטרפולציית spline מועדפת לעיתים קרובות על אינטרפולציה פולינומית מפני שהיא מניבה תוצאות דומות ובו בעת נמנעת מבעיית חוסר היציבות הנובעת מתופעת רונגה המתרחשת בעת שימוש בפולינומים מסדר גבוה. בנוסף לשימוש הישיר בפונקציות ספליין לקרובים, שימוש נפוץ בהם הוא כפונקציות בסיס לתיאור עקומים פרמטריים הידועים גם בשם B-spline. לדוגמה, בגרפיקה ממוחשבת, עקומות b-spline פופולריות עקב פשטות בנייתן, קלות השימוש בהן ודיוקן. בנוסף, היכולת של עקומות b-spline לשערך צורות מורכבות ועיצוב עקומות אינטראקטיבי הופך אותן לנפוצות בישומי עיצוב גרפי. בישומים מעשיים מקובל להשתמש בספליינים מסדר שני ושלישי ( Quadratic and cubic splines), כלומר, מסדר 3,2. המונח Spline אומץ על שם רצועה גמישה של מתכת המשמשת בדרך כלל מעצבים לסייע בציור עקומה מעוגלת. סרגלים מעוקמים כאלה שימשו בעבר בתכן של גופים בעלי צורות גאומטריות חלקות, למשל, קוער של ספינות. בעידן המודרני מקובל לראות במאמר מ 1946 של Schoenberg את הניסוח המתמטי הראשון. S ( t ) = { 1 4 ( t + 2 ) 3 − 2 ≤ t ≤ − 1 1 4 ( 3 | t | 3 − 6 t 2 + 4 ) − 1 ≤ t ≤ 1 1 4 ( 2 − t ) 3 1 ≤ t ≤ 2 {\displaystyle S(t)={\begin{cases}{\frac {1}{4}}(t+2)^{3}&-2\leq {t}\leq -1\\{\frac {1}{4}}\left(3|t|^{3}-6t^{2}+4\right)&-1\leq {t}\leq 1\\{\frac {1}{4}}(2-t)^{3}&1\leq {t}\leq 2\end{cases}}} spline היא פונקציה פולינומית ממשית חלקה למקוטעין S : [ a , b ] → R {\displaystyle S\colon [a,b]\to \mathbb {R} } תחום סגור [ a , b ] {\displaystyle [a,b]}  המורכב מ- k {\displaystyle k}  מקטעים  [ t i − 1 , t i ] {\displaystyle [t_{i-1},t_{i}]} כאשר a = t 0 < t 1 < ⋯ < t k − 1 < t k = b {\displaystyle a=t_{0}<t_{1}<\dotsb <t_{k-1}<t_{k}=b} . ההגבלה של S {\displaystyle S} במקטע  i {\displaystyle i} הוא פולינום P i : [ t i − 1 , t i ] → R {\displaystyle P_{i}\colon [t_{i-1},t_{i}]\to \mathbb {R} } , כך ש: S ( t ) = { P 1 ( t ) ,  t 0 ≤ t < t 1 P 2 ( t ) ,  t 1 ≤ t < t 2 ⋮ P n ( t ) ,  t n − 1 ≤ t < t n {\displaystyle S(t)={\begin{cases}P_{1}(t){\mbox{, }}t_{0}\leq t<t_{1}\\P_{2}(t){\mbox{, }}t_{1}\leq t<t_{2}\\\vdots \\P_{n}(t){\mbox{, }}t_{n-1}\leq t<t_{n}\\\end{cases}}} הסדר הגבוה ביותר של פולינומים P i ( t ) {\displaystyle P_{i}(t)} נקרא סדר ה spline -  S {\displaystyle S} . כאמור, spline אחיד (uniform) אם כל תת-המקטעים באותו אורך במרחב הפרמטרי ולא אחידה אחרת. הרעיון הוא לבחור פולינומים באופן המבטיח חלקות מספקת ל  S {\displaystyle S} . באופן ספציפי, spline מסדר n {\displaystyle n} ,‏ S {\displaystyle S} נדרש להיות רציף וגזיר n − 1 {\displaystyle n-1}  פעמים בנקודות הפנימיות  t i {\displaystyle t_{i}} : ל i = 1 , … , k − 1 {\displaystyle i=1,\dotsc ,k-1} ו j = 0 , … , n − 1 {\displaystyle j=0,\dotsc ,n-1} P i ( j ) ( t i ) = P i + 1 ( j ) ( t i ) {\displaystyle P_{i}^{(j)}(t_{i})=P_{i+1}^{(j)}(t_{i})} . דוגמה פשוטה של spline ריבועי (מסדר 2) S ( t ) = { ( t + 1 ) 2 − 1 − 2 ≤ t < 0 1 − ( t − 1 ) 2 0 ≤ t ≤ 2 {\displaystyle S(t)={\begin{cases}(t+1)^{2}-1&-2\leq t<0\\1-(t-1)^{2}&0\leq t\leq 2\end{cases}}} אשר בה  S ′ ( 0 ) = 2 {\displaystyle S'(0)=2} . דוגמה פשוטה של cubic spline היא S ( t ) = | t | 3 {\displaystyle S(t)=\left|t\right|^{3}} או S ( t ) = { t 3 t ≥ 0 − t 3 t < 0 {\displaystyle S(t)={\begin{cases}t^{3}&t\geq 0\\-t^{3}&t<0\end{cases}}} ו S ′ ( 0 ) =   0 {\displaystyle S'(0)=\ 0} S ″ ( 0 ) =   0 {\displaystyle S''(0)=\ 0} דוגמה של שימוש ב cubic spline כדי ליצור עקומת פעמון של פולינומי הפצה של ארווין-הול: ביישומים בהם פונקציית ספליין אחת אינה שימושית ניתן להשתמש בסכום ממושקל (weighted-sum) של פונקציות בסיס על מנת לתאר עקומים מורכבים. ברישום מקובל C ( t ) = ∑ i P i ⋅ B i d ( t ) {\displaystyle C(t)=\sum _{i}P_{i}\cdot B_{i}^{d}(t)} כאשר C ( t ) {\displaystyle C(t)} פרמטרי ב t {\displaystyle t} , d {\displaystyle d} דרגת הספליין ונקודות הבקרה P i ∈ R n {\displaystyle P_{i}\in R^{n}} מגדירות את הטווח של העקום, לשם פשטות השמטנו את וקטור הקשרים הדרוש להגדרה מלאה של פונקציות הבסיס. לדוגמה, עבור עקום מישורי, נקודות הבסיס שוכנות במישור ו n = 2 {\displaystyle n=2} . תכונות B-Spline חלוקת היחידה - partition of unity - עבור וקטור קשרים t = { t i } i = 0 N : t ∈ [ t k − 1 , t N − k + 1 ] {\displaystyle {\cal {{t}=\{t_{i}\}_{i=0}^{N}:{\cal {{t}\in [t_{k-1},t_{N-k+1}]}}}}} , ∑ i = 0 N − k B i , k ( t ) = 1 , ∀ k > 0 {\displaystyle \sum _{i=0}^{N-k}B_{i,k}(t)=1,\forall {k}>0} . אינטואיטיבית, בדומה לפונקציות בזייה(bezier), סכום כל פונקציות הבסיס לכל נקודה בה הפונקציות מוגדרות יהיה 1. הכלה בקמור - convex hull property - העקום מול בקמור של נקודות הבקרה. הפחתת שינויים - Variation diminishing, בדומה לעקומי בזייה גם בעקומי b-spline, אם נחתוך את העקום המוגדר ביחס לאוסף נקודות הבקרה ווקטור הקשרים מספר החיתוכים של הקו הישר יהיה שווה או קטן ממספר החיתוכים של הקו עם הפוליגון הנוצר מחיבור נקודות הבקרה בקוים ישרים. תמך סופי - local support - שינוי במיקום של נקודת בקרה ישנה קטע סופי בעקום. מדיה וקבצים בנושא Spline בוויקישיתוף תורת ספליין, דף שער בספרייה הלאומית Spline, באתר MathWorld (באנגלית) Judd, Kenneth L. (1998). Numerical Methods in Economics. MIT Press. p. 225. ISBN 978-0-262-10071-7. Chen, Wai-Kai (2009). Feedback, Nonlinear, and Distributed Circuits. CRC Press. pp. 9–20. ISBN 978-1-4200-5881-9. Katz, Mitchell H. (2011). Multivariable Analysis: A Practical Guide for Clinicians and Public Health Researchers. Cambridge University Press. p. 82. ISBN 978-0-521-14107-9. Elaine Cohen, Realtime Pipelined Spline Data Fitting for Sketched Curves, Academic Press, 1991-01-01, עמ' 91–102, ISBN 978-0-12-438660-0 Fan, Jianqing & Yao, Qiwei (2005). "Spline Methods". Nonlinear time series: nonparametric and parametric methods. Springer. p. 247. ISBN 978-0-387-26142-3.{{cite book}}: תחזוקה - ציטוט: multiple names: authors list (link) Peter Shirly and Steve Marchner, fundamentals of computer graphics, ‏2009