import numpy as np
from scipy import integrate
import math as m
#import quadpy
#The function
I = lambda l: 0.06977 + (7.0625*(1-m.exp(-((l-0.26053)/0.15994)))**2.28411)*(m.exp(-((l-0.26053)/0.15994)))
np.vectorize(I)
def Iint(z):
return integrate.quad(I, 0, z)
Iint=np.vectorize(Iint)
z=np.arange(0,100)
Ia=Iint(z)
print (Ia)
Оставляет ошибку «Не удается преобразовать комплекс в число с плавающей точкой»
Заранее спасибо Пожалуйста, помогите мне с этим
Я думаю, что ошибка возникает из-за того, что функция не векторизация
`Traceback (most recent call last):`
`File "C:\Users\Admin\.spyder-py3\untitled2.py", line 22, in <module>
an=Iint(z)`
`File "D:\Jupyter\lib\site-packages\numpy\lib\function_base.py", line 2091, in __call__
return self._vectorize_call(func=func, args=vargs)`
`File "D:\Jupyter\lib\site-packages\numpy\lib\function_base.py", line 2161, in _vectorize_call
ufunc, otypes = self._get_ufunc_and_otypes(func=func, args=args)`
`File "D:\Jupyter\lib\site-packages\numpy\lib\function_base.py", line 2121, in _get_ufunc_and_otypes
outputs = func(*inputs)`
`File "C:\Users\Admin\.spyder-py3\untitled2.py", line 17, in Iint
return integrate.quad(I, 0, z)`
`File "D:\Jupyter\lib\site-packages\scipy\integrate\quadpack.py", line 342, in quad
points)`
`File "D:\Jupyter\lib\site-packages\scipy\integrate\quadpack.py", line 453, in _quad
return _quadpack._qagse(func,a,b,args,full_output,epsabs,epsrel,limit)`