"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन में लीनियर इंटरपोलेशन का उपयोग करके प्लॉट पर सटीक शून्य और गैर-शून्य इंटरसेप्ट कैसे खोजें?

पायथन में लीनियर इंटरपोलेशन का उपयोग करके प्लॉट पर सटीक शून्य और गैर-शून्य इंटरसेप्ट कैसे खोजें?

2024-11-04 को प्रकाशित
ब्राउज़ करें:211

How to Find Exact Zero and Non-Zero Intercepts on Plots Using Linear Interpolation in Python?

शून्य के साथ वक्र प्रतिच्छेदन ढूँढना

पायथन में, एक प्लॉट से सटीक 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')

विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729465881 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3