我做了这段代码:
from scitools.std import *
from sympy import *
x=Symbol('x')
#Integral function
#def f(x): --> I also tried this
# return exp(-x**2)
f=exp(-x**2)
intac=integrate(f,(x,0,1))
print(nsolve(f,x,1))
解释器给了我:“在赋值之前引用的局部变量x”
如果我尝试nsolve(f,x,(0,1))
它会给我:“在给定的容忍范围内找不到根...”
(另外,我尝试findroot(f,(0,1))
但没有成功(我导入from mpmath import *
然后mp.dps = 30; mp.pretty = True
)。
答案 0 :(得分:3)
我对nsolve的调用语法一无所知,但我可以告诉你为什么sympy和mpmath都找不到函数的真正根源:没有。如果f(x)= exp(-x ^ 2),则f(x)> 0表示任何真实的x。 f(0)= 1并且函数随着abs(x)在任一方向上变大而减小,但它始终为正。当然在[0,1]中没有根。
阅读the normal distribution可能是值得的。
集成它似乎可以正常工作:
>>> integrate(f,(x,0,1))
pi**(1/2)*erf(1)/2