我做了这段代码:
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
))。 最佳答案
我对nsolve的调用语法一无所知,但是我可以告诉你,为什么sympy和mpmath都找不到该函数的真正根:没有任何根。如果f(x)= exp(-x ^ 2),则对于任何实数x,f(x)> 0。 f(0)= 1并且函数随着abs(x)在任一方向变大而减小,但始终为正。当然,[0,1]中没有根。
可能值得阅读the normal distribution。
集成它似乎可以正常工作:
>>> integrate(f,(x,0,1))
pi**(1/2)*erf(1)/2
关于python - sympy-无法使nsolve方法工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7940441/