इसलिए मैं कोडिंग में काफी नौसिखिया हूं। मैं अपने प्रोफेसर से एक पाठक का अनुसरण कर रहा हूं, हालांकि कभी-कभी पाठक अपडेट नहीं होता है। नीचे दिए गए कोड को पहले scipy.integrate.quadrature के लिए लागू किया गया था मुझे पहली बार एक त्रुटि मिली थी कि मॉड्यूल मौजूद नहीं था इसलिए मैंने पाया कि इसे अब "scipy.integrate._quadrature" नाम दिया गया था।

हालांकि, अब कोड को मेरे परिभाषित फ़ंक्शन "func(x)" में कठिनाई हो रही है। क्या इसका मतलब यह है कि मुझे उस समीकरण को लागू करना होगा जिसे मैं सीधे _quadrate मॉड्यूल में एकीकृत करना चाहता हूं? इस प्रकार है: क्वाड(x*np.sin(x), a, b)। यदि ऐसा है तो मैं x को कैसे परिभाषित करूं?

अग्रिम में धन्यवाद! मैं सचमुच आपकी सहायता की सराहना करता हूं।

import math 
import scipy.integrate._quadrature as quad         

def func(x):
    return x*np.sin(x)

def exactIntegral(a, b):
    Iab = -b*np.cos(b) + np.sin(b) + a*np.cos(b) - np.sin(a)
    return Iab

a = 0.0
b = 2.0 

exact = exactIntegral(a, b)
estimate = quad(func, a, b)                               #TypeError: 'module' object is not callable

print('Exact %1.6f Numerical %1.6f' %(exact, estimate[0]))
print('Error %1.3e' % np.abs(exact-estimate[0]))
1
fster 31 मार्च 2021, 12:57

1 उत्तर

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

आप इसे आजमा सकते हैं:

import scipy.integrate as integrate 
[..] 
estimate = integrate.quadrature(func, a, b) 

_quadrature कोई फ़ंक्शन नहीं है बल्कि एक फ़ाइल/मॉड्यूल है जिसमें वह फ़ंक्शन होता है जिसे आप ढूंढ रहे हैं। scipy.integrate मॉड्यूल में वह है जिसे आप ढूंढ रहे हैं।

1
lefevrej 31 मार्च 2021, 13:08