matlab中转置矩阵的特征值,矩阵乘以矩阵的转置运算的解析
题题目
线性代数A矩阵乘以A的转置的含义或者几何意义我是在最小二乘法和SVD分解这部分知识中看到的,非常的迷惑,而且为什么A的转置乘以A的特征值是和A乘以A的转置的特征值是相同的呢重分!
优优质解答
(下面以A(T)表示A的转置.)
先从奇异值说起.我个人的理解,奇异值是特征值的一种推广.因为只有方阵才可能具有特征值,对于实际遇到的一些问题(比如最小二乘问题),往往遇上长方阵,长方阵根本没有特征值.因而就有必要对特征值做推广,这就是奇异值.
再看什么是奇异值.对于任意矩阵A(甚至是非方的),A(T)A(这个时候就变成方阵了,可以算特征值了)的特征值就称为A的奇异值.奇异值有个特性,就是A(T)A和AA(T)特征值相同.证明如下:
【假定A(T)A做了一个特征分解,为:
A(T)A = QΣQ(T)
对上式取转置,有
AA(T) = QΣ(T)Q(T)
显然,Σ是个对角阵,因而,Σ(T) = Σ
故而,AA(T)和A(T)A有完全一致的特征分解,即共特征值】
再看特征值和奇异值的关系.对于长方阵来说,它根本不存在特征值,所以之后再讨论.对于方阵来说,容易证明,其所有奇异值恰好为其所有特征值的模长的平方(即奇异值全实非负),因而奇异值和特征值有相当良好的对应关系.证明如下:
【假定方阵A有如下特征分
A = QΣQ(T)
则A(T)A = (QΣQ(T))(QΣQ(T)) = QΣΣQ(T)
因而,A(T)A的特征值,也就是A的奇异值,恰好为A的特征值的模长的平方】
【当然,对于复数域情况,里边的T要改成H,那么前一个Σ自然会带上复共轭】
再看奇异值为什么重要.我们知道,对于一个方阵来说,特征分解后,从特征值和特征向量我们就可以知道矩阵的大量性质.对于非方阵来说,我们也希望得到一个这样信息量巨大的分解,这就是奇异值分解(SVD).这个SVD分解里边左右奇异向量分别是什么你的书上肯定都有,就不写在这里了.
最后看一下SVD分解和最小二乘的关系.我们知道,最小二乘有个解法,对于Ax = b的最小二乘问题,等价于求解其法方程A(T)Ax = A(T)b,这个时候就变成方阵的问题了.但是这种算法是不稳定的.一种更为有效的算法就是SVD分解并利用广义逆求解.
看一下广义逆和最小二乘、SVD的关系.广义逆可以百度一下.定义有很多式子.但是,对于可逆阵来说,广义逆就是逆.这里把A的广义逆记作A(+).则Ax = b的最小二乘解就是x = A(+)b.所以,现在的问题就是,怎么求A的广义逆A(+).通过SVD分解,广义逆可以这么求:
如果A有SVD分解如下:
A = VΣU(T)
则A(+) = UΣV(T)
当然,这里叙述可能不那么严谨.因为还涉及到Σ的形状什么的,所以两个式子的Σ形状大小不一样,形状变了,补0就行.
因此,SVD分解就完美解决了最小二乘问题.
-----更正---------
说错了一点点,奇异值不是特征值的模长的平方,它就是模长,因为奇异值要对Σ(H)Σ对角线开算术平方根.
追问:
那对于最小二乘法,为什么要在左右乘上A的转置进行求解呢?
追答:
那种解法称作“法方程”解法。相当于求得一个x,使得A(T)(b-Ax)=0,也就是残差与矩阵A行向量的内积为0,即残差与矩阵A的行空间正交,由投影定理,可以证明,此时残差二范数最小。以上就是法方程的几何意义。法方程的解恰好是最小二乘解还有其他更严格的证明,比如泛函式的证明。但是,法方程法不是最佳解法。一般较优解法是QR分解法以及广义逆法(配合SVD分解)。
matlab中转置矩阵的特征值,矩阵乘以矩阵的转置运算的解析相关推荐
- matlab矩阵指定行最大值,求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.*...
导航:网站首页 > 求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.* 求Matlab程序:在2行矩阵中,如何求 ...
- 2.4 矩阵乘以矩阵定义
矩阵乘以矩阵 乘法定义 进一步分析基变换关系, nnn 维空间中任意向量 x=a1v1+⋯+anvn\mathbf{x}=a_1\mathbf{v_1}+\cdots+a_n\mathbf{v_n}x ...
- matlab中除法的使用,错误使用 / 矩阵维度必须一致
错误使用 / 矩阵维度必须一致. 当出现这个错误,说明除数符号写错了,需要从/变成./就可以了 matlab中的乘除法: 1.数字之间相乘/相除 >> a=3; >> b= ...
- matlab改变矩阵的元素,Matlab中元素不变情况下改变矩阵形态——reshape()
reshape把指定的矩阵改变形状,但是元素个数不变. 例如,行向量: a = [1 2 3 4 5 6] 执行下面语句把它变成3行2列: b = reshape(a,3,2) 执行结果: b = 1 ...
- python怎么矩阵的秩_python – 从numpy或matlab中的满秩非矩形矩阵中获取可逆方阵...
在MATLAB中轻松,轻松.使用QR,特别是枢轴QR. M = [3 0 0 0 0; 0 0 1 0 0; 0 0 0 0 1; 0 2 0 0 0] [Q,R,E] = qr(M) Q = 1 0 ...
- Matlab中创建、串联和扩展矩阵
目录 构建数据矩阵 专用矩阵函数 串联矩阵 生成数值序列 扩展矩阵 空数组 最基本的 MATLAB® 数据结构体是矩阵.矩阵是按行和列排列的数据元素的二维矩形数组.元素可以是数字.逻辑值(true 或 ...
- matlab 矩阵维度受限,matlab中变量问题——readonly 索引超出矩阵维度 workspacefunc 215...
matlab程序运行过程中会出现如上提示,在网上检索未果,键入dbstop if error语句也无法定错误之处,就想这个错误不是一般的错误. 通过间隔打断点的方式最后定位错误为一句exist = f ...
- matlab矩阵非方阵求逆,python – 从numpy或matlab中的满秩非矩形矩阵中获取可逆方阵...
假设您具有满秩的NxM矩阵A,其中M> N.如果我们用C_i表示列(尺寸为Nx1),那么我们可以将矩阵写为 A = [C_1, C_2, ..., C_M] 如何获得原始矩阵A的第一个线性独立列 ...
- matlab inline feval,matlab中关于函数句柄、feval函数以及inline函数的解析
MATLAB函数句柄 函数句柄(Function handle)是MATLAB的一种数据类型. 包含了函数的路径.函数名.类型以及可能存在的重载方法: 引入函数句柄是为了使feval及借助于它的泛函指 ...
- matlab中索引超过维度,索引超出矩阵维度怎么解决?
索引超出矩阵维度. 出错 reduceEI (line 3) if any(M(1,:)) 出错 EIsum (line 4) f=reduceEI([[zeros(max(Msize(1),Nsiz ...
最新文章
- Java面向接口编程,低耦合高内聚的设计哲学
- dubbo+zookeeper与提供者、消费者之间端口通信问题(No provider available for the service)
- php扩展调试,5分钟学会PHP扩展开发与断点调试
- Oracle 数据库启动 startup和startup force的区别
- 由浅到深理解ROS(2)
- Android SDK安装与环境配置
- 高效安全存储之选 佰维A3系列240G固态硬盘试用手记
- java中的Vector的用法
- 【数字全排列】LeetCode 47. Permutations II
- 进程间通信学习APUE学习---进程间通信(4)
- 2021 年 35+ 最佳免费 WordPress 博客主题
- YTU oj 3272: 公民身份号码
- 鸿蒙OS不支持游戏,部分安卓游戏在华为鸿蒙 OS 上运行,被识别成使用 PC 端模拟器...
- 数学符号Span的含义
- 基于深度学习的场景分类算法
- C语言程序设计课程设计(服装销售管理系统)
- cs反恐特警3d版2java_CS反恐特警增值版
- BIM模型文件下载——售楼中心室内装饰Revit模型
- java实现音乐播放功能
- html表格数据垂直居中显示,html如何设置表格单元格内容垂直居中?