2012-06-21 15 views
7

का उपयोग कर वेक्टर-मूल्यवान फ़ंक्शन इंटरपोलेशन NumPy/SciPy का उपयोग कर वेक्टर-मूल्यवान फ़ंक्शन को इंटरपोल करने का कोई तरीका है?NumPy/SciPy

स्केलर-मूल्यवान कार्यों पर काम करने वाले बहुत सारे प्रसाद हैं, और मुझे लगता है कि वे वेक्टर के प्रत्येक घटक को अलग-अलग अनुमान लगाने के लिए उनमें से एक का उपयोग कर सकते हैं, लेकिन क्या इसे और अधिक कुशलतापूर्वक करने का कोई तरीका है?

विस्तृत करने के लिए, मेरे पास एक कार्य f(x) = V है, जहां x स्केलर है और V एक वेक्टर है। मेरे पास xs और उनके संबंधित Vs का संग्रह भी है। मैं के लिए V को इंटरपोलेट और अनुमानित करने के लिए इसका उपयोग करना चाहता हूं।

उत्तर

5

इंटरपोलेशन फ़ंक्शन scipy.interpolate.interp1d इंटरपोलेंट के लिए वेक्टर-मूल्यवान डेटा पर भी काम करता है (हालांकि वेक्टर-मूल्यवान तर्क डेटा के लिए नहीं)। इस प्रकार, जब तक x स्केलर है, तो आप इसे सीधे उपयोग कर सकते हैं।

>>> from scipy.interpolate import interp1d 
>>> x = np.linspace(0, 10, 10) 
>>> y = np.array([np.exp(-x/3.0), 2*x]) 
>>> f = interp1d(x, y) 
>>> f(2) 
array([ 0.51950421, 4.  ]) 
>>> np.array([np.exp(-2/3.0), 2*2]) 
array([ 0.51341712, 4.  ]) 

ध्यान दें कि 2 तर्क वेक्टर x में नहीं है, इस उदाहरण में y में पहली घटक के लिए इस प्रकार प्रक्षेप त्रुटि:

निम्नलिखित कोड the scipy documentation में दिए गए उदाहरण के एक मामूली विस्तार है।

+0

एक आकर्षण की तरह काम करता है, धन्यवाद! – ktdrv