matlab 矩阵分解
矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。常见的矩阵分解有LU分解、QR分解、Cholesky分解,以及Schur分解、Hessenberg分解、奇异分解等。
(1) LU分解
矩阵的LU分解就是将一个矩阵表示为一个交换下三角矩阵和一个上三角矩阵的乘积形式。线性代数中已经证明,只要方阵A是非奇异的,LU分解总是可以进行的。
MATLAB提供的lu函数用于对矩阵进行LU分解,其调用格式为:
[L,U]=lu(X):产生一个上三角阵U和一个变换形式的下三角阵L(行交换),使之满足X=LU。注意,这里的矩阵X必须是方阵。
[L,U,P]=lu(X):产生一个上三角阵U和一个下三角阵L以及一个置换矩阵P,使之满足PX=LU。当然矩阵X同样必须是方阵。
实现LU分解后,线性方程组Ax=b的解x=U\(L\b)或x=U\(L\Pb),这样可以大大提高运算速度。
例7-2 用LU分解求解例7-1中的线性方程组。
命令如下:
A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];
b=[13,-9,6,0]';
[L,U]=lu(A);
x=U\(L\b)
或采用LU分解的第2种格式,命令如下:
[L,U ,P]=lu(A);
x=U\(L\P*b)
(2) QR分解
对矩阵X进行QR分解,就是把X分解为一个正交矩阵Q和一个上三角矩阵R的乘积形式。QR分解只能对方阵进行。MATLAB的函数qr可用于对矩阵进行QR分解,其调用格式为:
[Q,R]=qr(X):产生一个一个正交矩阵Q和一个上三角矩阵R,使之满足X=QR。
[Q,R,E]=qr(X):产生一个一个正交矩阵Q、一个上三角矩阵R以及一个置换矩阵E,使之满足XE=QR。
实现QR分解后,线性方程组Ax=b的解x=R\(Q\b)或x=E(R\(Q\b))。
例7-3 用QR分解求解例7-1中的线性方程组。
命令如下:
A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];
b=[13,-9,6,0]';
[Q,R]=qr(A);
x=R\(Q\b)
或采用QR分解的第2种格式,命令如下:
[Q,R,E]=qr(A);
x=E*(R\(Q\b))
(3) Cholesky分解
如果矩阵X是对称正定的,则Cholesky分解将矩阵X分解成一个下三角矩阵和上三角矩阵的乘积。设上三角矩阵为R,则下三角矩阵为其转置,即X=R'R。MATLAB函数chol(X)用于对矩阵X进行Cholesky分解,其调用格式为:
R=chol(X):产生一个上三角阵R,使R'R=X。若X为非对称正定,则输出一个出错信息。
[R,p]=chol(X):这个命令格式将不输出出错信息。当X为对称正定的,则p=0,R与上述格式得到的结果相同;否则p为一个正整数。如果X为满秩矩阵,则R为一个阶数为q=p-1的上三角阵,且满足R'R=X(1:q,1:q)。
实现Cholesky分解后,线性方程组Ax=b变成R‘Rx=b,所以x=R\(R’\b)。
例7-4 用Cholesky分解求解例7-1中的线性方程组。
命令如下:
A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];
b=[13,-9,6,0]';
R=chol(A)
??? Error using ==> chol
Matrix must be positive definite
命令执行时,出现错误信息,说明A为非正定矩阵。
转自:http://203.208.37.104/search?q=cache:EfIWKymoWB8J:www.math.org.cn/forums/index.php%3Fact%3DAttach%26type%3Dpost%26id%3D213920+matlab+%E7%9F%A9%E9%98%B5LU%E5%88%86%E8%A7%A3&hl=zh-CN&ct=clnk&cd=15&gl=cn&client=firefox-a&st_usg=ALhdy2-W-UGiapmEd7-JkiCNACw5NK2Gew
matlab 矩阵分解相关推荐
- matlab矩阵分解
矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积.常见的矩阵分解有LU分解(三角分解).QR分解(正交变换).Cholesky分解,以及Schur分解.Hessenberg分解.奇 ...
- 【MATLAB】矩阵运算之矩阵分解
矩阵分解:把一个矩阵分解成为矩阵连乘的形式. 矩阵的分解函数 chol Cholesky分解 cholinc 稀疏矩阵的不完全Cholesky分解 lu 矩阵LU分解 luinc 稀疏矩阵的不完全LU ...
- matlab 中的矩阵分解
矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积.常见的矩阵分解有LU分解(三角分解).QR分解(正交变换).Cholesky分解,以及Schur分解.Hessenberg分解.奇 ...
- matlab矩阵特征分解,用MATLAB实现矩阵分解
MATLAB求解线性方程的过程基于三种分解法则: (1)Cholesky分解,针对对称正定矩阵: (2)高斯消元法, 针对一般矩阵: (3)正交化, 针对一般矩阵(行数≠列数) 这三种分解 ...
- Matlab 矩阵论 矩阵分解的计算实现(六)矩阵的正交三角分解
Matlab 矩阵论 矩阵分解的计算实现(六)矩阵的正交三角分解 本来matlab中自带了做正交三角分解的函数,[U,R]=qr(A),U R为分解结果.但是这样使用只会有结果没有中间过程,所以写了一 ...
- Matlab:矩阵分解
Matlab:矩阵分解 简介 Cholesky 分解 LU 分解 QR 分解 对分解使用多线程计算 简介 本节中讨论的所有三种矩阵分解利用了三角形矩阵,其中对角线上下的所有元素都为零.涉及三角矩阵的线 ...
- matlab中服从高斯分布的矩阵_推荐基础算法之矩阵分解PMF
推荐基础算法之矩阵分解PMF 大多数存在的协同过滤算法不能处理以下两种情况: 1. 不能处理大规模数据 2.不能处理评分非常少的用户数据 概率矩阵分解模型可以解决大规模.稀疏且不平衡的数据.这篇文章主 ...
- 低秩矩阵RPCA MATLAB,低秩矩阵分解
[实例简介] 低秩矩阵分解代码,inexact alm [实例截图] [核心代码] inexactalm └── inexact alm ├── inexact_alm_rpca │ ├── ch ...
- matlab lud矩阵分解,MIT线性代数总结笔记——LU分解
MIT线性代数总结笔记--LU分解 矩阵分解 矩阵分解(Matrix Factorizations)就是将一个矩阵用两个以上的矩阵相乘的等式来表达.而矩阵乘法涉及到数据的合成(即将两个或多个线性变换的 ...
最新文章
- 一道经典面试题讲解 :数组越界而没报错 ,却出现死循环 ?(C语言)
- SparkStreaming读取Socket数据
- 基于MATLAB的RSSI定位算法仿真
- 【Opencv实战】简易版“美颜”来啦—再见旧照片,Python一键美颜哦~
- Codeforces Round #490 (Div. 3)【完结】
- Qt Creator使用语言服务器
- webservice系统学习笔记9-使用契约优先的方式的一个服务端demo(隐式传Header信息)...
- linux git删除的文件怎么还原,从Git仓库中恢复已删除的分支、文件或丢失的commit...
- 官网的python下载安装后无需配置即可使用_图文解说少儿编程软件python下载安装,没有经验的新手也可以做到...
- Seata详解(二)
- Spark RDD 宽依赖窄依赖
- nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in com.chengg
- AIM 2020 Challenge on Learned Image Signal Processing Pipeline(个人笔记,勿喷)
- 二十一世纪大学英语读写基础教程学习笔记(原文)——4 - The Happiest Man in the World(世界上最幸福的人)
- 一梦江湖获取服务器信息一直获取不出来,一梦江湖手游4月10日更新汇总-一梦江湖手游4月10日更新内容有哪些_牛游戏网...
- [ffmpeg][vaapi][goav][golang] ffmpeg使用vaapi示例代码(基于goav-incr)
- Outlook打不开附件
- 高得地图 +数据绑定(databinding) + BaseQuickAdapter 自定义地图选点!
- 【Hive】Hive练习题(一)
- nrf51822裸机教程-SPI(主)