मैं, पहले के आदेश इसमेरा सिम्पी कोड पहले ऑर्डर की गणना क्यों करता है टेलर श्रृंखला अनुमान गलत तरीके से?
जो Sympy में (इस सवाल में एक प्रतिलिपि प्रस्तुत करने योग्य उदाहरण के लिए) इस तरह दर्ज किया गया है की तरह एक अभिव्यक्ति
from sympy import *
expression = Add(Mul(Integer(-1), Float('0.9926375361451395', prec=2), Add(Mul(Float('0.33167082639756074', prec=2), Pow(Symbol('k1'), Float('-0.66666666666666674', prec=2)), Pow(Symbol('n1'), Float('0.66666666666666674', prec=2))), Mul(Float('0.97999999999999998', prec=2), exp(Mul(Integer(-1), Symbol('mu1'))))), Pow(Add(Mul(Float('0.97999999999999998', prec=2), Symbol('k1'), exp(Mul(Integer(-1), Symbol('mu1')))), Mul(Integer(-1), Symbol('k2')), Mul(Pow(Symbol('n1'), Float('0.66666666666666674', prec=2)), Pow(Mul(Symbol('k1'), exp(Mul(Integer(-1), Symbol('mu1')))), Float('0.33333333333333331', prec=2)))), Integer(-1))), Pow(Add(Mul(Float('0.97999999999999998', prec=2), Symbol('k0'), exp(Mul(Integer(-1), Symbol('mu0')))), Mul(Integer(-1), Symbol('k1')), Mul(Pow(Symbol('n0'), Float('0.66666666666666674', prec=2)), Pow(Mul(Symbol('k0'), exp(Mul(Integer(-1), Symbol('mu0')))), Float('0.33333333333333331', prec=2)))), Integer(-1)))
इस अभिव्यक्ति eyeballing है किसी भी चर के लिए टेलर सन्निकटन, उदाहरण के लिए k1
, आसपास कुछ अशून्य मूल्य शून्य नहीं होनी चाहिए, लेकिन इस कोड
x = symbol("x")
expression.series(k1, x0 = x, n = 1)
सिर्फ रिटर्न 0
। यह एक समस्या है क्योंकि मैं (अंततः) एक बहुविकल्पीय टेलर श्रृंखला सन्निकटन की गणना कर रहा हूं, इसी तरह से this answer पर, और यदि श्रृंखला विस्तार में से एक गलती से शून्य का मूल्यांकन करता है, तो पूरी चीज टूट जाती है।
क्या मैंने कुछ गलत कोड किया है, या मेरा मूल कैलकुलेशन बस इतना बुरा है और यह वास्तव में शून्य का मूल्यांकन करता है? documentation on series
से, मैं काफी निश्चित हूं कि मैं इसे सही तरीके से उपयोग कर रहा हूं।
ऐसा लगता है कि यह बग SymPy के गिट मास्टर संस्करण में तय है। वहां, 'ओ (एक्स) .subs (x, x-1) + 1' '1 + O (x - 1, (x, 1)) देता है, और प्रश्न में श्रृंखला' ओ (k₁ - x; k₁ → x) '। – asmeurer