स्पलाइन अंतर्वेशन

संख्यात्मक विश्लेषण के गणितीय क्षेत्र में, स्पलाइन अंतर्वेशन अंतर्वेशन का एक रूप है जहां इंटरपोलेंट एक विशेष प्रकार का खण्डवार बहुपद होता है जिसे स्पलाइन कहा जाता है। इसका अर्थ यह है कि सभी मानों के लिए एक ही उच्च-डिग्री बहुपद को एक साथ फिट करने के बजाय, स्पलाइन अंतर्वेशन निम्न-डिग्री बहुपद को मानों के लघु उपसमूहों में फिट करता है, उदाहरण के लिए, उन सभी में एक डिग्री दस बहुपद फिट करने के बजाय दस अंकों के प्रत्येक जोड़े के बीच नौ घन बहुपद फिट करना है। स्पलाइन अंतर्वेशन को अक्सर बहुपद अंतर्वेशन पर प्राथमिकता दी जाती है क्योंकि स्पलाइन के लिए निम्न-डिग्री बहुपद का उपयोग करते समय भी अंतर्वेशन त्रुटि को निम्न किया जा सकता है। स्प्लाइन अंतर्वेशन की घटना की समस्या से भी बचाता है, जिसमें उच्च-डिग्री बहुपद का उपयोग करके इंटरपोल करने पर बिंदुओं के बीच दोलन हो सकता है।

परिचय
मूल रूप से, स्पलाइन लोचदार रूलर के लिए एक शब्द था जो कई पूर्वनिर्धारित बिंदुओं या अंश (क्नोट्स) से गुजरने के लिए मुड़े हुए थे। इनका उपयोग हाथ से जहाज निर्माण और निर्माण के लिए तकनीकी चित्र बनाने के लिए किया जाता था, जैसा कि चित्र में दिखाया गया है।

हम गणितीय समीकरणों के एक समुच्चय का उपयोग करके समान प्रकार के वक्रों का मॉडल बनाना चाहते हैं। मान लीजिए कि हमारे पास एक अनुक्रम है $$n + 1$$ अंशों, $$(x_0, y_0)$$ द्वारा $$(x_n, y_n)$$. एक घन बहुपद होगा $$q_i(x)=y$$ अंश के प्रत्येक क्रमिक जोड़े के बीच $$(x_{i-1}, y_{i-1})$$ और $$(x_i, y_i)$$ उन दोनों से जुड़कर कहां $$i = 1, 2, \dots, n$$. तो वहाँ होगा $$n$$ बहुपद, पहले बहुपद से प्रारंभ होता है $$(x_0, y_0)$$, और अंतिम बहुपद पर समाप्त होता है $$(x_n, y_n)$$.

किसी भी वक्र की वक्रता $$y = y(x)$$ परिभाषित किया जाता है


 * $$\kappa = \frac{y''}{(1 + y'^2)^{3/2}},$$

कहाँ $$y'$$ और $$y''$$ के पहले और दूसरे व्युत्पन्न हैं $$y(x)$$ इसके संबंध में $$x$$. तख़्ते को एक ऐसा आकार देने के लिए जो झुकने को कम करता है (सभी अंश से गुजरने की बाधा के तहत), हम दोनों को परिभाषित करेंगे $$y'$$ और $$y''$$ अंश सहित हर जगह निरंतर रहना। प्रत्येक क्रमिक बहुपद में उनके जुड़ने वाले अंश पर समान मान (जो संबंधित डेटापॉइंट के y-मान के बराबर होते हैं), डेरिवेटिव और दूसरा डेरिवेटिव होना चाहिए, जिसका अर्थ है कि


 * $$\begin{cases}

q_i(x_i) = q_{i+1}(x_i) = y_i \\ q'_i(x_i) = q'_{i+1}(x_i) \\ q_i(x_i) = q_{i+1}(x_i) \end{cases} \qquad 1 \le i \le n - 1.$$ यह केवल तभी प्राप्त किया जा सकता है जब घात 3 (घन बहुपद) या उससे अधिक के बहुपदों का उपयोग किया जाए। शास्त्रीय दृष्टिकोण बिल्कुल 3 डिग्री - घन स्पलाइन के बहुपदों का उपयोग करना है।

उपरोक्त तीन स्थितियों के अतिरिक्त, एक 'प्राकृतिक घन स्पलाइन ' में यह शर्त होती है $$q_1(x_0) = q_n(x_n) = 0$$.

उपरोक्त तीन मुख्य स्थितियों के अतिरिक्त, एक 'क्लैम्प्ड घन स्पलाइन ' में ये स्थितियाँ होती हैं $$q'_1(x_0) = f'(x_0)$$ और $$q'_n(x_n) = f'(x_n)$$ कहाँ $$f'(x)$$ इंटरपोलेटेड फलन का व्युत्पन्न है।

उपरोक्त तीन मुख्य स्थितियों के अतिरिक्त, 'नॉट-अ-नॉट स्प्लाइन' में वे स्थितियाँ होती हैं जो $$q_1(x_1) = q_2(x_1)$$ और $$q_{n-1}(x_{n-1}) = q_{n}(x_{n-1})$$.

इंटरपोलेटिंग घन स्पलाइन को खोजने के लिए एल्गोरिदम
हम प्रत्येक बहुपद ज्ञात करना चाहते हैं $$q_i(x)$$ अंक दिए गए $$(x_0, y_0)$$ द्वारा $$(x_n, y_n)$$. ऐसा करने के लिए, हम वक्र के केवल एक खंड पर विचार करेंगे, $$q(x)$$, जो से प्रक्षेपित होगा $$(x_1, y_1)$$ को $$(x_2, y_2)$$. इस खंड में स्लोप होगी $$k_1$$ और $$k_2$$ इसके अंतिम बिंदु पर. या, अधिक सटीक रूप से,


 * $$q(x_1) = y_1,$$
 * $$q(x_2) = y_2,$$
 * $$q'(x_1) = k_1,$$
 * $$q'(x_2) = k_2.$$

पूरा समीकरण $$q(x)$$ सममित रूप में लिखा जा सकता है

कहाँ

लेकिन क्या हैं $$k_1$$ और $$k_2$$? इन महत्वपूर्ण मूल्यों को प्राप्त करने के लिए, हमें उस पर विचार करना चाहिए


 * $$q' = \frac{dq}{dx} = \frac{dq}{dt} \frac{dt}{dx} = \frac{dq}{dt} \frac{1}{x_2 - x_1}.$$

इसके बाद यह अनुसरण करता है

सेटिंग $t = 0$ और $t = 1$ क्रमशः समीकरणों में ($$) और ($$), एक से मिलता है ($$) वह वास्तव में पहला व्युत्पन्न है $q′(x_{1}) = k_{1}$ और $q′(x_{2}) = k_{2}$, और दूसरा डेरिवेटिव भी

यदि अब $(x_{i}, y_{i}), i = 0, 1, ..., n$ हैं $n + 1$ अंक, और

जहां मैं = 1, 2, ..., एन, और $$t = \tfrac{x - x_{i-1}}{x_i - x_{i-1}}$$ n तृतीय-डिग्री बहुपद प्रक्षेप हैं $$ अंतराल में $x_{i−1} ≤ x ≤ x_{i}$ i = 1, ..., n के लिए ऐसा कि $q′_{i} (x_{i}) = q′_{i+1}(x_{i})$ i = 1, ..., n − 1 के लिए, तो n बहुपद मिलकर अंतराल में एक अवकलनीय फलन को परिभाषित करते हैं $x_{0} ≤ x ≤ x_{n}$, और

i = 1, ..., n, कहां के लिए

यदि क्रम $k_{0}, k_{1}, ..., k_{n}$ ऐसा है कि, इसके अतिरिक्त, $q′′_{i}(x_{i}) = q′′_{i+1}(x_{i})$ i = 1, ..., n − 1 के लिए धारण करता है, तो परिणामी फलन में निरंतर दूसरा व्युत्पन्न भी होगा।

से ($$), ($$), ($$) और ($$) इस प्रकार है कि यह मामला है यदि और केवल यदि

i = 1, ..., n − 1 के लिए। संबंध ($$) हैं $n − 1$ के लिए रैखिक समीकरण $n + 1$ मान $k_{0}, k_{1}, ..., k_{n}$.

स्पलाइन प्रक्षेप के लिए मॉडल होने वाले लोचदार रूलर के लिए, सबसे बाईं ओर की गाँठ के बाईं ओर और सबसे दाईं ओर की गाँठ के दाईं ओर शासक स्वतंत्र रूप से घूम सकता है और इसलिए एक सीधी रेखा का रूप ले लेगा $q′′ = 0$. जैसा $$ का एक सतत कार्य होना चाहिए $$, इसके अतिरिक्त प्राकृतिक विभाजन $n − 1$ रेखीय समीकरण ($$) होना चाहिए
 * $$q''_1(x_0) = 2 \frac {3(y_1 - y_0) - (k_1 + 2k_0)(x_1 - x_0)}{{(x_1 - x_0)}^2} = 0,$$
 * $$q''_n(x_n) = -2 \frac {3(y_n - y_{n-1}) - (2k_n + k_{n-1})(x_n - x_{n-1})}{{(x_n - x_{n-1})}^2} = 0,$$

यानी कि

अंततः, ($y$) के साथ साथ ($$) और ($$) गठित करना $n + 1$ रैखिक समीकरण जो विशिष्ट रूप से परिभाषित करते हैं $n + 1$ पैरामीटर $k_{0}, k_{1}, ..., k_{n}$.

अन्य अंतिम स्थितियाँ उपस्थित हैं, 'क्लैम्प्ड स्प्लाइन', जो स्प्लाइन के सिरों पर स्लोप को निर्दिष्ट करती है, और लोकप्रिय 'नॉट-ए-नॉट स्प्लाइन', जिसके लिए आवश्यक है कि तीसरा व्युत्पन्न भी निरंतर हो। $x_{1}$ और $x_{n−1}$ अंक. 'नॉट-ए-गाँठ' स्पलाइन के लिए, अतिरिक्त समीकरण पढ़ेंगे:


 * $$q_1(x_1) = q_2(x_1) \Rightarrow \frac{1}{\Delta x_1^2} k_0 + \left( \frac{1}{\Delta x_1^2} - \frac{1}{\Delta x_2^2} \right) k_1 - \frac{1}{\Delta x_2^2} k_2 = 2 \left( \frac{\Delta y_1}{\Delta x_1^3} - \frac{\Delta y_2}{\Delta x_2^3} \right),$$
 * $$q_{n-1}(x_{n-1}) = q_n(x_{n-1}) \Rightarrow \frac{1}{\Delta x_{n-1}^2} k_{n-2} + \left( \frac{1}{\Delta x_{n-1}^2} - \frac{1}{\Delta x_n^2} \right) k_{n-1} - \frac{1}{\Delta x_n^2} k_n = 2\left( \frac{\Delta y_{n-1} }{\Delta x_{n-1}^3 }- \frac{ \Delta y_n}{ \Delta x_n^3 } \right),$$

कहाँ $$\Delta x_i = x_i - x_{i-1},\ \Delta y_i = y_i - y_{i-1}$$.

उदाहरण
तीन बिंदुओं के मामले में मान $$k_0, k_1, k_2$$ त्रिविकर्ण आव्यूह को हल करके पाए जाते हैं

\begin{bmatrix} a_{11} & a_{12} & 0      \\ a_{21} & a_{22} & a_{23} \\ 0     & a_{32} & a_{33}  \\ \end{bmatrix} \begin{bmatrix} k_0 \\ k_1 \\ k_2 \\ \end{bmatrix} = \begin{bmatrix} b_1 \\ b_2 \\ b_3 \\ \end{bmatrix} $$ साथ
 * $$a_{11} = \frac{2}{x_1 - x_0},$$
 * $$a_{12} = \frac{1}{x_1 - x_0},$$
 * $$a_{21} = \frac{1}{x_1 - x_0},$$
 * $$a_{22} = 2 \left(\frac{1}{x_1 - x_0} + \frac{1}\right),$$
 * $$a_{23} = \frac{1},$$
 * $$a_{32} = \frac{1}{x_2 - x_1},$$
 * $$a_{33} = \frac{2}{x_2 - x_1},$$
 * $$b_1 = 3 \frac{y_1 - y_0}{(x_1 - x_0)^2},$$
 * $$b_2 = 3 \left(\frac{y_1 - y_0}{{(x_1 - x_0)}^2} + \frac{y_2 - y_1}{{(x_2 - x_1)}^2}\right),$$
 * $$b_3 = 3 \frac{y_2 - y_1}{(x_2 - x_1)^2}.$$

तीन बिंदुओं के लिए
 * $$(-1,0.5),\ (0,0),\ (3,3),$$

किसी को वह मिल जाता है
 * $$k_0 = -0.6875,\ k_1 = -0.1250,\ k_2 = 1.5625,$$

और से ($$) और ($$) वह
 * $$a_1 = k_0(x_1 - x_0) - (y_1 - y_0) = -0.1875,$$
 * $$b_1 = -k_1(x_1 - x_0) + (y_1 - y_0) = -0.3750,$$
 * $$a_2 = k_1(x_2 - x_1) - (y_2 - y_1) = -3.3750,$$
 * $$b_2 = -k_2(x_2 - x_1) + (y_2 - y_1) = -1.6875.$$

चित्र में, दो घन बहुपदों से युक्त स्पलाइन फलन $$q_1(x)$$ और $$q_2(x)$$ द्वारा दिए गए ($$) यह प्रदर्शित है।

यह भी देखें

 * घन हर्माइट स्पलाइन
 * सेंट्रिपेटल कैटमुल-रोम स्पलाइन
 * असतत स्पलाइन प्रक्षेप
 * मोनोटोन घन अंतर्वेशन
 * गैर-समान तर्कसंगत बी-स्पलाइन
 * बहुभिन्नरूपी प्रक्षेप
 * बहुपद प्रक्षेप
 * स्पलाइन को चिकना करना
 * स्पलाइन तरंगिका
 * पतली प्लेट स्पलाइन
 * पॉलीहार्मोनिक स्पलाइन

कंप्यूटर कोड
TinySpline: स्पलाइन के लिए ओपन सोर्स सी-लाइब्रेरी जो घन स्पलाइन अंतर्वेशन लागू करती है

SciPy स्प्लाइन अंतर्वेशन: एक पायथन पैकेज जो अंतर्वेशन लागू करता है

घन अंतर्वेशन: घन स्पलाइन अंतर्वेशन के लिए ओपन सोर्स सी#-लाइब्रेरी

बाहरी संबंध

 * 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)
 * Information about spline interpolation (including code in Fortran 77)