sympy - 无法使nsolve方法工作

时间:2011-10-29 17:21:15

标签: python sympy mpmath

我做了这段代码:

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)。

1 个答案:

答案 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