डेटा के लिए बहुपद के कम से कम वर्ग फिट करने के लिए, Python Numpy में polynomial.polyfit() का उपयोग करें। यह विधि निम्न से उच्च की ओर क्रमित बहुपद गुणांकों को लौटाती है। यदि y 2-D था, तो coef के कॉलम k में गुणांक y के k-वें कॉलम में डेटा के लिए बहुपद फिट का प्रतिनिधित्व करते हैं। पैरामीटर, x, M नमूने (डेटा) बिंदुओं (x[i], y[i]) के x-निर्देशांक हैं।
पैरामीटर, y नमूना बिंदुओं के y-निर्देशांक हैं। एक ही एक्स-निर्देशांक साझा करने वाले नमूना बिंदुओं के कई सेट (स्वतंत्र रूप से) एक कॉल के साथ पॉलीफिट के लिए फिट हो सकते हैं, जिसमें y 2-डी सरणी है जिसमें प्रति कॉलम एक डेटा सेट होता है। पैरामीटर, डिग्री फिटिंग बहुपद की डिग्री है। यदि deg एक एकल पूर्णांक है, तो deg'th पद तक के सभी पदों को फिट में शामिल किया गया है
पैरामीटर, rcond फिट की सापेक्ष स्थिति संख्या है। सबसे बड़े एकवचन मान के सापेक्ष rcond से छोटे एकवचन मान पर ध्यान नहीं दिया जाएगा। डिफ़ॉल्ट मान लेन (x) * ईपीएस है, जहां ईपीएस प्लेटफॉर्म के फ्लोट प्रकार की सापेक्ष सटीकता है, ज्यादातर मामलों में लगभग 2e-16। पैरामीटर, पूर्ण वापसी मूल्य की प्रकृति का निर्धारण करने वाला स्विच है। जब गलत (डिफ़ॉल्ट) केवल गुणांक लौटाए जाते हैं; जब सच है, एकवचन मूल्य अपघटन से नैदानिक जानकारी भी लौटा दी जाती है।
पैरामीटर, डब्ल्यू वजन हैं। यदि कोई नहीं, तो भार w[i] अवर्गीकृत अवशिष्ट y[i] - y_hat[i] x[i] पर लागू होता है। आदर्श रूप से वज़न को चुना जाता है ताकि उत्पादों की त्रुटियों w[i]*y[i] सभी में समान भिन्नता हो। व्युत्क्रम-विचरण भार का उपयोग करते समय, w[i] =1/sigma(y[i]) का उपयोग करें। डिफ़ॉल्ट मान कोई नहीं है।
कदम
सबसे पहले, आवश्यक पुस्तकालयों को आयात करें -
import numpy as np from numpy.polynomial import polynomial as P
x-निर्देशांक -
x = np.linspace(-1,1,51)
x-निर्देशांक प्रदर्शित करें -
print("X Co-ordinate...\n",x)
y-निर्देशांक -
y = x**3 - x + np.random.randn(len(x)) print("\nY Co-ordinate...\n",y)
डेटा के लिए बहुपद के सबसे छोटे वर्ग को फिट करने के लिए, Python Numpy में polynomial.polyfit() का उपयोग करें -
c, stats = P.polyfit(x,y,3,full=True) print("\nResult...\n",c) print("\nResult...\n",stats)
उदाहरण
import numpy as np from numpy.polynomial import polynomial as P # The x-coordinate x = np.linspace(-1,1,51) # Display the x-coordinate print("X Co-ordinate...\n",x) # The y-coordinate y = x**3 - x + np.random.randn(len(x)) print("\nY Co-ordinate...\n",y) # To get the least-squares fit of a polynomial to data, use the polynomial.polyfit() in Python Numpy # The method returns the Polynomial coefficients ordered from low to high. If y was 2-D, the coefficients in column k of coef represent the polynomial fit to the data in y’s k-th column. c, stats = P.polyfit(x,y,3,full=True) print("\nResult...\n",c) print("\nResult...\n",stats)
आउटपुट
X Co-ordinate... [-1. -0.96 -0.92 -0.88 -0.84 -0.8 -0.76 -0.72 -0.68 -0.64 -0.6 -0.56 -0.52 -0.48 -0.44 -0.4 -0.36 -0.32 -0.28 -0.24 -0.2 -0.16 -0.12 -0.08 -0.04 0. 0.04 0.08 0.12 0.16 0.2 0.24 0.28 0.32 0.36 0.4 0.44 0.48 0.52 0.56 0.6 0.64 0.68 0.72 0.76 0.8 0.84 0.88 0.92 0.96 1. ] Y Co-ordinate... [ 0.24282445 -0.48320773 -1.18068109 -0.48486683 0.80514762 0.48976259 0.31363813 -0.03382685 -0.92334611 0.86835062 0.24661201 0.9790978 0.03782101 0.12213365 -1.37248029 1.99891304 -0.09825977 1.74524931 0.70560858 0.15516069 0.69169705 0.76957712 -1.21919676 1.50064825 1.32101339 -2.51479992 -0.28998783 -1.24293076 0.45927699 -0.53484746 0.50455341 -0.06351788 -2.69585303 -0.46833578 1.4924168 -2.42374146 -1.91934499 -1.36311466 -1.23946547 -1.56822005 -0.79648036 1.58269324 -0.53682862 -0.90861958 -0.28174461 -0.10775622 0.58535687 1.06373501 -2.28991738 2.01597286 -0.75841069] Result... [-0.17198829 -1.84107674 0.09439374 2.39030912] Result... [array([60.43653521]), 4, array([1.38446749, 1.32119158, 0.50443316, 0.28853036]), 1.1324274851176597e-14]