NumPy 1.14 - numpy.polynomial.hermite.hermfit()

numpy.polynomial.hermite.hermfit




numpy

numpy.polynomial.hermite.hermfit

numpy.polynomial.hermite.hermfit(x, y, deg, rcond=None, full=False, w=None) [source]

डेटा के लिए हरमाइट श्रृंखला के फिट वर्ग।

डिग्री deg हरमिट श्रृंखला के गुणांक को लौटाएं जो कि बिंदु x पर दिए गए डेटा मान y लिए सबसे कम वर्ग है। यदि y 1-D है तो लौटे हुए गुणांक भी 1-D होंगे। यदि y 2-D है तो कई फिट किए जाते हैं, y प्रत्येक कॉलम के लिए एक, और परिणामी गुणांक 2-D रिटर्न के संगत कॉलम में संग्रहीत किए जाते हैं। सज्जित बहुपद (स) रूप में हैं

p (x) = c_0 + c_1 * H_1 (x) + ... + c_n * H_n (x),

जहां n है।

पैरामीटर:

x : array_like, shape (M,)

एम नमूना बिंदुओं के x- निर्देशांक (x[i], y[i])

y : array_like, shape (M,) या (M, K)

y नमूना बिंदुओं के निर्देशांक। एक ही एक्स-निर्देशांक साझा करने वाले नमूना बिंदुओं के कई डेटा सेट 2 डी-सरणी में पारित करके एक बार में फिट किए जा सकते हैं जिसमें प्रति कॉलम एक डेटासेट होता है।

deg : int या 1-D array_like

फिटिंग बहुपद की डिग्री। यदि deg एक पूर्णांक है, तो सभी टर्म और deg टर्म सहित सभी शब्द फिट में शामिल हैं। NumPy संस्करणों के लिए = = 1.11.0 पूर्णांकों की एक सूची निर्दिष्ट करता है, जिसमें शामिल करने के लिए शब्दों की डिग्री निर्दिष्ट की जा सकती है।

आरकंड : फ्लोट, वैकल्पिक

फिट की सापेक्ष स्थिति संख्या। इस सबसे बड़े एकवचन मान के सापेक्ष छोटे मानों को अनदेखा किया जाएगा। डिफ़ॉल्ट मान len (x) * eps है, जहां eps फ्लोट प्रकार की सापेक्ष परिशुद्धता है, ज्यादातर मामलों में लगभग 2e-16।

पूर्ण : बूल, वैकल्पिक

वापसी मूल्य की प्रकृति का निर्धारण स्विच करें। जब यह गलत है (डिफ़ॉल्ट) सिर्फ गुणांक लौटा दिए जाते हैं, जब एकवचन मान के अपघटन से सही नैदानिक ​​जानकारी भी वापस आ जाती है।

w : array_like, shape ( M ), वैकल्पिक

तौल। यदि कोई नहीं है, तो फिट के लिए प्रत्येक बिंदु (x[i],y[i]) का योगदान w[i] द्वारा किया जाता है। आदर्श रूप से वजन को चुना जाता है ताकि उत्पादों की त्रुटियां w[i]*y[i] सभी में एक ही विचरण हो। कोई डिफ़ॉल्ट मान नहीं है।

यह दिखाता है:

coef : ndarray, आकार (M,) या (M, K)

हर्माइट गुणांक कम से उच्च करने का आदेश दिया। यदि y 2-D था, तो y कॉलम k में डेटा के लिए गुणांक कॉलम k में हैं।

[अवशेष, रैंक, एकवचन_लेख, rcond] : सूची

ये मान केवल full = सत्य होने पर वापस किए जाते हैं

रेजिडेंस - कम से कम वर्गों के वर्ग अवशेषों का योग फिट रैंक - स्केल्ड वैंडर्मोंड मैट्रिक्स sv के संख्यात्मक रैंक - स्केल्ड वैंडरमॉन्ड मैट्रिक्स आरसीओंड का विलक्षण मान - rcond का rcond

अधिक जानकारी के लिए, linalg.lstsq देखें।

चेतावनी देते हैं:

RankWarning

कम से कम वर्ग फिट में गुणांक मैट्रिक्स की रैंक की कमी है। चेतावनी केवल तभी full जब full = गलत। चेतावनियों को बंद किया जा सकता है

>>> import warnings
>>> warnings.simplefilter('ignore', RankWarning)

यह भी देखें

chebfit , legfit , lagfit , polyfit , hermefit

hermval
एक हर्मीट श्रृंखला का मूल्यांकन करता है।
hermvander
हरमाइट श्रृंखला के वैंडर्मोंडे मैट्रिक्स।
hermweight
हरमाइट वजन समारोह
linalg.lstsq
मैट्रिक्स से कम से कम वर्गों की गणना करता है।
scipy.interpolate.UnivariateSpline
कंप्यूट फिट बैठता है।

टिप्पणियाँ

समाधान हर्माइट श्रृंखला p के गुणांक है जो भारित चुकता त्रुटियों के योग को कम करता है

E = \ sum_j w_j ^ 2 * | y_j - p (x_j) | ^ 2 |

जहां w_j वजन कर रहे हैं। इस समस्या को (आमतौर पर) अतिव्यापी मैट्रिक्स समीकरण सेट करके हल किया जाता है

V (x) * c = w * y,

जहां V x के भारित छद्म वैंडमोंड मैट्रिक्स हैं, c लिए हल किए जाने वाले गुणांक हैं, w वजन हैं, y मनाया मान हैं। यह समीकरण तब V के एकवचन मान अपघटन का उपयोग करके हल किया जाता है।

यदि V कुछ विलक्षण मान इतने छोटे हैं कि उन्हें उपेक्षित किया जाता है, तो एक RankWarning जारी किया जाएगा। इसका मतलब यह है कि गुणांक मान खराब तरीके से निर्धारित किए जा सकते हैं। निचले क्रम में फिट होने से आमतौर पर चेतावनी से छुटकारा मिल जाएगा। rcond पैरामीटर को उसके डिफ़ॉल्ट से छोटे मान पर सेट किया जा सकता है, लेकिन परिणामी फिट rcond हो सकता है और राउंडऑफ़ त्रुटि से बड़ा योगदान हो सकता है।

हरमाइट श्रृंखला का उपयोग करने वाले फिट्स संभवतः सबसे उपयोगी होते हैं जब डेटा को sqrt(w(x)) * p(x) द्वारा अनुमानित किया जा सकता है, जहां w(x) Hermite वजन होता है। उस स्थिति में वजन sqrt(w(x[i]) का उपयोग डेटा मान y[i]/sqrt(w(x[i]) साथ किया जाना चाहिए। वजन समारोह hermweight रूप में उपलब्ध है।

संदर्भ

[R121121] विकिपीडिया, "वक्र फिटिंग", http://en.wikipedia.org/wiki/Curve_fitting

उदाहरण

>>> from numpy.polynomial.hermite import hermfit, hermval
>>> x = np.linspace(-10, 10)
>>> err = np.random.randn(len(x))/10
>>> y = hermval(x, [1, 2, 3]) + err
>>> hermfit(x, y, 2)
array([ 0.97902637,  1.99849131,  3.00006   ])