我是Python新手,所以我的一些问题或想法可能是愚蠢的,但是。。。在
我想画一个分布D(x)。m和s2是一些给定的实数。有人告诉我,绘制D(x)图的最好方法是写一个函数,它可以解出每个x的积分(在函数D(x)内)
其中chi2是这样定义的:
所以,根据我对数学的了解,我应该先积分,然后才能解出每个x,如果我错了,请纠正我。在
我也被告知要用数值计算积分,但我不知道怎么做,因为函数包含符号。
我已经尝试过使用符号积分(尽管我被告知了什么),但是内核从来没有结束积分的过程,当我试图用数值计算它的时候。当我尝试数字积分时,我当然使用了lamdify。在
下面是我的代码:
1试解符号积分from sympy import symbols, integrate, sqrt, exp, oo
s2= 0.0628777415586
m= 5.02422436191
x, n, z=symbols ('x, n, z')
integrate(exp(-n/(z+1) * (x-m)**2/2*s2) * 1/2 / sqrt(z+1), (z, 0, oo))
内核,永不停止工作。[我在配方中加入了1/2而不是chi2,打算稍后更改]
另一种方法是尝试求解数值积分(从函数D(x)调用它)
^{pr2}$
错误来自带有return的行,它说:TypeError: unsupported operand type(s) for *: 'float' and 'rv_frozen'
我想问题是因为chi2被冻住了,但是如何使它工作呢?我的代码有什么错误吗?我不知道我写的是不是对的,以及如何解决这个问题。。。
我已经为此工作了很长时间,有点绝望,所以任何帮助都是欢迎的。在