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

मैं पायथन में घातीय और लघुगणकीय वक्र फिटिंग कैसे कर सकता हूं?

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

How can I perform exponential and logarithmic curve fitting in Python?

वक्र फिटिंग: पायथन में घातीय और लघुगणकीय दृष्टिकोण

हालांकि पॉलीफ़िट() का उपयोग करके बहुपद वक्र फिटिंग पायथन में आसानी से उपलब्ध है, यह मार्गदर्शिका घातीय और लघुगणकीय वक्र के तरीकों की खोज करती है फिटिंग।

लॉगरिदमिक फिटिंग

फिट करने के लिए फॉर्म y = A B लॉग x की एक पंक्ति, बस लॉग x के विरुद्ध y का एक बहुपद फिट निष्पादित करें।

import numpy as np

x = np.array([1, 7, 20, 50, 79])
y = np.array([10, 19, 30, 35, 51])

coeffs = np.polyfit(np.log(x), y, 1)
print("y ≈", coeffs[1], "log(x)  ", coeffs[0])  # y ≈ 8.46 log(x)   6.62

घातीय फिटिंग

एक फिट करने के लिए y = Ae^{Bx} के रूप की रेखा, दोनों पक्षों का लघुगणक लें और लघुगणक का बहुपद फिट करें y विरुद्ध x.

x = np.array([10, 19, 30, 35, 51])
y = np.array([1, 7, 20, 50, 79])

coeffs = np.polyfit(x, np.log(y), 1)
print("y ≈ exp(", coeffs[1], ") * exp(", coeffs[0], " * x) = 0.670 * exp(0.105 * x)")

बेहतर सटीकता के लिए , पॉलीफ़िट() में w कीवर्ड का उपयोग करके y के अनुपात में वज़न का लाभ उठाएं।

coeffs = np.polyfit(x, np.log(y), 1, w=np.sqrt(y))
print("y ≈ exp(", coeffs[1], ") * exp(", coeffs[0], " * x) = 4.12 * exp(0.0601 * x)")

ध्यान दें कि अधिकांश स्प्रेडशीट और वैज्ञानिक कैलकुलेटर एप्लिकेशन घातीय प्रतिगमन के लिए एक अभारित सूत्र का उपयोग करते हैं, इसलिए यदि संगतता वांछित है तो वजन से बचें।

का उपयोग करना scipy.optimize.curve_fit

यदि scipy उपलब्ध है, तो परिवर्तनों के बिना फिटिंग मॉडल के लिए curve_fit का उपयोग करें।

from scipy.optimize import curve_fit

# Logarithmic fitting
coeffs, _ = curve_fit(lambda t, a, b: a   b * np.log(t), x, y)
print("y ≈", coeffs[1], "log(x)  ", coeffs[0])  # y ≈ 6.62   8.46 log(x)

# Exponential fitting with initial guess
coeffs, _ = curve_fit(lambda t, a, b: a * np.exp(b * t), x, y, p0=(4, 0.1))
print("y ≈", coeffs[0], "exp(", coeffs[1], " * x) = 4.88 exp(0.0553 x)")

एक प्रारंभिक अनुमान प्रदान करके, cur_fit पहुंच सकता है घातीय फिटिंग के लिए वांछित स्थानीय न्यूनतम, जिसके परिणामस्वरूप रूपांतरित पॉलीफिट विधि की तुलना में अधिक सटीक फिट होता है।

नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3