त्रिरेखीय प्रक्षेप

ट्रिलिनियर इंटरपोलेशन त्रि-आयामी अंतरिक्ष|3-आयामी नियमित ग्रिड पर बहुभिन्नरूपी इंटरपोलेशन की एक विधि है। यह किसी मध्यवर्ती बिंदु पर किसी फ़ंक्शन के मान का अनुमान लगाता है $$(x, y, z)$$ जाली बिंदुओं पर फ़ंक्शन डेटा का उपयोग करके, स्थानीय अक्षीय आयताकार प्रिज्म (ज्यामिति) के भीतर रैखिक रूप से। एक मनमाना, असंरचित ग्रिड के लिए (जैसा कि परिमित तत्व विश्लेषण में उपयोग किया जाता है), प्रक्षेप के अन्य तरीकों का उपयोग किया जाना चाहिए; यदि सभी जाल तत्व चतुर्पाश्वीय  (3डी संकेतन) हैं, तो baryकेंद्रित_निर्देशांक_(गणित)#बैरीसेंट्रिक_निर्देशांक_ऑन_टेट्राहेड्रा एक सीधी प्रक्रिया प्रदान करते हैं।

ट्रिलिनियर इंटरपोलेशन का उपयोग अक्सर संख्यात्मक विश्लेषण, डेटा विश्लेषण और कंप्यूटर चित्रलेख  में किया जाता है।

रैखिक और द्विरेखीय प्रक्षेप की तुलना
रेखिक आंतरिक रैखिक इंटरपोलेशन का विस्तार है, जो आयाम वाले स्थानों में संचालित होता है $$D = 1$$, और द्विरेखीय प्रक्षेप, जो आयाम के साथ संचालित होता है $$D = 2$$, आयाम के लिए $$D = 3$$. ये प्रक्षेप योजनाएं क्रम 1 के बहुपदों का उपयोग करती हैं, जो क्रम 2 की सटीकता देती हैं, और इसकी आवश्यकता होती है $$2^D = 8$$ प्रक्षेप बिंदु के आसपास आसन्न पूर्व-परिभाषित मान। ट्रिलिनियर इंटरपोलेशन पर पहुंचने के कई तरीके हैं, जो ऑर्डर 1 के 3-आयामी टेन्सर  बी-पट्टी इंटरपोलेशन के बराबर है, और ट्रिलिनियर इंटरपोलेशन ऑपरेटर भी 3 लीनियर इंटरपोलेशन ऑपरेटरों का एक टेंसर उत्पाद है।

विधि
एक आवर्त और घनीय जाली पर, चलो $$x_\text{d}$$, $$y_\text{d}$$, और $$z_\text{d}$$ प्रत्येक के बीच अंतर हो $$x$$, $$y$$, $$z$$ और संबंधित छोटा निर्देशांक, वह है:


 * $$\begin{align}

x_\text{d} = \frac{x - x_0}{x_1 - x_0} \\ y_\text{d} = \frac{y - y_0}{y_1 - y_0} \\ z_\text{d} = \frac{z - z_0}{z_1 - z_0} \end{align}$$ कहाँ $$ x_0 $$ नीचे जाली बिंदु को इंगित करता है $$ x $$, और $$ x_1 $$ ऊपर जाली बिंदु को इंगित करता है $$ x $$ और इसी तरह के लिए $$y_0, y_1, z_0$$ और $$z_1$$.

सबसे पहले हम साथ-साथ प्रक्षेप करते हैं $$x$$ (कल्पना करें कि हम परिभाषित घन के फलक को आगे बढ़ा रहे हैं $$C_{0jk}$$ विरोधी चेहरे के लिए, द्वारा परिभाषित $$C_{1jk}$$), देना:
 * $$\begin{align}

c_{00} &= c_{000} (1 - x_\text{d}) + c_{100} x_\text{d} \\ c_{01} &= c_{001} (1 - x_\text{d}) + c_{101} x_\text{d} \\ c_{10} &= c_{010} (1 - x_\text{d}) + c_{110} x_\text{d} \\ c_{11} &= c_{011} (1 - x_\text{d}) + c_{111} x_\text{d} \end{align}$$ कहाँ $$c_{000}$$ का अर्थ है फ़ंक्शन मान $$ (x_0, y_0, z_0). $$ फिर हम इन मूल्यों को प्रक्षेपित करते हैं (साथ में)। $$y$$, से धक्का देना $$C_{i0k}$$ को $$C_{i1k}$$), देना:
 * $$\begin{align}

c_0 &= c_{00}(1 - y_\text{d}) + c_{10}y_\text{d} \\ c_1 &= c_{01}(1 - y_\text{d}) + c_{11}y_\text{d} \end{align}$$ अंततः हम इन मूल्यों को एक साथ प्रक्षेपित करते हैं $$z$$ (एक पंक्ति से चलते हुए):
 * $$c = c_0(1 - z_\text{d}) + c_1z_\text{d} .$$

यह हमें बिंदु के लिए अनुमानित मूल्य देता है।

त्रिरेखीय प्रक्षेप का परिणाम तीन अक्षों के साथ प्रक्षेप चरणों के क्रम से स्वतंत्र है: कोई अन्य क्रम, उदाहरण के लिए $$x$$, फिर साथ में $$y$$, और अंत में साथ $$z$$, समान मान उत्पन्न करता है।

उपरोक्त ऑपरेशनों की कल्पना इस प्रकार की जा सकती है: सबसे पहले हम एक घन के आठ कोनों को ढूंढते हैं जो हमारी रुचि के बिंदु को घेरे हुए हैं। इन कोनों के मूल्य हैं $$c_{000}$$, $$c_{100}$$, $$c_{010}$$, $$c_{110}$$, $$c_{001}$$, $$c_{101}$$, $$c_{011}$$, $$c_{111}$$.

इसके बाद, हम बीच में रैखिक प्रक्षेप करते हैं $$c_{000}$$ और $$c_{100}$$ ढूँढ़ने के लिए $$c_{00}$$, $$c_{001}$$ और $$c_{101}$$ ढूँढ़ने के लिए $$c_{01}$$, $$c_{011}$$ और $$c_{111}$$ ढूँढ़ने के लिए $$c_{11}$$, $$c_{010}$$ और $$c_{110}$$ ढूँढ़ने के लिए $$c_{10}$$.

अब हम बीच में प्रक्षेप करते हैं $$c_{00}$$ और $$c_{10}$$ ढूँढ़ने के लिए $$c_{0}$$, $$c_{01}$$ और $$c_{11}$$ ढूँढ़ने के लिए $$c_{1}$$. अंत में, हम मूल्य की गणना करते हैं $$c$$ के रैखिक प्रक्षेप के माध्यम से $$c_{0}$$ और $$c_{1}$$ व्यवहार में, एक त्रिरेखीय प्रक्षेप एक रैखिक प्रक्षेप के साथ संयुक्त दो द्विरेखीय प्रक्षेप के समान होता है:
 * $$c \approx l\left( b(c_{000}, c_{010}, c_{100}, c_{110}),\, b(c_{001}, c_{011}, c_{101}, c_{111})\right)$$

वैकल्पिक एल्गोरिदम
इंटरपोलेशन समस्या का समाधान लिखने का एक वैकल्पिक तरीका है
 * $$f(x, y, z) \approx a_0 + a_1 x + a_2 y + a_3 z + a_4 x y + a_5 x z + a_6 y z + a_7 x y z$$

जहां रैखिक प्रणाली को हल करके गुणांक पाए जाते हैं
 * $$\begin{align}

\begin{bmatrix} 1 & x_0 & y_0 & z_0 & x_0 y_0 & x_0 z_0 & y_0 z_0 & x_0 y_0 z_0 \\ 1 & x_1 & y_0 & z_0 & x_1 y_0 & x_1 z_0 & y_0 z_0 & x_1 y_0 z_0 \\ 1 & x_0 & y_1 & z_0 & x_0 y_1 & x_0 z_0 & y_1 z_0 & x_0 y_1 z_0 \\ 1 & x_1 & y_1 & z_0 & x_1 y_1 & x_1 z_0 & y_1 z_0 & x_1 y_1 z_0 \\ 1 & x_0 & y_0 & z_1 & x_0 y_0 & x_0 z_1 & y_0 z_1 & x_0 y_0 z_1 \\ 1 & x_1 & y_0 & z_1 & x_1 y_0 & x_1 z_1 & y_0 z_1 & x_1 y_0 z_1 \\ 1 & x_0 & y_1 & z_1 & x_0 y_1 & x_0 z_1 & y_1 z_1 & x_0 y_1 z_1 \\ 1 & x_1 & y_1 & z_1 & x_1 y_1 & x_1 z_1 & y_1 z_1 & x_1 y_1 z_1 \end{bmatrix}\begin{bmatrix} a_0 \\ a_1 \\ a_2 \\ a_3 \\ a_4 \\ a_5 \\ a_6 \\ a_7 \end{bmatrix} = \begin{bmatrix} c_{000} \\ c_{100} \\ c_{010} \\ c_{110} \\ c_{001} \\ c_{101} \\ c_{011} \\ c_{111} \end{bmatrix}, \end{align}$$ परिणाम दे रहा है


 * $$\begin{align}

a_0 ={} &\frac{-c_{000} x_1 y_1 z_1 + c_{001} x_1 y_1 z_0 + c_{010} x_1 y_0 z_1 - c_{011} x_1 y_0 z_0}{(x_0 - x_1) (y_0 - y_1) (z_0 - z_1)} +{} \\ &\frac{ c_{100} x_0 y_1 z_1 - c_{101} x_0 y_1 z_0 - c_{110} x_0 y_0 z_1 + c_{111} x_0 y_0 z_0}{(x_0 - x_1) (y_0 - y_1) (z_0 - z_1)}, \\[4pt] a_1 ={} &\frac{ c_{000} y_1 z_1 - c_{001} y_1 z_0 - c_{010} y_0 z_1 + c_{011} y_0 z_0}{(x_0 - x_1) (y_0 - y_1) (z_0 - z_1)} +{} \\ &\frac{-c_{100} y_1 z_1 + c_{101} y_1 z_0 + c_{110} y_0 z_1 - c_{111} y_0 z_0}{(x_0 - x_1) (y_0 - y_1) (z_0 - z_1)}, \\[4pt] a_2 ={} &\frac{ c_{000} x_1 z_1 - c_{001} x_1 z_0 - c_{010} x_1 z_1 + c_{011} x_1 z_0}{(x_0 - x_1) (y_0 - y_1) (z_0 - z_1)} +{} \\ &\frac{-c_{100} x_0 z_1 + c_{101} x_0 z_0 + c_{110} x_0 z_1 - c_{111} x_0 z_0}{(x_0 - x_1) (y_0 - y_1) (z_0 - z_1)}, \\[4pt] a_3 ={} &\frac{ c_{000} x_1 y_1 - c_{001} x_1 y_1 - c_{010} x_1 y_0 + c_{011} x_1 y_0}{(x_0 - x_1) (y_0 - y_1) (z_0 - z_1)} +{} \\ &\frac{-c_{100} x_0 y_1 + c_{101} x_0 y_1 + c_{110} x_0 y_0 - c_{111} x_0 y_0}{(x_0 - x_1) (y_0 - y_1) (z_0 - z_1)}, \\[4pt] a_4 ={} &\frac{-c_{000} z_1 + c_{001} z_0 + c_{010} z_1 - c_{011} z_0 + c_{100} z_1 - c_{101} z_0 - c_{110} z_1 + c_{111} z_0}{(x_0 - x_1) (y_0 - y_1) (z_0 - z_1)}, \\[4pt] a_5 = &\frac{-c_{000} y_1 + c_{001} y_1 + c_{010} y_0 - c_{011} y_0 + c_{100} y_1 - c_{101} y_1 - c_{110} y_0 + c_{111} y_0}{(x_0 - x_1) (y_0 - y_1) (z_0 - z_1)}, \\[4pt] a_6 ={} &\frac{-c_{000} x_1 + c_{001} x_1 + c_{010} x_1 - c_{011} x_1 + c_{100} x_0 - c_{101} x_0 - c_{110} x_0 + c_{111} x_0}{(x_0 - x_1) (y_0 - y_1) (z_0 - z_1)}, \\[4pt] a_7 ={} &\frac{ c_{000} - c_{001} - c_{010} + c_{011} - c_{100} + c_{101} + c_{110} - c_{111}}{(x_0 - x_1) (y_0 - y_1) (z_0 - z_1)}. \end{align}$$

यह भी देखें

 * रेखिक आंतरिक
 * द्विरेखीय प्रक्षेप
 * ट्राइक्यूबिक इंटरपोलेशन
 * रेडियल इंटरपोलेशन
 * चतुष्फलकीय प्रक्षेप
 * स्लर्प

बाहरी संबंध

 * pseudo-code from NASA, describes an iterative inverse trilinear interpolation (given the vertices and the value of C find Xd, Yd and Zd).
 * Paul Bourke, Interpolation methods, 1999. Contains a very clever and simple method to find trilinear interpolation that is based on binary logic and can be extended to any dimension (Tetralinear, Pentalinear, ...).
 * Kenwright, Free-Form Tetrahedron Deformation. International Symposium on Visual Computing. Springer International Publishing, 2015.