शून्य के साथ वक्र प्रतिच्छेदन ढूँढना
पायथन में, एक प्लॉट से सटीक y-अक्ष मान प्राप्त करना चुनौतीपूर्ण हो सकता है जब मान एक नहीं है पूरा नंबर। यह आलेख इस समस्या को संबोधित करता है और रैखिक प्रक्षेप के आधार पर एक समाधान प्रस्तुत करता है।
दो सरणियों (वर्टिकल_डेटा और ग्रेडिएंट (तापमान_डेटा)) को देखते हुए, plt.plot का उपयोग करके एक प्लॉट तैयार किया जाता है। हालाँकि, प्लॉट एक y-मान प्रदर्शित करता है जो करीब है लेकिन बिल्कुल शून्य नहीं है। , एक सरल रैखिक प्रक्षेप विधि का उपयोग किया जा सकता है। निम्नलिखित कोड दर्शाता है कि एक मनमाना वक्र के शून्य मान कैसे प्राप्त करें:
np के रूप में numpy आयात करें def find_roots(x, y): s = np.abs(np.diff(np.sign(y))).astype(bool) वापसी x[:-1][s] np.diff(x)[s]/(np.abs(y[1:][s]/y[:-1][s]) 1) x = .4 np.sort(np.random.rand(750))*3.5 y = (x-4)*np.cos(x*9.)*np.cos(x*6 0.05) 0.1 z = find_roots(x,y) plt.प्लॉट(x,y) plt.plot(z, np.zeros(len(z)), मार्कर='o', ls='', ms=4)
यह कोड वक्र की जड़ों की पहचान करता है और उन्हें वृत्त के रूप में प्लॉट करता है शून्य के सटीक y-मूल्य पर। -मूल्य (y0) जड़ों को खोजने वाली रेखा को संशोधित करके:import numpy as np
def find_roots(x, y):
s = np.abs(np.diff(np.sign(y))).astype(bool)
return x[:-1][s] np.diff(x)[s]/(np.abs(y[1:][s]/y[:-1][s]) 1)
x = .4 np.sort(np.random.rand(750))*3.5
y = (x-4)*np.cos(x*9.)*np.cos(x*6 0.05) 0.1
z = find_roots(x,y)
plt.plot(x,y)
plt.plot(z, np.zeros(len(z)), marker="o", ls="", ms=4)
दो वक्र प्रतिच्छेदन
रैखिक प्रक्षेप विधि का उपयोग दो वक्रों के बीच प्रतिच्छेदन का पता लगाने के लिए भी किया जा सकता है। दो वक्रों के बीच अंतर की जड़ें ढूंढकर, हम उनके प्रतिच्छेदन बिंदु का अनुमान लगा सकते हैं:
y2 = (x - 2) * np.cos(x * 8.) * np.cos( एक्स * 5 0.03) 0.3 z = find_roots(x,y2-y1) plt.प्लॉट(x,y1) plt.plot(x,y2, color='C2') plt.plot(z, np.interp(z, x, y1), मार्कर='ओ', एलएस='', एमएस=4, रंग='सी1')
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3