把一般的基地化为标准正交基底

Trans_orthogonal_basis <- function(A)
{
  n_col <- ncol(A)
  n_row <- nrow(A)
  B <- A
  if((n_col == n_row)&(n_row>1))
  {
    if(Matrix::rankMatrix(A)[1] == n_col)
    {
      for(i in 2:n_col)
      {
        temp1 <- 0
        temp2 <- 0
        for(j in 1:(i-1))
        {
          temp1 <- ((sum(A[,i]*B[,j]))/(sum(B[,j]*B[,j])))*B[,j]
          temp2 <- temp2 + temp1
        }
        B[,i] <- A[,i] - temp2
      }
    }
  }
  A <- B 
  cat("未单位化\n")
  print(MASS::fractions(A))
  return(apply(A,2,function(x){x/sqrt(sum(x*x))}))
}
X <- matrix(c(1,-1,-1,1,1,1,0,0,1,0,1,0,-1,0,0,1),nrow = 4)
Trans_orthogonal_basis(X)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值