5.4 满秩分解

这篇具有很好参考价值的文章主要介绍了5.4 满秩分解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原理

  任意矩阵都有满秩分解Full rank factorization。也就是说不限于方阵,更不限于满秩矩阵。满秩分解用途很广,尤其是后期的对于广义逆的学习来说非常重要。
  首先要搞清楚什么是满秩分解full rank factorization,假设矩阵为 A A A,它的秩为 r r r,满秩分解就是分解为如下两个矩阵相乘:
A m × n = B m × r C r × n A^{m \times n}=B^{m \times r}C^{r \times n} Am×n=Bm×rCr×n
  要求就是B和C的秩都是 r r r,也就是说 B B B是列满秩, C C C是行满秩。
  那么怎么进行满秩分解呢?只需要用到初等含变换就行了。将矩阵通过初等行变换变成拟Hermite标准型H。那么问题来了,什么是拟Hermite标准型ansi Hermite canonical form?拟埃尔米特标准型的意思是第r行以下全是0,并且存在r列,这r列是单位矩阵的列。如果这r列的组成单位矩阵是顺序的,那么就是埃尔米特标准型。
  得到了拟埃尔米特标准型H之后,H的前r行就是C矩阵,原矩阵组成单位矩阵的列,按单位顺序排好就是B矩阵。满秩分解就完成了,所以也挺简单的。

举例

  我们以一个 4 × 5 4 \times 5 4×5矩阵开始:
( 3 1 0 − 1 1 0 1 1 0 2 1 − 1 − 1 2 − 1 7 2 0 0 3 ) ∼ ( 1 1 3 0 − 1 3 1 3 0 1 1 0 2 0 − 4 3 − 1 7 3 − 4 3 0 − 1 3 0 7 3 2 3 ) ∼ ( 1 0 − 1 3 − 1 3 − 1 3 0 1 1 0 2 0 0 1 3 7 3 4 3 0 0 1 3 7 3 4 3 ) ∼ ( 1 0 0 2 1 0 1 0 − 7 − 2 0 0 1 7 4 0 0 0 0 0 ) B = ( 3 1 0 0 1 1 1 − 1 − 1 7 2 0 ) C = ( 1 0 0 2 1 0 1 0 − 7 − 2 0 0 1 7 4 ) \begin{pmatrix}3 & 1 & 0 & -1 & 1\\ 0 & 1 & 1 & 0 & 2\\ 1 & -1 & -1 & 2 & -1\\ 7 & 2 & 0 & 0 & 3\\ \end{pmatrix}\\ \sim \begin{pmatrix}1 & \frac13 & 0 & -\frac13 & \frac13\\ 0 & 1 & 1 & 0 & 2\\ 0 & -\frac43 & -1 & \frac73 & -\frac43\\ 0 & -\frac13 & 0 & \frac73 & \frac23\\ \end{pmatrix}\\ \sim \begin{pmatrix}1 & 0 & -\frac13 & -\frac13 & -\frac13\\ 0 & 1 & 1 & 0 & 2\\ 0 & 0 & \frac13 & \frac73 & \frac43\\ 0 & 0 & \frac13 & \frac73 & \frac43\\ \end{pmatrix}\\ \sim \begin{pmatrix}1 & 0 & 0 & 2 & 1\\ 0 & 1 & 0 & -7 & -2\\ 0 & 0 & 1 & 7 & 4\\ 0 & 0 & 0 & 0 & 0\\ \end{pmatrix}\\ B= \begin{pmatrix}3 & 1 & 0\\ 0 & 1 & 1\\ 1 & -1 & -1\\ 7 & 2 & 0\\ \end{pmatrix}\\ C=\begin{pmatrix}1 & 0 & 0 & 2 & 1\\ 0 & 1 & 0 & -7 & -2\\ 0 & 0 & 1 & 7 & 4\\ \end{pmatrix}\\ 30171112011010201213 10003113431011031037373123432 10000100311313131037373123434 10000100001027701240 B= 301711120110 C= 100010001277124

Python代码

  我是用直接把前r列化成单位矩阵的方法得到埃尔米特标准型,这样计算比较机械,也容易实现,代码如下:文章来源地址https://www.toymoban.com/news/detail-754301.html

    # 矩阵的满秩分解
    def full_rank_factorization(self):
        # 对第i列,第i行变1,其余行变0
        array = copy.deepcopy(self.__vectors)
        m = len(self.__vectors[0])
        n = len(self.__vectors)
        r = min(m, n)
        # i 是列
        for i in range(r):
            # 先处理对角线元素
            # 近似为0
            if abs(array[i][i]) < MAX_ERROR:
                break
            row_times(array, i, 1 / array[i][i])

            # 是行
            vector = array[i]
            for j in range(m):

                if i == j:
                    continue
                # 处理非对角线元素,就变成0吧
                row_times_add(array, i, -vector[j], j)
            print("~",Matrix(array).to_latex())
        rank = 0
        # 检查每一行是否全为0
        for i in range(m):
            if all_zero_row(array, i):
                continue
            rank += 1
        print(Matrix(array).to_latex())
        b = Matrix(self.__vectors[0:rank])
        c = Matrix(first_rows(array, rank))
        return b, c

到了这里,关于5.4 满秩分解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【线性代数/机器学习】矩阵的奇异值与奇异值分解(SVD)

    我们知道,对于一个 n × n ntimes n n × n 的矩阵 A A A ,如果 A A A 有 n n n 个线性无关的特征向量,则 A A A 可以相似对角化,即存在可逆矩阵 P P P 使得 A = P Λ P − 1 A=PLambda P^{-1} A = P Λ P − 1 ,其中 Λ Lambda Λ 是 A A A 的特征值组成的对角阵。 P P P 的列实际上就是 A A A 的特征向

    2024年02月10日
    浏览(42)
  • 高等代数复习:矩阵的满秩分解

    本篇文章适合个人复习翻阅,不建议新手入门使用 定义:矩阵的左逆、右逆 设 A A A 是 m × n mtimes n m × n 矩阵 若 r ( A ) = n r(A)=n r ( A ) = n ,即 A A A 列满秩,则存在秩为 n n n 的 n × m ntimes m n × m 行满秩矩阵 B B B ,使得 B A = I n BA=I_n B A = I n ​ ,矩阵 B B B 称为 A A A 的左逆 若

    2024年04月13日
    浏览(32)
  • 04 MIT线性代数-矩阵的LU分解 Factorization into A=LU

    目的: 从矩阵的角度理解高斯消元法, 完成 LU 分解得到 A = LU U 为上三角阵(Upper triangular matrix),  L 为下三角阵(Lower triangular matrix), 通过分解得到对角阵 D (diagonal matrix) 设定一组消元矩阵,其中 E31 为单位阵 I ,其它两个消元矩阵如下: row3 -5 newrow2 = row3 -5( row2 -2 row1 )= row3 -

    2024年02月07日
    浏览(41)
  • 5.4 满秩分解

      任意矩阵都有满秩分解 Full rank factorization 。也就是说不限于方阵,更不限于满秩矩阵。满秩分解用途很广,尤其是后期的对于广义逆的学习来说非常重要。   首先要搞清楚什么是满秩分解 full rank factorization ,假设矩阵为 A A A ,它的秩为 r r r ,满秩分解就是分解为如下

    2024年02月05日
    浏览(41)
  • 【JS 线性代数算法之向量与矩阵】

    线性代数是数学的一个分支,用于研究线性方程组及其解的性质、向量空间及其变换的性质等。在计算机科学领域中,线性代数常用于图形学、机器学习、计算机视觉等领域。本文将详细介绍 JS 中常用的线性代数算法,并提供代码示例。 向量是有大小和方向的量,通常用一

    2024年02月13日
    浏览(57)
  • 矩阵分解是计算机科学中的一个重要研究领域,涉及到向量空间理论、线性代数、密码学等领域。以下是100篇热门博客文

    作者:禅与计算机程序设计艺术 矩阵分解是计算机科学中的一个重要研究领域,涉及到向量空间理论、线性代数、密码学等领域。在机器学习和深度学习等领域中,矩阵分解被广泛应用。本文将介绍矩阵分解的相关原理、实现步骤以及应用示例。 2.1 基本概念解释 矩阵分解是

    2024年02月15日
    浏览(60)
  • [Eigen中文文档] 线性代数与分解

    文档总目录 英文原文(Linear algebra and decomposition) 本节说明如何求解线性系统,计算各种分解,如 LU 、 QR 、 SVD 、 特征分解 …… 求解基本线性系统 问题 :有一个方程组,写成矩阵方程如下: A x = b Ax = b A x = b 其中 A A A 和 b b b 是矩阵(作为一种特殊情况, b b b 也可以是一个

    2024年02月07日
    浏览(43)
  • 数值线性代数:奇异值分解SVD

    本文记录计算矩阵奇异值分解SVD的原理与流程。 注1:限于研究水平,分析难免不当,欢迎批评指正。 设列满秩矩阵,若的特征值为,则称为矩阵的奇异值。 设,则存在正交矩阵与,使得 其中,,,即为矩阵的奇异值。 考虑下述两种情形: 情形1: 其中, 由此可以看出,

    2024年02月15日
    浏览(53)
  • 线性代数 --- 计算斐波那契数列第n项的快速算法(矩阵的n次幂)

    The n-th term of Fibonacci Numbers:         斐波那契数列的是一个古老而又经典的数学数列,距今已经有800多年了。关于斐波那契数列的计算方法不难,只是当我们希望快速求出其数列中的第100,乃至第1000项时,有没有又准又快的方法,一直是一个值得探讨和研究的问题。笔者

    2024年04月27日
    浏览(46)
  • 线性代数高级--二次型--特征值与特征向量--特征值分解--多元函数的泰勒展开

    目录 二次型 概念 示例   性质和特点 特征值与特征向量 概念 示例  注意  性质和特点  特征值分解 注意 多元函数的泰勒展开  回顾一元函数泰勒展开  多元函数的泰勒展开 概念 二次型是一个关于向量的二次多项式,通常用矩阵表示。 考虑一个n维向量x = [x₁, x₂, ...,

    2024年02月11日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包