【发布时间】:2018-06-17 22:12:23
【问题描述】:
我使用 numpy 编写了这个优化程序,我必须执行以下计算:
B 是对称负半定矩阵,I 是单位矩阵。 问题是 B 的值可能太大(> 1e25),当减去对角矩阵时,一些元素不会因为有足够的精度。 有什么办法可以克服这个问题,还是我需要使用另一个库(如 mpmath)重写它?
【问题讨论】:
标签: python numpy mathematical-optimization mpmath numerical-stability
我使用 numpy 编写了这个优化程序,我必须执行以下计算:
B 是对称负半定矩阵,I 是单位矩阵。 问题是 B 的值可能太大(> 1e25),当减去对角矩阵时,一些元素不会因为有足够的精度。 有什么办法可以克服这个问题,还是我需要使用另一个库(如 mpmath)重写它?
【问题讨论】:
标签: python numpy mathematical-optimization mpmath numerical-stability
您需要重新实现,但实现可能很简单:更改您的数字表示。由于您没有指定您使用的基本类型或实际值范围(1e25 与 what?),我无法给出明确的建议。
但是,请注意numpy 有几种精度更高的类型,包括 longdouble(80 位)、float96 和 float128。如果您需要超过 128 位(38 位精度),那么mpmath 是最好的选择。
【讨论】: