如何在R中进行高斯消除(请勿使用“溶解") [英] How to do Gaussian elimination in R (do not use "solve")
本文介绍了如何在R中进行高斯消除(请勿使用“溶解")的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
A <- matrix(c(2,-5,4,1,-2.5,1,1,-4,6),byrow=T,nrow=3,ncol=3)
b <- matrix(c(-3,5,10),nrow=3,ncol=1)
p <- nrow(A)
U.pls <- cbind(A,b)
for (i in 1:p){
for (j in (i+1):(p+1)) U.pls[i,j] <- U.pls[i,j]/U.pls[i,i]
U.pls[i,i] <- 1
if (i < p) {
for (k in (i+1):p) U.pls[k,] <-
U.pls[k,] - U.pls[k,i]/U.pls[i,i]*U.pls[i,]
}
}
U.pls
x <- rep(0,p)
for (i in p:1){
if (i < p){
temp <- 0
for (j in (i+1):p) temp <- temp + U.pls[i,j]*x[j]
x[i] <- U.pls[i,p+1] - temp
}
else x[i] <- U.pls[i,p+1]
}
x
输出
> U.pls
[,1] [,2] [,3] [,4]
[1,] 1 -2.5 2 -1.5
[2,] 0 1.0 -Inf Inf
[3,] 0 0.0 1 NaN
> x
[1] NaN NaN NaN
这样,在某些情况下我无法解决问题.即使我知道错误会以数学方式发生的原因,也无法修复R中的错误. 帮我解决一些问题.预先谢谢你.
In this way, I cannot solve solution in some case. Even though I know the reason why the error happens mathematically, I cannot fix the error in R. Help me with some fix. Thank you in advance.
推荐答案
我不得不对A
矩阵重新排序,不知道通用代码怎么做:
I had to reorder you matrix A
, don't know how do a generic code:
A <- matrix(c(2,-5,4,1,-4,6,1,-2.5,1),byrow=T,nrow=3,ncol=3)
b <- matrix(c(-3,5,10),nrow=3,ncol=1)
p <- nrow(A)
(U.pls <- cbind(A,b))
U.pls[1,] <- U.pls[1,]/U.pls[1,1]
for (i in 2:p){
for (j in i:p) {
U.pls[j, ] <- U.pls[j, ] - U.pls[i-1, ] * U.pls[j, i-1]
}
U.pls[i,] <- U.pls[i,]/U.pls[i,i]
}
for (i in p:2){
for (j in i:2-1) {
U.pls[j, ] <- U.pls[j, ] - U.pls[i, ] * U.pls[j, i]
}
}
U.pls
A <- matrix(c(2,-5,4,1,-2.5,1,1,-4,6),byrow=T,nrow=3,ncol=3)
b <- matrix(c(-3,5,10),nrow=3,ncol=1)
p <- nrow(A)
(U.pls <- cbind(A,b))
U.pls[1,] <- U.pls[1,]/U.pls[1,1]
i <- 2
while (i < p+1) {
j <- i
while (j < p+1) {
U.pls[j, ] <- U.pls[j, ] - U.pls[i-1, ] * U.pls[j, i-1]
j <- j+1
}
while (U.pls[i,i] == 0) {
U.pls <- rbind(U.pls[-i,],U.pls[i,])
}
U.pls[i,] <- U.pls[i,]/U.pls[i,i]
i <- i+1
}
for (i in p:2){
for (j in i:2-1) {
U.pls[j, ] <- U.pls[j, ] - U.pls[i, ] * U.pls[j, i]
}
}
U.pls
这篇关于如何在R中进行高斯消除(请勿使用“溶解")的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文