matlab中chol函数用法
2015-12-21 16:28
549 查看
Cholesky分解:
如果矩阵X是对称正定的,则Cholesky分解将矩阵X分解成一个下三角矩阵和上三角矩阵的乘积。设上三角矩阵为R,则下三角矩阵为其转置,即X=R'R。
MATLAB函数chol(X)用于对矩阵X进行Cholesky分解,
其调用格式为:
[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)。
例1:
A=[1 2 3;2 8 8;3 8 35]
输出:
A =
1 2 3
2 8 8
3 8 35
u=chol(A)
输出:
u =
1 2 3
0 2 1
0 0 5
u'
输出:
ans =
1 0 0
2 2 0
3 1 5
验证u'*u
输出:
ans =
1 2 3
2 8 8
3 8 35
例2: 用Cholesky分解求解线性方程组。
命令如下:
命令执行时,出现错误信息,说明A为非正定矩阵。
ps:正定矩阵(一个n×n的实对称矩阵M是正定的,当且仅当对于所有的非零实系数向量z,都有zTMz > 0。其中zT表示z的转置。)
如果矩阵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)。
例1:
A=[1 2 3;2 8 8;3 8 35]
输出:
A =
1 2 3
2 8 8
3 8 35
u=chol(A)
输出:
u =
1 2 3
0 2 1
0 0 5
u'
输出:
ans =
1 0 0
2 2 0
3 1 5
验证u'*u
输出:
ans =
1 2 3
2 8 8
3 8 35
例2: 用Cholesky分解求解线性方程组。
命令如下:
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为非正定矩阵。
ps:正定矩阵(一个n×n的实对称矩阵M是正定的,当且仅当对于所有的非零实系数向量z,都有zTMz > 0。其中zT表示z的转置。)
相关文章推荐
- SIFT算子-matlab
- Matlab高级绘图
- Matlab Command Window 进度提示
- MATLAB 标注 图像上截取Rect区域图像
- matlab脚本文件和函数文件
- Matlab atan2
- matlab获取标量
- C++与MATLAB数组的存储结构
- (学习笔记)matlab机器人工具箱攻略——矩阵变换,运动学
- Matlab和C++混合编程——在matlab调试过程中可以跳入VS调试观察.cpp文件中的数据
- matlab练习程序(图像Haar小波变换)
- Matlab与Python的语法比较
- Matlab需要掌握重要函数及基本技能
- MatLab Kmeans聚类
- MATLAB 图像处理命令
- 精通MATLAB2011a书籍 以及程序
- MATLAB往EXCEL讀寫數據
- 《matlab从零到进阶》matlab练习1——二维绘图
- Matlab借助匿名函数求隐函数
- matlab取整函数