परिचय
पायथन में NumPy का उपयोग करके डेटा के लिए बहुपद का न्यूनतम-वर्ग फिट प्राप्त करने के लिए polynomial.polyfit() का उपयोग करें। यह विधि निम्न से उच्च क्रम में व्यवस्थित बहुपद गुणांक लौटाती है। यदि y 2-D था, तो coef के कॉलम k में गुणांक y के k-वें कॉलम में डेटा के लिए बहुपद फिट को दर्शाते हैं। पैरामीटर x M नमूना (डेटा) बिंदुओं (x[i], y[i]) के x-निर्देशांक हैं।
पैरामीटर y नमूना बिंदुओं के y-निर्देशांक हैं। समान x-निर्देशांक साझा करने वाले कई नमूना बिंदु सेट को y के लिए एक 2-D सरणी पास करके एक कॉल में स्वतंत्र रूप से फिट किया जा सकता है जिसमें प्रति कॉलम एक डेटा सेट होता है। पैरामीटर deg फिटिंग बहुपद की डिग्री है। यदि deg एक पूर्णांक है तो deg-वें पद तक के सभी पद फिट में शामिल हैं।
पैरामीटर rcond फिट की सापेक्ष स्थिति संख्या है। सबसे बड़े विलक्षण मान के सापेक्ष rcond से छोटे विलक्षण मानों को अनदेखा किया जाएगा। डिफ़ॉल्ट मान len(x)*eps है, जहां eps प्लेटफॉर्म के फ्लोट प्रकार की सापेक्ष परिशुद्धता है, ज्यादातर मामलों में लगभग 2e-16। पैरामीटर full वापसी मूल्य की प्रकृति निर्धारित करने वाला स्विच है। जब False (डिफ़ॉल्ट) तो केवल गुणांक लौटाए जाते हैं; जब True, तो विलक्षण मान विघटन से नैदानिक जानकारी भी लौटाई जाती है।
पैरामीटर w भार हैं। यदि None नहीं है, तो भार w[i] x[i] पर अनवर्ग अवशेष y[i] - y_hat[i] पर लागू होता है। आदर्श रूप से भार इस तरह चुने जाते हैं कि उत्पाद w[i]*y[i] की त्रुटियों का समान विचरण हो। व्युत्क्रम-विचरण भार का उपयोग करते समय, w[i] = 1/sigma(y[i]) का उपयोग करें। डिफ़ॉल्ट मान None है।
चरण
आवश्यक लाइब्रेरी आयात करें
import numpy as np
from numpy.polynomial import polynomial as P
x-निर्देशांक
x = np.linspace(-1, 1, 51)
x-निर्देशांक प्रदर्शित करें
print("X निर्देशांक...\n", x)
y-निर्देशांक
y = x**3 - x + np.random.randn(len(x))
print("\nY निर्देशांक...\n", y)
बहुपद का न्यूनतम-वर्ग फिट प्राप्त करें
c, stats = P.polyfit(x, y, 3, full=True)
print("\nपरिणाम...\n", c)
print("\nपरिणाम...\n", stats)
पूर्ण उदाहरण
import numpy as np
from numpy.polynomial import polynomial as P
# x-निर्देशांक
x = np.linspace(-1, 1, 51)
# x-निर्देशांक प्रदर्शित करें
print("X निर्देशांक...\n", x)
# y-निर्देशांक
y = x**3 - x + np.random.randn(len(x))
print("\nY निर्देशांक...\n", y)
# बहुपद का न्यूनतम-वर्ग फिट प्राप्त करें
c, stats = P.polyfit(x, y, 3, full=True)
print("\nपरिणाम...\n", c)
print("\nपरिणाम...\n", stats)
आउटपुट
X निर्देशांक...
[-1. -0.96 -0.92 ... 0.96 1. ]
Y निर्देशांक...
[ 0.24282445 -0.48320773 ... 1.06373501 -2.28991738]
परिणाम...
[-0.17198829 -1.84107674 0.09439374 2.39030912]
परिणाम...
[array([60.43653521]), 4, array([1.38446749, 1.32119158, 0.50443316, 0.28853036]), 1.1324274851176597e-14]