#python #numpy #sympy
#python #numpy #sympy
Вопрос:
в этом ПРОСТОМ коде я получал ОШИБКУ АТРИБУТА, возможно, из-за np, sym, столкновения, помогите мне решить ее.
import sympy as sym
x=sym.Symbol('x')
def f(x):
return (x**2*np.exp(x))/((np.exp(x)-1)**2)
sym.integrate(f(x),x)
AttributeError Traceback (most recent call last)
<ipython-input-48-574a1c7346b8> in <module>
3 def f(x):
4 return (x**2*np.exp(x))/((np.exp(x)-1)**2)
----> 5 sym.integrate(f(x),x)
<ipython-input-48-574a1c7346b8> in f(x)
2 x=sym.Symbol('x')
3 def f(x):
----> 4 return (x**2*np.exp(x))/((np.exp(x)-1)**2)
5 sym.integrate(f(x),x)
AttributeError: 'Symbol' object has no attribute 'exp'
Комментарии:
1. пожалуйста, правильно отформатируйте свой код, а также обратную трассировку, meta.stackexchange.com/questions/22186
2.
np.exp
при задании нечислового объекта, такого как asympy
Symbol
, пытается передать задачу методу с тем же именем. Отсюда и ошибка. Естьsym.exp
, ноx.exp()
не работает. В качестве общегоsympy
кода используйтеSymbols
.
Ответ №1:
Да, я полагаю, вы не можете использовать np-функции. Это работает:
x = sym.Symbol('x')
def f(x):
return (x**2*sym.exp(x))/((sym.exp(x)-1)**2)
print(sym.integrate(f(x),x))
Комментарии:
1. Спасибо, чувак, это помогло, в любом случае, не могли бы вы поделиться со мной, как закодировать этот же интеграл с ограничениями от 0 до inf, когда я попробовал, он снова показал ошибку «из-за переполнения потока из-за двойного масштабирования»
2. Я сделал
sym.integrate(f(x),(x,0,sym.oo))
, здесь много документов docs.sympy.org/latest/modules/integrals/integrals.html3.
from scipy.integrate import quad import numpy as np def f(x): return (x**2*np.exp(x))/((np.exp(x)-1)**2) print(quad(f,0,np.inf))
ответ: (nan, nan) C:UsersSubhamAnaconda3libsite-packagesipykernel_launcher.py:7 : Предупреждение о времени выполнения: переполнение, обнаруженное в системе импорта double_scalars C:UsersSubhamAnaconda3libsite-packagesipykernel_launcher.py:7 : Предупреждение о времени выполнения: недопустимое значение, встречающееся в системе импорта double_scalars4. @Subham, почему ты используешь
scipy.integrate
функцию дляsympy
функции? Вы только что обнаружили, чтоnp.exp
это не работаетsympy
.scipy
является расширениемnumpy
.