首页 > 解决方案 > 四倍积分功能给了我一些意想不到的零?

问题描述

我正在集成一个对数正态函数,但遇到了一些意外的零,那为什么呢?我的代码是:

from numpy import pi, log, exp
import scipy.integrate


# My function (a log-normal function)
def Fbloqueo(Xb, wXb, Xbmed):
    return (
        1 / (wXb * Xb * (2 * pi) ** 0.5) * exp(-1 / 2 * ((log(Xb / Xbmed)) / wXb) ** 2)
    )


# some parameters
Xbmed = 20
wXb = 0.010
Xe = 80
# Integration
Magzfc1, _ = scipy.integrate.quad(Fbloqueo, 2, Xe, args=(wXb, Xbmed))
print(Magzfc1)

结果应该是 1,但我得到的结果为零。这种行为发生了很多次,这是一个问题,因为我需要乘以另一个函数才能找到 wXb 和 Xbmed。有人可以帮我理解quad函数的问题吗?

标签: pythonscipyquad

解决方案


推荐阅读