【问题标题】:(python) solving for roots of equation that includes probabilistic distribution(python)求解包括概率分布的方程的根
【发布时间】:2016-10-07 22:29:44
【问题描述】:

我对此很陌生,但我需要解决数学问题,这涉及找到函数的根,涉及累积密度函数(几个)。

为简单起见,我尝试编写类似的程序,但功能尽可能简单,但即使这样也行不通。

谁能告诉我我做错了什么?

from scipy.optimize import fsolve
import sympy as sy
import numpy as np
from scipy.stats import norm
y=sy.Symbol('y')

def cdf(x):
 cdf_norm=norm.cdf(x,100,20)
 return cdf_norm

result=fsolve(y**2-14*y+7-cdf(y))
print(result)

【问题讨论】:

    标签: python-3.x math statistics distribution calculus


    【解决方案1】:

    问题似乎是 fsolve 要求第一个参数是一个 函数。 但是,您向它传递了一个 表达式,它会被评估为某个值,但是,表达式有一个未定义的变量名 y,所以解释器抛出一个NameError。此外,它还需要一个参数,一个包含对根的估计的 ndarray。因此,一个简单的解决方案是定义另一个函数:

    def f(y):
        return y**2 - 14*y + 7 - cdf(y)
    result = fsolve(f, np.array([1,0])
    print(result)
    

    我得到以下结果:

    array([ 0.51925928, 0.51925928])

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 2011-10-27
      • 1970-01-01
      • 2019-02-26
      • 2017-05-06
      • 1970-01-01
      相关资源
      最近更新 更多