第 2 章 matlab数值计算第二次课
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§2.4 矩阵分解 2.4
clear A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4]; b=[13,-9,6,0]'; tic x2=A\b; %用左除运算求解 toc tic x1=inv(A)*b; %用求逆运算求解 toc 其中tic和toc两个函数配合使用用于计 tic 算程序的执行时间,tic记录当前时间, [L,U]=lu(A); %LU分解 toc记录或显示使用tic函数以来所花费 x3=U\(L\b); %用LU分解求解 的时间.运行结果说明,x1,x2,x3 的值相同,通过LU分解求值所花运行 toc 时间最少. x1=x1' x2=x2' x3=x3'
河南理工大学测绘学院
§2.4 矩阵分解 2.4
U = 5.0000 -4.0000 0 2.6000 0 0 3.0000 -0.2000 0.3846
>> lu=L*U lu = 1 -1 5 -4 2 1
1 3 1
河南理工大学测绘学院
§2.4 矩阵分解 2.4
>> [L U P]=lu(a) L= 1.0000 0 0 0.4000 1.0000 0 0.2000 -0.0769 1.0000 U= 5.0000 -4.0000 3.0000 0 2.6000 -0.2000 0 0 0.3846 P= 0 0 1
河南理工大学测绘学院
2.4 矩阵的分解
【例2.15】 b=[3 -2 -0.9 2*eps;-2 4 -1 -eps;-eps/4 eps/2 -1 0;-0.5 -.5 .1 1]; [b,p]=chol(b) b= 1.7321 0 p= 3 -1.1547 1.6330
河南理工大学测绘学院
河南理工大学测绘学院
§2.4 矩阵分解 2.4
【例2.14】 2.14】
1 2 1 A = 1 2 1 1 1 3
对矩阵A进行Cholesky分解. A=[2,1,1;1,2,-1;1,-1,3]; R=chol(A) R'*R 利用第2种格式对矩阵A进行Cholesky分解: [R,p]=chol(A)
河南理工大学测绘学院
§2.4 矩阵分解 2.4
A=[2,1,1;1,2,-1;1,>> A=[2,1,1;1,2,-1;1,-1,3]; >> R=chol(A) R = 1.4142 0.7071 0.7071 0 1.2247 -1.2247 0 0 1.0000 >> R'*R ans = 2.0000 1.0000 1.0000 1.0000 2.0000 -1.0000 1.0000 -1.0000 3.0000 >> [R,p]=chol(A) R = 1.4142 0.7071 0.7071 0 1.2247 -1.2247 0 0 1.0000 p = 0
§2.4 矩阵分解
MATLAB提供的lu函数用于对矩阵进行LU分解,其调用 格式如下. ● [L,U] = lu(X):产生一个上三角阵U和一个变换形式的下 三角阵L(行交换),使之满足X = LU.注意,这里的矩阵X 必须是方阵. ● [L,U,P] = lu(X):产生一个上三角阵U和一个下三角阵L 以及一个置换矩阵P,使之满足PX = LU.当然矩阵X同样 必须是方阵. 当使用第1种格式时,矩阵L往往不是一个下三角矩阵, 但可以通过行交换成为一个下三角阵.
2.4.1 矩阵的LU分解 矩阵的LU分解 LU
矩阵的LU分解又称Gauss消去分解或三角分解,就是将 一个方阵表示为一个行交换下三角矩阵和一个上三角矩阵的 乘积形式.方阵A是非奇异的,LU分解总是可以进行的.LU 分解主要用于简化一个大矩阵的行列式值的计算过程,求反 矩阵和求解联立方程组.
河南理工大学测绘学院
§2.3 线性方程组求解
2.3.1 矩阵求逆及线性代数方程组求解
1.矩阵求逆 inv(A)函数用于计算方阵的逆矩阵.
【例2.8】 求方阵A的逆矩阵并赋值给B,且验证A与B是互逆的. .8】 A=[1 -1 1;5 -4 3;2 1 1]; B=inv(A)
B= -1.4000 0.4000 0.2000 -0.2000 2.6000 -0.6000
§2.4 矩阵分解 2.4
2.4.4 矩阵的QZ分解 矩阵的QZ分解 QZ 在MATLAB中,QZ分解可由函数qz来实现.qz函数常用的 调用格式: [AA,BB,Q,Z,V]=qz(A,B):要求矩阵A,B是方阵.产生的矩 阵AA,BB是上三角矩阵,Q,Z是正交矩阵,矩阵V是特征 矢量矩阵.其中,满足Q*A*Z=AA与Q*B*Z=BB. [AA,BB,Q,Z,V]=qz(A,B,flag):对于方阵A,B的QZ分解取 决于参数flag.参数flag可以取'complex'与'real' 其中,'complex'表示复分解产生三角矩阵AA,'real' 表示实分解产生三角矩阵AA.
x1 2 x2 + 3x3 = 1 3x1 x2 + 5 x3 = 2 2 x + x + 5 x = 3 3 1 2
河南理工大学测绘学院
§2.3 线性方程组求解
2.3.2 利用左除运算符求解线性方程组
对于线性方程组Ax = b,可以利用左除运算符"\"求解: x = A\b 【例2.10 2.10】用左除运算符求解下列相同系数矩阵的两个线 2.10 性代数方程组的解.
河南理工大学测绘学院
§2.4 矩阵分解 2.4
【2.13】设
1 4 2 1 A = 1 2 1 2 1 1 3 3
对矩阵A进行QR分解. A=[2,1,1,4;1,2,-1,2;1,-1,3,3]; [Q,R]=qr(A)
河南理工大学测绘学院
§2.4 矩阵分解 2.4
Q = -0.8165 -0.4082 -0.4082 R = -2.4495 0 0 0 -0.7071 0.7071 -1.2247 -2.1213 0 -0.5774 0.5774 0.5774 -1.6330 2.8284 0.5774 -5.3072 0.7071 0.5774
河南理工大学测绘学院
§2.4 矩阵分解
1 1 1 【例2.11】 设A= ,对矩阵A 进行LU分解. 5 4 3 2 1 1
>> a=[1 -1 1;5 -4 3;2 1 1]; >> [L,U]=lu(a) L = 0.2000 -0.0769 1.0000 1.0000 0 0 0.4000 1.0000 0
-0.6396 0.6396 0.4264 -0.9285 -2.2567 0.2132 1 0 0 0 -2.4140 -0.356 -0.2132
河南理工大学测绘学院
§2.4 矩阵分解 2.4
Q*R/E ans = 2.0000 1.0000 1.0000 1.0000 2.0000 -1.0000 1.0000 -1.0000 3.0000 4.0000 2.0000 3.0000 %验证A=Q*R*inv(E)
解法2:将两个线性方程 组连在一起求解. A=[1,-1,1;5,4,3;2,1,1]; b=[2,3;-3,4;1,-5]; xy=A\b xy = -3.8000 1.4000 7.2000 -3.6000 -2.2000 4.4000
河南理工大学测绘学院
§2.4 矩阵分解
矩阵分解是指根据一定的原理用某种算法将一个矩阵分 解成若干个矩阵的乘积.常见的矩阵分解有LU分解,QR分 解,Cholesky分解以及Schur分解,Hessenberg分解,奇 异分解等.
1 1 1 ( 5 4 3 i 1) 2 1 1 x1 2 x = 3 2 x3 1 1 1 1 (2) 5 4 3 i 2 1 1 y1 3 y = 4 2 y3 5
河南理工大学测绘学院
§2.3 线性方程组求解
解法1:分别解线性方程组. A=[1,-1,1;5,-4,3;2,1,1]; b1=[2;-3;1]; b2=[3;4;-5]; x=A\b1 x = -3.8000 1.4000 7.2000 y=A\b2 y = -3.6000 -2.2000 4.4000
实现QR分解后,线性方程组Ax=b的解x=R\ (Q\b)或x=E(R\(Q\b)).
河南理工大学测绘学院
§2.4 矩阵分解 2.4
2.4.3 矩阵的Cholesky分解 矩阵的Cholesky分解 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).
0.2000 0.4000 0.2000
河南理工大学测绘学院
§2.3 线性方程组求解
>> A*B ans = 1.0000 -0.0000 -0.0000 >> B*A ans = 1.0000 -0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000
2.4 矩阵的分解
b=[3 -2 -0.9 2*eps;-2 4 -1 -eps;-eps/4 eps/2 -1 0;0.5 -.5 .1 1]; x=chol(b) ??? Error using ==> chol Matrix must be positive definite.
河南理工大学测绘学院
>> QR=Q*R QR = 2.0000 1.0000 1.0000
源自文库
1.0000 2.0000 -1.0000
1.0000 -1.0000 3.0000
4.0000 2.0000 3.0000
河南理工大学测绘学院
§2.4 矩阵分解 2.4
[Q,R,E]=qr(A) Q = -0.7428 -0.1980 -0.3714 -0.6730 -0.5571 0.7126 R = -5.3852 -2.0426 0 2.6130 0 0 E = 0 0 0 0 0 1 0 1 0 1 0 0
河南理工大学测绘学院
§2.4 矩阵分解 2.4
【例4.12】分别用左除运算,求逆运算,LU分解方法求解下列线性方程组. 2x1 + x2 5x3 + x4 =13 x 5x + 7x = 9 1 2 4 2x2 + x3 x4 = 6 x1 + 6x2 x3 4x4 = 0
河南理工大学测绘学院
河南理工大学测绘学院
§2.4 矩阵分解 2.4
2.4.2 矩阵的QR分解 矩阵的QR分解 QR
对矩阵X进行QR分解,就是把X分解为一个正交矩阵Q 和一个上三角矩阵R的乘积形式.MATLAB的函数qr可用于 对矩阵进行QR分解,其调用格式如下. ● [Q,R] = qr(X):产生一个一个正交矩阵Q和一个上三角 矩阵R,使之满足X = QR. ● [Q,R,E] = qr(X):产生一个一个正交矩阵Q,一个上三 角矩阵R以及一个置换矩阵E,使之满足XE = QR.
河南理工大学测绘学院
数值计算(第二讲 第二章 MATLAB数值计算 第二讲) 数值计算 第二讲)
本章学习目标
● ● ● ● ● ● 掌握生成特殊矩阵的方法. 掌握矩阵分析的方法. 掌握求解线性方程组的各种方法. 了解矩阵的稀疏存储方式. 掌握数据统计和分析的方法. 掌握多项式常用运算.
河南理工大学测绘学院
0.0000 1.0000 -0.0000
-0.0000 0.0000 1.0000
河南理工大学测绘学院
§2.3 线性方程组求解
2.利用矩阵求逆方法解线性方程组 【例2.9】利用矩阵求逆方法解线性方程组 2
A=[1,-2,3;3,-1,5;2,1,5]; b=[1;2;3]'; x=inv(A)*b x= -0.3333 0.3333 0.6667
1 0 0
0 1 0
河南理工大学测绘学院
§2.4 矩阵分解 2.4
>> lu=L*U lu = 5 -4 3 2 1 1 1 -1 1 >> inv(p)*L*u ??? Undefined function or variable 'p'. >> inv(P)*L*U ans = 1 -1 1 5 -4 3 2 1 1