2011-10-16 11 views
6

तो हम जैसेक्या गणितीय तरीकों इंटरपोलेशन 2 डी से 2 डी कार्यों के लिए काम करते हैं?

12,32 
24,12 
... 
लंबाई 2xN साथ

और एक अन्य

44,32 
44,19 
... 
लंबाई 2xN साथ

एक मैट्रिक्स है और वहाँ कुछ समारोह च (एक्स, वाई) है कि रिटर्न z [1], z [है 2]। उन 2 मैट्रिक्स जिन्हें हमें दिया गया था एक्स, वाई और जेड [1], जेड [2] के लिए ज्ञात मान जोड़े का प्रतिनिधित्व करते हैं। इंटरपोलेशन फॉर्मूला क्या हैं जो इस तरह के मामले में मदद करेंगे?

+0

आप के साथ एक समारोह के लिए एक बहुपद प्रक्षेप की तरह कुछ के लिए देख रहे हैं 2 चर? – amit

+0

हां। लेकिन उस समारोह को 2 चर वापस करना होगा ... – Rella

+0

आप जटिल संख्याओं के साथ ऐसा करने का प्रयास कर सकते हैं। – starblue

उत्तर

4

यदि आप एक वापसी मूल्य के लिए समस्या का समाधान करते हैं, तो आप दो कार्यों f_1(x,y) और f_2(x,y) इंटरपोलेशन द्वारा पा सकते हैं, और अपने कार्य को f(x, y) = [f_1(x,y), f_2(x,y)] के रूप में लिख सकते हैं। अपनी समस्या के लिए उपयुक्त इंटरपोलेशन फ़ंक्शन को हल करने के लिए बस कोई विधि चुनें।

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


संपादित करें: अधिक जानकारी और कुछ लिंक।

Bilinear interpolation (wikipedia) का उपयोग कर एक टुकड़ा हल संभव है।

बहुपद इंटरपोलेशन के लिए, यदि आपका डेटा ग्रिड पर है, तो आप निम्न एल्गोरिदम का उपयोग कर सकते हैं (मुझे इसके लिए संदर्भ नहीं मिल रहा है, यह स्मृति से है)।

डेटा बिंदुओं एक kl द्वारा ग्रिड पर हैं, तो अपने बहुपद इस प्रकार पुनर्लेखन:

f(x,y) = cx_1(x)*y^(k-1) + cx_2(x)*y^(k-2) + ... + cx_k(x) 

यहाँ, प्रत्येक गुणांक cx_i(x) भी डिग्री l की एक बहुपद है। पहला चरण ग्रिड की प्रत्येक पंक्ति या कॉलम को इंटरपोल करके k डिग्री l के बहुपदों को ढूंढना है। जब ऐसा होता है, तो आप cx_i(x0), cx_i(x1) के रूप में प्रत्येक cx_i(x) बहुआयामी पद के लिए प्रक्षेप अंक के रूप में l गुणांक सेट (या दूसरे शब्दों में, l बहुआयामी पद) है, ..., cx_i(xl) (आप एल * कश्मीर अंक की कुल संख्या)। अब, आप इन बहुपदों को इंटरपोलेशन पॉइंट्स के रूप में उपरोक्त स्थिरांक का उपयोग करके निर्धारित कर सकते हैं, जो आपको परिणामस्वरूप f(x,y) देता है।

समान विधि का उपयोग बेजियर वक्र या स्प्लिंस के लिए किया जाता है। केवल अंतर यह है कि आप बहुपद गुणांक के बजाय नियंत्रण बिंदुओं का उपयोग करते हैं। आपको सबसे पहले स्प्लिंस का एक सेट मिलता है जो आपके डेटा पॉइंट उत्पन्न करेगा, और फिर आप सतह के वक्र के नियंत्रण बिंदु प्राप्त करने के लिए इन मध्यवर्ती घटता के नियंत्रण बिंदुओं को विभाजित करेंगे।


मुझे उपरोक्त एल्गोरिदम को स्पष्ट करने के लिए एक उदाहरण जोड़ने दें।

0,0 => 1 
0,1 => 2 
1,0 => 3 
1,1 => 4 

हम फिटिंग दो बहुआयामी पद से शुरू: के लिए (1, 0) और (1, 1 डेटा बिंदुओं के लिए एक (0,0) और (0,1), और एक अन्य के निम्न डेटा बिंदु होते हैं चलो):

f_0(x) = x + 1 
f_1(x) = x + 3 

अब, हम दूसरी दिशा coefficients.When हम इन बहुपद गुणांक खड़ी पढ़ निर्धारित करने के लिए अंतर्वेशन, हम दो बहुआयामी पद की जरूरत है। एक 0 और 1 दोनों पर 1 का मूल्यांकन करता है; और दूसरा वह जिसमें 0 से 1 के लिए मूल्यांकन करता है, और 3 1 पर:

cy_1(y) = 1 
cy_2(y) = 2*y + 1 

अगर हम f(x,y) में इन गठबंधन, हम पाते हैं:

f(x,y) = cy_1(y)*x + cy_2(y) 
     = 1*x + (2*y + 1)*1 
     = x + 2*y + 1 
+0

क्या आप समझा सकते हैं [या संदर्भ समझाते हैं] आपके द्वारा वर्णित विधियों को 2 आयामी सूचनाओं के लिए कैसे काम किया जाता है? – amit