Python 中 cdf 的积分形式

问题描述 投票:0回答:1

我想使用这种数学模型。如何找到 Python 在这种情况下使用的

cdf(x)
的精确积分形式?

def model(x, x0, s, A, c):
    law = stats.norm(loc=x0, scale=s)
    return A * law.cdf(x) + c
python statistics
1个回答
0
投票

不太清楚你的问题在问什么,但对于正态分布,累积分布函数可以在数学上用误差函数来写(https://en.wikipedia.org/wiki/Error_function

import math
from scipy import stats

def model(x, x0, s, A, c):
    law = stats.norm( loc=x0, scale=s )
    return A * law.cdf( x ) + c

def normal_CDF( x, x0, s ):
    return 0.5 * (   1 + math.erf( (x-x0)/s/math.sqrt(2) )   )

def alt_model( x, x0, s, A, c ):
    return A * normal_CDF( x, x0, s ) + c


x, x0, s, A, c = 5.92, 2.0, 2.0, 10.0, 5.0
print( model( x, x0, s, A, c ) )
print( alt_model( x, x0, s, A, c ) )

输出:

14.750021048517794
14.750021048517796
© www.soinside.com 2019 - 2024. All rights reserved.