有符号/复数的 log-sum-exp 技巧

计算科学 数字 稳定 浮点 精确
2021-12-15 04:58:05

我需要评估在许多不同数量级上但可能已签名的值的总和。对于我的问题的无符号版本,我非常幸运地使用了“log-sum-exp”技巧,所以我希望将其应用于有符号值。

认为z,zC使用单独的实部和虚部以双精度存储。我们希望计算w:=log(ez+ez). 在这里,我不关心我们返回哪个日志分支——只在一天结束时ew重要的是,日志只是为了数值稳定性。

对于任何aC, 通过与我们知道的 log-sum-exp 技巧相同的参数

W=a+log(eza+eza),
再次到日志分支。

有没有好的选择“政策”a促进数值稳定性,类似于为实值对数和经验技巧建议的最大值?

1个回答

再想一想,我可以自己回答这个问题了!

我不认为复平面使 log-sum-exp 技巧明显不同,至少在笛卡尔坐标中。特别是,如果z=u+iv然后ez=eu+iv=eu(cosv+isinv). 注意v部分构造的大小为 1,因此上溢或下溢主要由以下原因引起u.

因此,一个合理的选择是采取a=max(real(z),real(z)).