मेरे पास एक बिंदु-वार परिभाषित कार्य है। यह एक जमा स्थिति से उत्पन्न होता है जहां आप हर महीने 1k USD 5% ब्याज के साथ जमा करते हैं जिसे आप Numpy के साथ प्लॉट करते हैं। सीमांत ब्याज की गणना करने के कई तरीके हैं, जैसे कि परिमित अंतर, स्वचालित संजात, प्रतीकात्मक अंतर और हाथ से (कुछ पहलुओं को यहां पर कवर किया गया है। a> लेकिन बंद रूप में):
0. 0-10 months: 10USD
1. 10-20 months: 50USD
2. 20-30 months: 100USD
3. 30-40kk months: 130USD
4. 40-50kk months: 200USD
5. 50-60kk months: 260USD
और पायथन में सीमांत भेदभाव के बिना कोड:
import numpy as np
import matplotlib.pyplot as plt
def situationNmonth(n):
#Returns situation after Nth month.
return np.sum([1000*np.exp(0.05*n/12) for n in range(n)])
def myHistory(test):
return [situationNmonth(n) for n in range(60)]
def interests(n):
#Returns interest given a month n.
return situationNmonth(n)-n*1000
def plotInterests(test):
plt.plot([x for x in range(60)], [interests(n) for n in range(60)])
plt.title("5% interests over 60 months with 1k USD per month.")
plt.show()
प्रत्येक मासिक ब्याज को देखने के लिए, बिंदुवार परिभाषित फ़ंक्शन, plotInterests
फ़ंक्शन में अंतर करने का सबसे आसान तरीका क्या है? पायथन में परिमित अंतर, स्वचालित डेरिवेटिव और प्रतीकात्मक विभेदन की स्थिति क्या है और क्या उन्हें यहां पायथन 3 के साथ मजबूती से परिकलित किया जा सकता है?
2 जवाब
आप अपने असतत डेटा बिंदुओं को प्रक्षेपित कर सकते हैं, और परिणामी इंटरपोलेंट को अलग कर सकते हैं।
पैरामीट्रिक समाधान
पैरामीट्रिक समाधान में Numpy का ग्रेडिएंट फ़ंक्शन होता है:
किसी N-आयामी सरणी का ग्रेडिएंट लौटाएं।
ग्रेडिएंट की गणना दूसरे क्रम के सटीक केंद्रीय का उपयोग करके की जाती है आंतरिक बिंदुओं में अंतर और या तो पहले या दूसरे क्रम में सटीक एकतरफा (आगे या पीछे) अंतर सीमाएं इसलिए लौटाई गई ढाल का आकार के समान है इनपुट सरणी। (docs)
जहां हम अंतरों पर स्पष्ट रूप से आंतरिक बिंदुओं पर ध्यान केंद्रित करते हैं। उदाहरण के लिए, आप numpy के ग्रेडिएंट फ़ंक्शन का उपयोग करके सीधे इसकी गणना कर सकते हैं:
>>> data=[x for x in range(60)], [interests(n) for n in range(60)]
>>> np.gradient(data[1])
array([ 0. , 2.08767965, 6.27175575, 10.47330187,
14.69239096, 18.92909627, 23.18349133, 27.45565003,
31.74564653, 36.0535553 , 40.37945114, 44.72340914,
49.08550474, 53.46581365, 57.86441192, 62.28137592,
66.71678233, 71.17070816, 75.64323073, 80.13442769,
84.64437701, 89.17315698, 93.72084624, 98.28752374,
102.87326876, 107.47816091, 112.10228014, 116.74570672,
121.40852129, 126.09080477, 130.79263848, 135.51410403,
140.25528339, 145.01625888, 149.79711316, 154.59792922,
159.41879041, 164.25978043, 169.12098332, 174.00248348,
178.90436566, 183.82671495, 188.76961683, 193.73315709,
198.71742192, 203.72249785, 208.74847176, 213.79543092,
218.86346295, 223.95265584, 229.06309793, 234.19487796,
239.34808501, 244.52280855, 249.71913842, 254.93716484,
260.17697839, 265.43867004, 270.72233115, 273.36966551])
जहां आप मासिक अतिरिक्त ब्याज देख सकते हैं। आप np.gradient(data[1], 2)
यहां आपको दूसरा अवकलज दे सकते हैं।
अधिक गैर-पैरामीट्रिक समाधान और संपूर्ण दृष्टिकोण
अधिक गैर-पैरामीट्रिक समाधानों में बायेसियन दृष्टिकोण शामिल हैं: मूल डेटा बिंदु अनिश्चितता के साथ पूर्व बिंदु हैं और परिणाम पश्च मान है।
ftp://ftp.tuebingen.mpg. de/pub/kyb/antonio/pub/ebio/chrisd/GPtutorial.pdf
http://scikit-learn.org/stable/auto_examples/gaussian_process/plot_gpr_noisy_targets. एचटीएमएल
मैं इस खंड को खुला छोड़ देता हूं, शायद पाइथन में उन्हें समझाने के लिए कोई विशेषज्ञ है। और अंकों के साथ अंतर की गणना करने के लिए किस तरह के समाधान मौजूद हैं।
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।