当前位置: 首页 > article >正文

FullRankMatrix

文章目录

  • 给定m.n ,创建一个满秩矩阵A

给定m.n ,创建一个满秩矩阵A

  • python 代码:
import random

import numpy as np

np.set_printoptions(suppress=True, precision=3)


class RankFullMatrix(object):
    def __init__(self, input_row, input_column):
        self.row = input_row
        self.column = input_column
        self._rank_full_matrix = np.zeros((self.row, self.column))
        self._rankn_matrix = np.zeros((self.row, self.column))
        self._rankm_matrix = np.zeros((self.row, self.column))
        self.get_result()

    def get_result(self):
        my_rankn_matrix = self.rankn_matrix
        my_rankm_matrix = self.rankm_matrix
        my_full_rank_matrix = self.rank_full_matrix
        print("*" * 50)
        print(f"row={self.row},column={self.column},rank_A={np.linalg.matrix_rank(my_full_rank_matrix)}")
        print(f"rank_full_matrix=\n{my_full_rank_matrix}")
        print("*" * 50)

    @property
    def rank_full_matrix(self):
        if self.row > self.column:
            self._rank_full_matrix = self.rankn_matrix
        else:
            self._rank_full_matrix = self.rankm_matrix
        return self._rank_full_matrix

    @property
    def rankn_matrix(self):
        if self.row > self.column:
            eye_n = np.eye(self.column) + 0.01 * np.random.randn(self.column, self.column)
            add_row = np.random.rand(self.row - self.column, self.column)
            self._rankn_matrix = np.row_stack((eye_n, add_row))
        return self._rankn_matrix

    @property
    def rankm_matrix(self):
        eye_m = np.eye(self.row) + np.random.randn(self.row, self.row)
        if self.row < self.column:
            add_column = np.random.rand(self.row, self.column - self.row)
            self._rankm_matrix = np.column_stack((eye_m, add_column))
        else:
            self._rankm_matrix = eye_m
        return self._rankm_matrix


if __name__ == "__main__":
    row = [random.randint(2, 5) for _ in range(5)]
    column = [random.randint(2, 5) for _ in range(5)]
    for row_i, column_j in zip(row, column):
        rank_matrix = RankFullMatrix(row_i, column_j)
        rank_matrix.get_result()
  • 结果:
**************************************************
row=4,column=5,rank_A=4
rank_full_matrix=
[[ 2.21  -0.271  0.89   1.62   0.227]
 [ 1.443 -0.657 -0.199 -0.368  0.53 ]
 [ 1.682  0.445  2.776 -0.883  0.999]
 [-1.654  0.838  0.498  0.351  0.743]]
**************************************************
**************************************************
row=4,column=5,rank_A=4
rank_full_matrix=
[[ 0.346  0.992  0.698  0.475  0.984]
 [ 0.482  0.014 -2.604  0.789  0.581]
 [-1.176 -0.733  0.51   0.718  0.945]
 [ 0.018 -1.346  0.39  -0.554  0.993]]
**************************************************
**************************************************
row=4,column=2,rank_A=2
rank_full_matrix=
[[1.002 0.005]
 [0.005 0.99 ]
 [0.167 0.441]
 [0.59  0.608]]
**************************************************
**************************************************
row=4,column=2,rank_A=2
rank_full_matrix=
[[ 0.995 -0.021]
 [ 0.001  1.004]
 [ 0.597  0.225]
 [ 0.77   0.073]]
**************************************************
**************************************************
row=5,column=3,rank_A=3
rank_full_matrix=
[[ 0.997  0.007  0.009]
 [ 0.004  0.999 -0.   ]
 [-0.001 -0.005  1.025]
 [ 0.742  0.443  0.35 ]
 [ 0.857  0.851  0.473]]
**************************************************
**************************************************
row=5,column=3,rank_A=3
rank_full_matrix=
[[ 0.992  0.002  0.019]
 [-0.004  1.005 -0.006]
 [ 0.017 -0.011  1.007]
 [ 0.769  0.052  0.886]
 [ 0.666  0.063  0.575]]
**************************************************
**************************************************
row=3,column=3,rank_A=3
rank_full_matrix=
[[ 0.152 -0.127  1.233]
 [-0.259  1.998 -0.167]
 [-0.474 -1.351 -0.546]]
**************************************************
**************************************************
row=3,column=3,rank_A=3
rank_full_matrix=
[[ 0.415  0.267  0.018]
 [-0.512  2.225  0.521]
 [ 0.886  1.15   1.472]]
**************************************************
**************************************************
row=2,column=5,rank_A=2
rank_full_matrix=
[[-0.146  0.186  0.775  0.739  0.848]
 [-0.298  0.327  0.346  0.787  0.956]]
**************************************************
**************************************************
row=2,column=5,rank_A=2
rank_full_matrix=
[[-0.332 -1.686  0.763  0.768  0.848]
 [ 0.163  0.693  0.296  0.31   0.4  ]]
**************************************************


http://www.kler.cn/news/366757.html

相关文章:

  • python项目实战——多线程爬虫
  • 【Linux学习】(5)软件包管理器yum|编辑器vim
  • el-table相关的功能实现
  • 计算机网络原理总结D-传输层
  • 【Qt聊天室客户端】聊天界面功能
  • 设计模式(二)工厂模式详解
  • 【Vulnhub靶场】DC-4
  • SQL注入之sqlilabs靶场21-30题
  • 宠物用品交易网站:SpringBoot技术实现策略
  • PHP 8.1.0-dev后门远程命令执行漏洞
  • 基于Python大数据的王者荣耀战队数据分析及可视化系统
  • 十、SQL 高级技法全解析
  • 【每日一题】LeetCode - 整数转罗马数字
  • 基于SSM美容院管理系统的设计
  • 读取视频指定帧的方式
  • Qt中使用线程之moveToThread
  • Maven 不同环境灵活构建
  • spring-boot-starter-data-redis
  • electron 打包
  • webGL是前端开发的天花板,3D可视化大屏还在天花板以上。
  • 【iOS】使用AFNetworking更方便实现网络请求
  • 大厂项目经理推荐的10款常用的项目管理软件值得你收藏
  • Linux安装Nginx教程(rpm安装方式)
  • 全栈面试题】模块3-9】JavaSE高级 -- Object类、 GC、反射、Socket
  • 2024.10.23华为笔试题解
  • vue文件转AST,并恢复成vue文件(适用于antdv版本升级)