计算向量的欧几里得范数时如何避免上溢/下溢?

时间:2018-10-28 14:19:32

标签: r overflow underflow

我尝试先使用log,然后再使用exp,但这只有在处理产品或部门时才有意义。通常会定义

Euclidean_Norm <- function(x) sqrt(sum(x^2))

但是我无法处理上溢/下溢。我正在考虑实施

Euklidean_Norm2 <- function(x) log(exp(sqrt(sum(x^2))))

以我为例

c(34212432, 21343210940, 5412359103) 

我得到InfEuklidean_Norm2,而Euklidean_Norm不起作用。但它应该可以用R表示,因为

sqrt(34212432^2 + 21343210940^2 + 5412359103^2)
[1] 22018797760

我正在寻找一种避免这种溢出的方法。我将不胜感激。

0 个答案:

没有答案