使用 scipy 集成功能?

coa*_*nce 2 python scipy

我正在尝试使用 SciPy 来集成此功能:

y(x) = (e^-ax)*cos(x) 介于 0 和 4pi 之间。

这是我到目前为止的代码:

from numpy import *
from scipy.integrate import simps
a = 0 
x = linspace(0 , 4*pi, 100)
y = (e^-(a*x))*cos(x)
integral_value = simps(y,x)
print integral_value
Run Code Online (Sandbox Code Playgroud)

但是,它似乎不起作用。任何帮助将不胜感激,谢谢!

Wil*_*sem 5

好吧,如果您运行该程序,则会出现以下错误:

类型错误:输入类型不支持 ufunc 'bitwise_xor',并且无法根据转换规则“安全”将输入安全地强制转换为任何受支持的类型

所以您知道问题出^在函数中的(bitwise xor) 上。在 Python 中,一种用于**取指数

如果有人写:

y = (e**-(a*x))*cos(x)
Run Code Online (Sandbox Code Playgroud)

相反,一个人得到:

>>> print integral_value
-0.000170200006112
Run Code Online (Sandbox Code Playgroud)

完整的程序:

from numpy import *
from scipy.integrate import simps
a = 0 
x = linspace(0 , 4*pi, 100)
y = (e**-(a*x))*cos(x)
integral_value = simps(y,x)
print integral_value
Run Code Online (Sandbox Code Playgroud)

您还可以通过以下方式显式使用numpy函数:

from numpy import *
from scipy.integrate import simps
a = 0 
x = linspace(0 , 4*pi, 100)
y = exp(-a*x)*cos(x)
integral_value = simps(y,x)
print integral_value
Run Code Online (Sandbox Code Playgroud)

为了提高精度,可以增加点数(100 不算多)。