Python中正态分布概率密度函数二阶导数的实现及推导求解
正态分布PDF的二阶导数推导与实现
嘿,我来一步步帮你推导并给出Python里的实现方式。
首先,咱们先明确已知的内容:
- 正态分布的概率密度函数(PDF):
f(x) = scipy.stats.norm.pdf(x, mu, sigma) - 一阶导数:
f'(x) = f(x) * (mu - x)/sigma**2
要得到二阶导数,咱们对一阶导数再求一次导就行,这里会用到乘积法则:如果有函数g(x) = u(x)*v(x),那么g'(x) = u'(x)*v(x) + u(x)*v'(x)。
把一阶导数拆成两部分:
u(x) = f(x)(也就是正态PDF本身)v(x) = (mu - x)/sigma**2
接下来分别计算两部分的导数:
u'(x)就是咱们已经知道的一阶导数:f'(x) = f(x)*(mu - x)/sigma**2v'(x)是对(mu - x)/sigma**2求导,因为mu和sigma都是常数,所以导数就是-1/sigma**2
现在把这些代入乘积法则:
f''(x) = u'(x)*v(x) + u(x)*v'(x) = [f(x)*(mu - x)/sigma**2] * [(mu - x)/sigma**2] + f(x)*(-1/sigma**2)
整理一下这个式子,把公共项f(x)提出来:
f''(x) = f(x) * [ (mu - x)**2 / sigma**4 - 1/sigma**2 ]
还可以进一步合并分母,让表达式更简洁:
f''(x) = f(x) * [ (mu - x)**2 - sigma**2 ] / sigma**4
所以在Python里,你可以直接这样实现二阶导数:
import scipy.stats as stats def norm_pdf_second_derivative(x, mu, sigma): pdf = stats.norm.pdf(x, mu, sigma) return pdf * ((mu - x)**2 - sigma**2) / (sigma**4)
你可以测试一下这个函数,比如取mu=0,sigma=1(标准正态分布),二阶导数就简化为stats.norm.pdf(x) * (x**2 - 1),这和标准正态PDF二阶导数的已知结果一致~
内容的提问来源于stack exchange,提问作者Nafise Banoo
相关产品推荐
相关产品推荐

