मैं sympy सीख रहा हूं, और एक ओडीई के समाधान को सत्यापित करना चाहता हूं। मुझे अभी तक सिम्पी नेमिंग कन्वेंशनों की समझ नहीं है।

शीर्ष पर सभी पैकेजों को लोड करने के मानक तरीकों को करने के बजाय, मैं केवल import sympy चाहता था और फिर sympy के अंदर किसी अन्य नाम को संदर्भित करने के लिए स्पष्ट लंबे नाम का उपयोग करना चाहता था। नवीनतम कोंडा पायथन पर

Python 3.7.3 (default, Mar 27 2019, 22:11:17) 
[GCC 7.3.0] :: Anaconda, Inc. on linux

टाइप करते समय

import sympy
x   = sympy.symbols('x')
y   = sympy.Function('y')
ode = sympy.Eq(sympy.Derivative(y(x),x),1+2*x)
sol = sympy.dsolve(ode,y(x))
sympy.solvers.ode.checkodesol(ode,sol)

और उपरोक्त त्रुटि देता है

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'sympy.solvers.solvers' has no attribute 'ode'

लेकिन पेज से https://docs.sympy.org/latest/modules/ सॉल्वर/ode.html

इसे कहते हैं

Mathematica graphics

लेकिन अगर मैं निम्नलिखित करता हूं, तो यह काम करता है

from sympy import checkodesol
checkodesol(ode,sol)
    (True, 0)

लेकिन मैं स्पष्ट रूप से checkodesol आयात नहीं करना चाहता। मैं सिर्फ sympy आयात करना चाहता हूं और फिर checkodesol या किसी अन्य सिम्पी उप पैकेज को कॉल करने के लिए लंबे नाम का उपयोग करना चाहता हूं, क्योंकि यह मुझे उस कोड में और अधिक स्पष्ट करता है जहां से प्रत्येक फ़ंक्शन आ रहा है (पर) थोड़ी अतिरिक्त टाइपिंग की लागत)

सवाल यह है कि sympy.solvers.ode.checkodesol का उपयोग करने से काम क्यों नहीं चलता?

2
Nasser 15 जुलाई 2019, 09:04

1 उत्तर

सबसे बढ़िया उत्तर

आपके द्वारा लिंक किए गए दस्तावेज़ के शीर्ष पर, यह कहता है

ये ऐसे कार्य हैं जिन्हें वैश्विक नामस्थान में आयात किया जाता है from sympy import *। ये फ़ंक्शन (हिंट फ़ंक्शंस के विपरीत, नीचे) SymPy के सामान्य उपयोगकर्ताओं द्वारा उपयोग के लिए अभिप्रेत हैं।

फिर आप सीधे checkodesol(ode, sol) का उपयोग कर सकते हैं।

यदि आप import sympy करते हैं, तो आपको कॉल करने की आवश्यकता है

sympy.checkodesol(ode, sol)
2
Tim Pietzcker 15 जुलाई 2019, 09:15