我一直在探索Scipy和其核心包,用于一个数学项目。
我需要对一些方程进行微积分运算……因此为了学习Scipy,我决定测试一个简单的方程(正态随机变量的概率密度函数)。在微积分运算中,我需要保持常数不变,而不是将其赋值。
我使用Sympy成功地创建了它。以下是代码:
我需要对一些方程进行微积分运算……因此为了学习Scipy,我决定测试一个简单的方程(正态随机变量的概率密度函数)。在微积分运算中,我需要保持常数不变,而不是将其赋值。
我使用Sympy成功地创建了它。以下是代码:
from sympy import *
x = Symbol('x')
mu = Symbol('mu')
sigma = Symbol('sigma')
def normpdfeqn():
y = exp(-(((x-mu)**2)) / (2*(sigma**2))) / (sqrt(2*pi*(sigma**2)))
return y
print(integrate(normpdfeqn(), (x)))
然后我得到了适当的输出:
sigma*erf(sqrt(2)*(-mu + x)/(2*sigma))/(2*sqrt(sigma**2))
接着我尝试使用scipy做同样的事情。
我一直在阅读http://docs.scipy.org/doc/scipy/reference/tutorial/integrate.html,但是无法弄清如何为其创建方程。以下是我到目前为止尝试过的内容(几乎与上面的代码相同):
from sympy import exp
from sympy import sqrt
from sympy import pi
from scipy.integrate import quad
from sympy import Symbol
x = Symbol('x')
mu = Symbol('mu')
sigma = Symbol('sigma')
def integrand():
y = exp(-((x-mu)**2) / (2*(sigma**2))) / (sqrt(2*pi*(sigma**2)))
return y
I = quad(integrand(), 0, 1,)
print(I)
这段代码可能远未完成,我不知道如何让它工作。
如果我总是使用上述展示的方程式,是否需要学习scipy integrate?还是继续使用sympy和numpy?