R语言自学篇1:求解矩阵2范数及判断矩阵是否正定R代码练习

习题:

习题1R代码:

#练习1
#判断矩阵是否为实对称矩阵
isrealSquareMatrix <- function(matrix) {  
  if (nrow(matrix) != ncol(matrix)) {  
    return(FALSE)  
  }  
  
  # 检查矩阵是否等于其转置  
  return(all(matrix == t(matrix)))   
}  

#计算并返回实对称矩阵‘x’的2范数
TwoFnumber<-function(x){
  if(isrealSquareMatrix(x)){
    x1<-t(x)%*%x
    eigenvalue_x1<-eigen(x1)$values
    return(sqrt(max(eigenvalue_x1)))}else{
      cat('please input a real symetric SquareMatrix')
    }
}
#测试算例:

A<-matrix(c(5,2,1,2,3,0,1,0,4),nrow = 3,byrow = TRUE)
A_2<-TwoFnumber(A)
print(A_2)

B<-matrix(c(2,0,3,0,2,0,0,0,2), nrow=3, byrow=TRUE) 
B_2<-TwoFnumber(B)
print(B_2)

运行结果:

 

 习题2R代码:

#练习2:
#判断方阵正定与否

ISPositiveMatrix<-function(mat){
  if (is.matrix(mat) && nrow(mat) > 0 && ncol(mat) > 0){
    if(ncol(mat)==nrow(mat)){
      eigenvalue<-eigen(mat)$values
      if(all(eigenvalue)>0){
        cat('the entered matrix is positive')
        return(TRUE)
      }else{
        cat('the entered matrix is not positive')
        return(FALSE)
      }
    }else{
      print('Please enter a square matrix')
      return(FALSE)
    }
    
  }
  
}
#测试算例
A<-matrix(c(5,2,1,2,3,0,1,0,4),nrow = 3,byrow = TRUE)
print(ISPositiveMatrix(A))

运行结果: 

欢迎大佬批评指正!!! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值