gpt4 book ai didi

python - 如何使用 numpy/scipy 求解方程中已知函数的 x?

转载 作者:行者123 更新时间:2023-11-28 22:58:17 25 4
gpt4 key购买 nike

我有一个来自 scipy 的对数范数分布,它的参数是已知的。

import scipy

log_norm_obj = scipy.stats.lognorm([log_mu], shape=sigma)

我需要求解满足以下等式的 x:

x = (1 - log_norm_obj.cdf(x)) / log_norm_obj.pdf(x)

我如何使用 numpy/scipy 做到这一点?谢谢!

最佳答案

您使用 scipy.optimize .从 scipy 0.11 及更高版本开始,您可以使用新函数 minimizeminimize_scalar .假设您的 x 是一个标量,这里有一些关于如何做到这一点的示例代码:

from scipy.optimize import minimize_scalar

def f(x):
return (1 - log_norm_obj.cdf(x)) / log_norm_obj.pdf(x) - x

result = minimize_scalar(f)
print result.x
# this would print your result

以上使用Brent's method , 默认值。您也可以 Golden method ,或布伦特方法的有界版本。如果您的函数仅在给定域中定义,或者您希望在特定时间间隔内获得解决方案,则后者可能很有用。这方面的一个例子:

result = minimize_scalar(f, bounds=(0, 10.), method='bounded')

如果您的函数采用矢量而不是标量,则可以使用 minimize 采取类似的方法。如果你的 scipy 版本早于 0.11,只需使用 fmin 的风格.

关于python - 如何使用 numpy/scipy 求解方程中已知函数的 x?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13943286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com