NaN образуется в матричном разложении - PullRequest
0 голосов
/ 26 июня 2018

Я нашел письменную функцию разложения Холецкого.Chol () работает гладко на всех установленных матрицах, к сожалению, полный код, который я нашел в Git, не работает.он производит:

Warning message:
In sqrt(m[i, i] - p.sum) : NaNs produced 

Еще одна вещь, которая работает на примере симметричной матрицы, такой как:

(A <- matrix(c(5, 1, 2, 1, 9, 3, 2, 3, 7), 3))

Конечно, я могу использовать функцию chol (), но я пытаюсь раскрыть логикуза этим кодом:

choleskymatrix <- function(m) {
count.rows <- nrow(m)
count.cols <- ncol(m)

L = diag(0, count.rows)
for(i in 1:count.rows) {
    for(k in 1:i) {
        p.sum <- 0
        for(j in 1:k)
            p.sum <- p.sum + L[j, i] * L[j, k]
        if(i == k)
            L[k, i] <- sqrt(m[i, i] - p.sum)
        else
            L[k, i] <- (m[k, i] - p.sum) / L[k, k]
    }
}
return(L)
}

Может кто-нибудь сказать мне, откуда эти ошибки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...