Как избежать переполнения / переполнения при вычислении евклидовой нормы вектора? - PullRequest
0 голосов
/ 28 октября 2018

Я пытался использовать log, а затем взять exp, но это имеет смысл, только если я имею дело с продуктами или подразделениями.Обычно можно определить

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

Но я не могу справиться с переполнением / недостаточным заполнением.Я думал реализовать

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

Если взять, например,

c(34212432, 21343210940, 5412359103) 

, я получу Inf с Euklidean_Norm2, а Euklidean_Norm не работает.Но он должен быть представлен в R, поскольку

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

Я ищу способ избежать такого рода переполнений.Буду благодарен за любой намек.

...