gpt4 book ai didi

matlab - 数值稳定的实现

转载 作者:太空宇宙 更新时间:2023-11-03 19:28:25 28 4
gpt4 key购买 nike

我需要在 Matlab 中计算向量的归一化指数。

简单的写

res = exp(V)/sum(exp(V))

V 中某个元素的溢出大于 log(realmax) = 709.7827。(我不确定下溢情况。)

我应该如何实现它以避免数值不稳定?

更新:关于如何避免溢出,我收到了很好的回复。不过,我仍然很高兴听到您对代码中下溢可能性的看法。

最佳答案

以下方法通过减去指数然后取指数而不是除以指数来避免溢出:

res = 1./sum(exp(bsxfun(@minus, V(:), V(:).')))

作为一般规则,可以通过尽可能长时间地在对数域中工作并仅在最后取指数来避免溢出。

关于matlab - 数值稳定的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23665599/

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