R语言高斯消去法解线性方程组

guass <- function(n,B){
  if(ncol(B) != n+1){
    stop("data input error")
  }
  U <- B
  for (i in 1:(n-1)) {
    for (j in (i+1):n) {
      for (k in i:(n+1)) {
        U[j,k] <- B[j,k] - (B[j,i]*B[i,k])/B[i,i]
      }
    }
    B <- U
  }
  x <- array(,n)
  x[n] <- U[n,n+1]/U[n,n]
  for (p in (n-1):1) {
    for (q in n:(p+1)) {
      U[p,n+1] <- U[p,n+1] - U[p,q]*x[q]
    }
    x[p] <- U[p,n+1]/U[p,p]
  }
  x
}

R语言高斯消去法,输入未知量数目和线性方程组的增广矩阵,输出为解向量

你可能感兴趣的:(R语言)