matlab中rref函数的rref求高维矩阵的极大线性无关向量组可以嘛

第五章1 Matlab在线性代数中的应用_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
&&¥2.00
第五章1 Matlab在线性代数中的应用
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:354.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢矩阵的应用-线性代数的MATLAB求解_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
矩阵的应用-线性代数的MATLAB求解
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:735.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢第四讲应用MATLAB解决高等代数问题
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
第四讲应用MATLAB解决高等代数问题
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口MATLAB矩阵分解 MATLAB矩阵分解 与线性方程组求解数学与信息科学系 汪远征 4. MATLAB矩阵分解与线性方程组求解 MATLAB矩阵分解与线性方程组求解 4.1 矩阵分解 4.2 秩与线性相关性 4.3 线性方程的组的求解 4.4 特征值与二次型汪远征 4.1 矩阵分解汪
远征4.1.1 LU分解 LU分解矩阵的三角分解又称LU 分解 矩阵的三角分解又称 LU分解 , 它的目的是将一个矩 分解, 阵分解成一个下三角矩阵L 和一个上三角矩阵U 阵分解成一个下三角矩阵 L 和一个上三角矩阵 U 的乘 积,即A=LU。 A=LU。 Matlab使用函数 实现 分解 其格式为: Matlab使用函数lu实现LU分解,其格式为: 使用函数lu实现LU分解, [L,U] = lu(A) 其中U 为上三角阵, 为下三角阵或其变换形式, 其中 U 为上三角阵 , L 为下三角阵或其变换形式 , 满 足LU=A。 LU=A。 4.1 矩阵分解汪远征4.1.1 LU分解 LU分解[L,U,P] = lu(A) U为上三角阵,L为下三角阵,P为单位矩阵的行变换 为上三角阵, 为下三角阵, 矩阵,满足LU=PA。 矩阵,满足LU=PA。 例 4-1A=[1 A=[1 2 3;4 5 6;7 8 9]; [L,U]=lu(A) [L,U,P]=lu(A) 4.1 矩阵分解汪远征4.1.2 Cholesky分解 Cholesky分解如果A 如果A为n阶对称正定矩阵,则存在一个实的非奇异上 阶对称正定矩阵, 三角阵R 满足R'*R 称为Cholesky分解 三角阵R,满足R'*R = A,称为Cholesky分解 Matlab使用函数 Matlab使用函数chol实现Cholesky分解,其格式为: 使用函数chol实现 实现Cholesky分解 其格式为: 分解, R = chol(A) 若A非正定,则产生错误信息。 非正定,则产生错误信息。 [R,p] = chol(A) 不产生任何错误信息, 不产生任何错误信息,若A为正定阵,则p=0,R与上 为正定阵, p=0 相同; 非正定, 为正整数, 相同;若A非正定,则p为正整数,R是有序的上三角 阵。 4.1 矩阵分解汪远征4.1.2 Cholesky分解 Cholesky分解例 4-2A=pascal(4 A=pascal(4) %产生4阶pascal矩阵 产生4 pascal矩阵 [R,p]=chol(A) 4.1 矩阵分解汪远征4.1.3 QR分解 QR分解将矩阵A分解成一个正交矩阵Q与一个上三角矩阵R 将矩阵A分解成一个正交矩阵Q与一个上三角矩阵R的 乘积A=QR,称为QR分解 分解。 乘积A=QR,称为QR分解。 Matlab使用函数 实现 Matlab使用函数qr实现QR分解,其格式为: 使用函数qr实现QR分解 其格式为: 分解, [Q,R] = qr(A) [Q,R,E] = qr(A) 求得正交矩阵Q和上三角阵R 求得正交矩阵Q和上三角阵R,E为单位矩阵的变换形 的对角线元素按大小降序排列,满足AE=QR。 式,R的对角线元素按大小降序排列,满足AE=QR。 [Q,R] = qr(A,0) qr(A,0 产生矩阵A 产生矩阵A的“经济大小”分解 经济大小” 4.1 矩阵分解汪远征4.1.3 QR分解 QR分解Matlab使用函数 实现 Matlab使用函数qr实现QR分解,其格式为: 使用函数qr实现QR分解 其格式为: 分解, [Q,R] = qr(A) [Q,R,E] = qr(A) 求得正交矩阵Q和上三角阵R 求得正交矩阵Q和上三角阵R,E为单位矩阵的变换形 的对角线元素按大小降序排列,满足AE=QR。 式,R的对角线元素按大小降序排列,满足AE=QR。 [Q,R] = qr(A,0) qr(A,0 产生矩阵A 产生矩阵A的“经济大小”分解 经济大小” [Q,R,E] = qr(A,0) qr(A,0 E的作用是使得R的对角线元素降序, 且Q*R=A(:, E) 的作用是使得R的对角线元素降序, Q*R=A(: 4.1 矩阵分解汪远征4.1.3 QR分解 QR分解例 4-3A =[ 1 2 3;4 5 6; 7 8 9; 10 11 12]; 12] [Q,R] = qr(A) 4.1 矩阵分解汪远征4.1.3 QR分解 QR分解返回将矩阵A的第j列移去后的新矩阵的qr分解使用函 返回将矩阵A的第j列移去后的新矩阵的qr分解使用函 qrdelete,其格式为: 数 qrdelete,其格式为: [Q,R] = qrdelete(Q,R,j) 例 4-4A=[A=[-149 -50 -154;537 180 546;-27 -9 -25]; 154; 546; 25] [Q,R]=qr(A) [Q,R]=qrdelete(Q,R,3 [Q,R]=qrdelete(Q,R,3) %将A的第3列去掉后进行qr分解 的第3列去掉后进行qr分解 4.1 矩阵分解汪远征4.1.3 QR分解 QR分解在矩阵A 中第j 列插入向量x 后的新矩阵进行qr 分解使 在矩阵 A 中第 j 列插入向量 x 后的新矩阵进行 qr分解使 qrinsert,其格式为: 用函数 qrinsert,其格式为: [Q,R] = qrinsert(Q,R,j,x) 若j大于A的列数,表示在A的最后插入列x。 大于A的列数,表示在A的最后插入列x 例 4-5A=[A=[-149 -50 -154;537 180 546;-27 -9 -25]; 154; 546; 25] x=[35 x=[35 10 7]'; ]'; [Q,R]=qr(A) [Q,R]=qrinsert(Q,R,4 [Q,R]=qrinsert(Q,R,4,x) 4.1 矩阵分解汪远征4.1.4 Schur分解 Schur分解矩阵的Schur分解: 矩阵的Schur分解:设A ∈ Rn×n ,则存在正交阵Q使 则存在正交阵Q 分解? R11 ? ? QT AQ = ? ? ? ? R12 ... R1n ? ? R22 ... R2n ? ... ... ? ? Rnn ? ?实Schur型 Schur型其中R 至多2 其中 Rii 至多 2 阶 。 若 1 阶 , 其元素即 A 的特征值 , 若 2 其元素即A 的特征值, 阶其特征值为A的一对共轭复特征值。 阶其特征值为A的一对共轭复特征值。 Matlab使用函数 Matlab使用函数schur实现Schur分解,其格式为: 使用函数schur实现 实现Schur分解 其格式为: 分解, R = schur(A) R为schur矩阵, 即R的主对角线元素为特征值的三角阵 schur矩阵 矩阵, 4.1 矩阵分解汪远征4.1.4 Schur分解 Schur分解Matlab使用函数 Matlab使用函数schur实现Schur分解,其格式为: 使用函数schur实现 实现Schur分解 其格式为: 分解, R = schur(A) R为schur矩阵, 即R的主对角线元素为特征值的三角阵 schur矩阵 矩阵, R = schur(A,flag) 若A有复特征根,则flag='complex',否则flag='real'。 有复特征根, flag='complex',否则flag='real'。 [Q,R] = schur(A,…) schur(A,… 返回正交矩阵Q schur矩阵 返回正交矩阵Q和schur矩阵R,满足A = Q*R*Q'。 矩阵R 满足A Q*R*Q'。 4.1 矩阵分解汪远征4.1.4 Schur分解 Schur分解例 4-6H = [ -149 -50 -154; 537 180 546; -27 -9 -25 ]; 154; 546; [Q, R]=schur(H) 4.1 矩阵分解汪远征4.1.5 实Schur分解转化成复Schur分解 Schur分解转化成复Schur分解将实舒尔形式转化成复舒尔形式的函数是rsf2csf, 将实舒尔形式转化成复舒尔形式的函数是 rsf2csf , 其 格式 [Q, R] = rsf2csf(q, r) rsf2 例 4-7A=[1 A=[1 1 1 3;1 2 1 1;1 1 3 1;-2 1 1 4]; [q, r]=schur (A) [Q, R]=rsf2csf(q, r) R]=rsf2 4.2 秩与线性相关性汪远征4.2.1 矩阵和向量组的秩与向量组的线性相关性矩阵A 的秩是指矩阵A 中最高阶非零子式的阶数, 矩阵 A 的秩是指矩阵 A 中最高阶非零子式的阶数 , 或 是矩阵线性无关的行数与列数; 是矩阵线性无关的行数与列数;向量组的秩通常由该 向量组构成的矩阵来计算。 向量组构成的矩阵来计算。 在 MATLAB 中 , 求矩阵秩的函数是 rank。 其格式为: MATLAB中 求矩阵秩的函数是rank 。 其格式为 : k = rank(A) 返回矩阵A的行(或列) 返回矩阵A的行(或列)向量中线性无关个数 k = rank(A,tol) tol为给定误差 tol为给定误差 4.2 秩与线性相关性汪远征4.2.1 矩阵和向量组的秩与向量组的线性相关性例4-8 求向量组α1 = (1 –2 2 3),α2 = (–2 4 –1 3),α3 求向量组α = (–1 2 0 3),α4 = (0 6 2 3),α5 = (2 –6 3 4)的秩,并 的秩, 判断其线性相关性。 判断其线性相关性。 解:A=[1 A=[1 -2 2 3;-2 4 -1 3;-1 2 0 3;0 6 2 3;2 -6 3 4]; k=rank(A)结果为由于秩为3 向量个数,因此向量组线性相关。 由于秩为3 & 向量个数,因此向量组线性相关。 4.2 秩与线性相关性汪远征4.2.2 求行阶梯矩阵及向量组的基行阶梯使用初等行变换,矩阵的初等行变换有三条: 行阶梯使用初等行变换,矩阵的初等行变换有三条: (1) 交换两行ri ? rj (第i、第j两行交换) 交换两行r 两行交换) (2) 第i行的k倍kri 行的k (3) 第i行的k倍加到第j行上去rj+kri 行的k倍加到第j行上去r 通过这三条变换可以将矩阵化成行最简形, 通过这三条变换可以将矩阵化成行最简形,从而找出 列向量组的一个最大无关组。 列向量组的一个最大无关组。 4.2 秩与线性相关性汪远征4.2.2 求行阶梯矩阵及向量组的基Matlab将矩阵化成行最简形的命令是 Matlab将矩阵化成行最简形的命令是 rref或rrefmovie。 将矩阵化成行最简形的命令是rref或 rrefmovie。 其格式为: 其格式为: R = rref(A) R 是A的行最简行矩阵 [R,jb] = rref(A) jb是一个向量, 其含义为 : r = length(jb)为A 的秩 ; jb 是一个向量 其含义为: 是一个向量, length(jb) 为 的秩; A(: jb)为 的列向量基;jb中元素表示基向量所在的 A(:, jb)为A的列向量基;jb中元素表示基向量所在的 列。 4.2 秩与线性相关性汪远征4.2.2 求行阶梯矩阵及向量组的基Matlab将矩阵化成行最简形的命令是 Matlab将矩阵化成行最简形的命令是 rref或rrefmovie。 将矩阵化成行最简形的命令是rref或 rrefmovie。 其格式为: 其格式为: [R,jb] = rref(A,tol) tol为指定的精度 tol为指定的精度 rrefmovie(A) 给出每一步化简的过程 4.2 秩与线性相关性汪远征4.2.2 求行阶梯矩阵及向量组的基例 4-9 求向量组 a1=(1,-2,2,3) , a2=(-2,4,-1,3) , a3=(求向量组a =(1 =(=(1,2,0,3) , a4=(0,6,2,3) , a5=(2,-6,3,4) 的一个最大无关 =(0 =(2 组a1=[1 -2 2 3]'; a2=[-2 4 -1 3]'; a3=[-1 2 0 3]'; =[1 ]'; =[]'; =[]'; a4=[0 6 2 3]'; a5=[2 -6 3 4]'; =[0 ]'; =[2 ]'; A=[a1 A=[a1 a2 a3 a4 a5] [R,jb]=rref(A) A(: A(:,jb)即:a1 a2 a4为向量组的一个基。 为向量组的一个基。 4.3 线性方程的组的求解汪远征我们将线性方程的求解分为两类:一类是方程组求唯 我们将线性方程的求解分为两类: 一解或求特解,另一类是方程组求无穷解即通解。 一解或求特解,另一类是方程组求无穷解即通解。可 以通过系数矩阵的秩来判断: 以通过系数矩阵的秩来判断: 若系数矩阵的秩r=n(n 为方程组中未知变量的个数 若系数矩阵的秩 r=n(n为方程组中未知变量的个数) , 为方程组中未知变量的个数) 则有唯一解; 则有唯一解; 若系数矩阵的秩r&n,则可能有无穷解; 若系数矩阵的秩r&n,则可能有无穷解; 线性方程组的无穷解 = 对应齐次方程组的通解+非齐 对应齐次方程组的通解+ 次方程组的一个特解; 次方程组的一个特解;其特解的求法属于解的第一类 问题,通解部分属第二类问题。 问题,通解部分属第二类问题。 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解1.利用矩阵除法求线性方程组AX=b的特解 利用矩阵除法求线性方程组AX=b的特解当系数矩阵A N*N的方阵时 MATLAB会自行用高 当系数矩阵A为N*N的方阵时,MATLAB会自行用高 的方阵时, 斯消去法求解线性代数方程组。 斯消去法求解线性代数方程组。 若右端项b N*1的列向量, x=A\ 若右端项 b为 N*1的列向量 , 则 x=A\b可获得方程组的 数值解x N*1的列向量) 数值解x(N*1的列向量); 若右端项b N*M的矩阵 若右端项b为N*M的矩阵,则x=A\b可同时获得同一系 的矩阵, x=A\ 数矩阵A 个方程组数值解x N*M的矩阵 的矩阵) 数矩阵A、M个方程组数值解x(为N*M的矩阵),即 x(:,j)=A\b(:,j),j=1,2,…M。 x(:,j)=A\b(:,j),j=1 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解1.利用矩阵除法求线性方程组AX=b的特解 利用矩阵除法求线性方程组AX=b的特解? 5x1 + 6x2 解法:X=A\ 解法:X=A\b ? x + 5x + 6x 2 3 ? 1 例4-10 求方程组? x2 + 5x3 + 6x4 ? ? x3 + 5x4 + 6x5 解: ? ? x4 + 5x5 A=[5 A=[5 6 0 0 0 ? 1 5 6 0 0 0 1 5 6 0 0 0 1 5 6 0 0 0 1 5]; B=[1 0 0 0 1]'; B=[1 ]'; R_A=rank(A) %求秩 X=A\ X=A\B %求解 =1 =0 的解。 = 0 的解。 =0 =1 4.3.1 求线性方程组的唯一解或特解解:A=[5 A=[5 6 0 0 0 1 5 6 0 0 0 1 5 6 0 0 0 1 5 6 0 0 0 1 5]; B=[1 0 0 0 1]'; B=[1 ]'; R_A=rank(A) %求秩 X=A\ X=A\B %求解? 5x1 + 6x2 ? x + 5x + 6x 4.3 线性方程的组的求解 汪远征 2 3 ? 1 ? x2 + 5x3 + 6x4 ? ? x3 + 5x4 + 6x5 ? ? x4 + 1.利用矩阵除法求线性方程组AX=b的特解5x5 利用矩阵除法求线性方程组AX=b的特解 ?=1 =0 =0 =0 =1运行后结果如下 这就是方程组的解。 这就是方程组的解。 4.3.1 求线性方程组的唯一解或特解或用函数rref求解 或用函数rref求解: 求解:C=[A,B] R=rref(C)? 5x1 + 6x2 ? x + 5x + 6x 4.3 线性方程的组的求解 汪远征 2 3 ? 1 ? x2 + 5x3 + 6x4 ? ? x3 + 5x4 + 6x5 ? ? x4 + 1.利用矩阵除法求线性方程组AX=b的特解5x5 利用矩阵除法求线性方程组AX=b的特解 ?=1 =0 =0 =0 =1%由系数矩阵和常数列构成增广矩阵C 由系数矩阵和常数列构成增广矩阵C %将C化成行最简行则R的最后一列元素就是所求之解。 的最后一列元素就是所求之解。 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解1.利用矩阵除法求线性方程组AX=b的特解 利用矩阵除法求线性方程组AX=b的特解例4-11 求方程组 ? x1 + x2 ? 3x3 ? x4 = 1 解:? ?3x1 ? x2 ? 3x3 + 4x4 = 4 ? x + 5x ? 9x ? 8x = 0 2 3 4 ? 1的一个特解A=[1 A=[1 1 -3 -1;3 -1 -3 4;1 5 -9 -8]; B=[1 B=[1 4 0]'; ]'; X=A\ X=A\B % 由于系数矩阵不满秩 , 该解法可能存在误 由于系数矩阵不满秩, 差X =[ 0 0 -0.0]' —— 一个特解近似值 6000]' 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解1.利用矩阵除法求线性方程组AX=b的特解 利用矩阵除法求线性方程组AX=b的特解例4-11 求方程组 ? x1 + x2 ? 3x3 ? x4 = 1 解:? ?3x1 ? x2 ? 3x3 + 4x4 = 4 ? x + 5x ? 9x ? 8x = 0 2 3 4 ? 1的一个特解若用rref求解 则比较精确: 若用rref求解,则比较精确: 求解,A=[1 A=[1 1 -3 -1;3 -1 -3 4;1 5 -9 -8]; B=[1 B=[1 4 0]'; ]'; C=[A,B]; C=[A,B]; %构成增广矩阵 R=rref(C)由此得解向量X=[1 由此得解向量X=[1.2500 – 0.]'(一个特解)。 ]'(一个特解 一个特解) 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解1.利用矩阵除法求线性方程组AX=b的特解 利用矩阵除法求线性方程组AX=b的特解例4-12 解方程组 (1)Ax=b1;(2)Ay=b2 Ax= Ay=?1 ? 1 1? ? x1? ? 2? ?5 ? 4 3? ? ? x2? = ?? 3? ? ? ? ? ? ? ?2 1 1? ? x3? ? 1? ? ? ? ? ? ?A=[1 A=[1 -1 1;5 -4 3;2 1 1]; b1=[2;-3;1]; =[2 b2=[3;4;-5]; =[3 x=A\ x=A\b1 y=A\ y=A\b2?1 ? 1 1? ? y1? ? 3? ?5 ? 4 3? ? ? y2? = ? 4? ? ? ? ? ? ? ?2 1 1? ? y3? ?? 5? ? ? ? ? ? ?解法1 解法1:分别解方程组 (1)Ax=b1;(2)Ay=b2 Ax= Ay= 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解1.利用矩阵除法求线性方程组AX=b的特解 利用矩阵除法求线性方程组AX=b的特解例4-12 解方程组 (1)Ax=b1;(2)Ay=b2 Ax= Ay=?1 ? 1 1? ? x1? ? 2? ?5 ? 4 3? ? ? x2? = ?? 3? ? ? ? ? ? ? ?2 1 1? ? x3? ? 1? ? ? ? ? ? ? ?1 ? 1 1? ? y1? ? 3? ?5 ? 4 3? ? ? y2? = ? 4? ? ? ? ? ? ? ?2 1 1? ? y3? ?? 5? ? ? ? ? ? ?解法1 解法1:分别解方程组 (1)Ax=b1;(2)Ay=b2 Ax= Ay= 得两个线性代数方程组的解: 得两个线性代数方程组的解: (1) x1= -3.8, x2= 1.4, x3= 7.2; (2) y1= -3.6, y2= 2.2, y3= 4.4 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解1.利用矩阵除法求线性方程组AX=b的特解 利用矩阵除法求线性方程组AX=b的特解例4-12 解方程组 (1)Ax=b1;(2)Ay=b2 Ax= Ay=?1 ? 1 1? ? x1? ? 2? ?5 ? 4 3? ? ? x2? = ?? 3? ? ? ? ? ? ? ?2 1 1? ? x3? ? 1? ? ? ? ? ? ?b=[2 b=[2 3;-3 4;1 -5] z=A\ z=A\b?1 ? 1 1? ? y1? ? 3? ?5 ? 4 3? ? ? y2? = ? 4? ? ? ? ? ? ? ?2 1 1? ? y3? ?? 5? ? ? ? ? ? ?解法2 将两个方程组连在一起求解: 解法2:将两个方程组连在一起求解:Az = b很明显, 这里的解z 很明显 , 这里的解 z 的两个列向量便是前面分别求得 的两组解x 的两组解x和y 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解2.利用LU、QR和cholesky分解求方程组的解 利用LU、QR和cholesky分解求方程组的解(1)LU分解: )LU分解 分解: LU分解又称 LU分解又称Gauss消去分解,可把任意方阵分解为下 分解又称Gauss消去分解 消去分解, 三角矩阵和上三角矩阵的乘积。 三角矩阵和上三角矩阵的乘积。 即A=LU,L为下三角阵,U为上三角阵。则: A=LU, 为下三角阵, 为上三角阵。 A*X=b变成 A*X=b变成L*U*X=b 变成L*U*X=b 所以X=U\(L\ 这样可以大大提高运算速度。 所以X=U\(L\b), 这样可以大大提高运算速度。 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解2.利用LU、QR和cholesky分解求方程组的解 利用LU、QR和cholesky分解求方程组的解(1)LU分解: )LU分解 分解:?4x1 + 2x2 ? x3 = 2 例4-13 求方程组 ?3x1 ? x2 + 2x3 = 10 ? ? 11x + 3x = 8 1 2 ? 解:A=[4 A=[4 2 -1;3 -1 2;11 3 0]; B=[2 B=[2 10 8]'; ]'; D=det(A) [L,U]=lu(A) X=U\(L\ X=U\(L\B)的一个特解。 的一个特解。 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解2.利用LU、QR和cholesky分解求方程组的解 利用LU、QR和cholesky分解求方程组的解(1)LU分解: )LU分解 分解:?4x1 + 2x2 ? x3 = 2 例4-13 求方程组 ?3x1 ? x2 + 2x3 = 10 ? ? 11x + 3x = 8 1 2 ? 解:的一个特解。 的一个特解。说明 结果中的警告是由于系数行列式为零产生的。 结果中的警告是由于系数行列式为零产生的。 可以通过A*X验证其正确性 验证其正确性。 可以通过A*X验证其正确性。 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解2.利用LU、QR和cholesky分解求方程组的解 利用LU、QR和cholesky分解求方程组的解(2) Cholesky分解 Cholesky分解 若A为对称正定矩阵,则Cholesky分解可将矩阵A分解 为对称正定矩阵, Cholesky分解可将矩阵 分解可将矩阵A 成上三角矩阵和其转置的乘积, 成上三角矩阵和其转置的乘积,即: A = R'*R 其中R为上三角阵。 其中R为上三角阵。 方程A*X=b变成 方程A*X=b变成R'*R*X = b 变成R'*R*X 所以X=R\(R'\ 所以X=R\(R'\b) 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解2.利用LU、QR和cholesky分解求方程组的解 利用LU、QR和cholesky分解求方程组的解(3)QR分解 )QR分解 对于任何长方矩阵A 都可以进行QR分解 其中Q 对于任何长方矩阵A,都可以进行QR分解,其中Q为 分解, 正交矩阵, 为上三角矩阵的初等变换形式, 正交矩阵,R为上三角矩阵的初等变换形式,即: A = QR 方程A*X=b变形成 方程A*X=b变形成QRX=b 变形成QRX=b 所以X=R\(Q\ 所以X=R\(Q\b) 4.3 线性方程的组的求解汪远征4.3.1 求线性方程组的唯一解或特解2.利用LU、QR和cholesky分解求方程组的解 利用LU、QR和cholesky分解求方程组的解(3)QR分解 )QR分解 上例中[Q, R]=qr(A) X=R\(Q\ X=R\(Q\B)说明:这三种分解,在求解大型方程组时很有用。其 说明:这三种分解,在求解大型方程组时很有用。 优点是运算速度快、可以节省磁盘空间、节省内存。 优点是运算速度快、可以节省磁盘空间、节省内存。 4.3 线性方程的组的求解汪远征4.3.2 求线性齐次方程组的通解在 Matlab 中 , 函 数 null 用 来 求 解 零 空 间 , 即 满 足 A·X=0的解空间,实际上是求出解空间的一组基( A·X=0的解空间,实际上是求出解空间的一组基(基础 解系) 其格式为: 解系)。其格式为: z = null(A) z的列向量为方程组的正交规范基,满足z' × z = I。 的列向量为方程组的正交规范基,满足z' z = null(A,'r') z的列向量是方程AX=0的有理基 的列向量是方程AX=0 4.3 线性方程的组的求解汪远征4.3.2 求线性齐次方程组的通解例4-14 求方程组 ? x1 + 2x2 + 2x3 + x4 = 0 的通解: 的通解: ? ?2x1 + x2 ? 2x3 ? 2x4 = 0 解: ?? x1 ? x2 ? 4x3 ? 3x4 = 0A=[1 A=[1 2 2 1;2 1 -2 -2;1 -1 -4 -3]; format rat %指定有理式格式输出 B=null(A,'r') %求解空间的有理基运行后显示结果如下: 运行后显示结果如下: 4.3 线性方程的组的求解汪远征4.3.2 求线性齐次方程组的通解例4-14 求方程组 ? x1 + 2x2 + 2x3 + x4 = 0 的通解: 的通解: ? ?2x1 + x2 ? 2x3 ? 2x4 = 0 解: ?? x1 ? x2 ? 4x3 ? 3x4 = 0或通过行最简型得到基: 或通过行最简型得到基:B=rref(A)即可写出其基础解系(与上面结果一致) 即可写出其基础解系(与上面结果一致)。 4.3 线性方程的组的求解汪远征4.3.2 求线性齐次方程组的通解例4-14 求方程组 ? x1 + 2x2 + 2x3 + x4 = 0 的通解: 的通解: ? ?2x1 + x2 ? 2x3 ? 2x4 = 0 解: ?? x1 ? x2 ? 4x3 ? 3x4 = 0写出通解: 写出通解:syms k1 k2 X=k1*B(: )+k2*B(: X=k1*B(:,1)+k2*B(:,2) pretty(X) %写出方程组的通解 %让通解表达式更加精美运行后结果如下: 运行后结果如下: 下面是其简化形式 4.3 线性方程的组的求解汪远征4.3.3 求非齐次线性方程组的通解非齐次线性方程组需要先判断方程组是否有解, 非齐次线性方程组需要先判断方程组是否有解,若有 再去求通解。 解,再去求通解。 因此,步骤为: 因此,步骤为: 第1步: 判断AX=b是否有解,若有解则进行第二步 判断AX=b是否有解 是否有解, 第2步: 求AX=b的一个特解 AX=b的一个特解 第3步: 求AX=0的通解 AX=0 第4步: AX=b的通解= AX=0的通解+AX=b的一个特解 AX=b的通解 AX=0的通解+AX=b的一个特解 的通解= 4.3 线性方程的组的求解汪远征4.3.3 求非齐次线性方程组的通解例4-15 求解方程组 ? x1 ? 2x2 + 3x3 ? x4 = 1 ? 解:在Matlab中建立M文件如下: Matlab中建立 文件如下: 中建立MA=[1 A=[1 -2 3 -1;3 -1 5 -3;2 1 2 -2]; b=[1 2 3]'; B=[A b]; b=[1 ]'; b]; n=4 n=4; R_A=rank(A), R_B=rank(B), format rat if R_A==R_B&R_A==n %判断有唯一解 X=A\ X=A\b elseif R_A==R_B&R_A&n %判断有无穷解 X=A\ X=A\b %求特解 C=null(A,'r') %求AX=0的基础解系 AX=0 else X='equition no solve' %判断无解 end?3x1 ? x2 + 5x3 ? 3x4 = 2 ?2x + x + 2x ? 2x = 3 2 3 4 ? 1 4.3 线性方程的组的求解汪远征4.3.3 求非齐次线性方程组的通解例4-15 求解方程组 ? x1 ? 2x2 + 3x3 ? x4 = 1 ? 解:在Matlab中建立函数文件如下: Matlab中建立函数文件如下 中建立函数文件如下:function X=jie(A,b); [m,n]=size(A);B=[A,b]; R_A=rank(A); R_B=rank(B); format rat if R_A==R_B&R_A==n %判断有唯一解 X=A\b elseif R_A==R_B&R_A&n %判断有无穷解 X=A\b %求特解 C=null(A,'r') %求AX=0的基础解系 else X='equition no solve' %判断无解 end?3x1 ? x2 + 5x3 ? 3x4 = 2 ?2x + x + 2x ? 2x = 3 2 3 4 ? 1A=[1 A=[1 -2 3 -1;3 -1 5 -3;2 1 2 -2]; b=[1 2 3]'; b=[1 ]'; jie(A,b) 4.3 线性方程的组的求解汪远征4.3.3 求非齐次线性方程组的通解例4-15 求解方程组 ? x1 ? 2x2 + 3x3 ? x4 = 1 ??3x1 ? x2 + 5x3 ? 3x4 = 2 ?2x + x + 2x ? 2x = 3 2 3 4 ? 1解: 运行后结果显示: 运行后结果显示:说明 该方程组无解 4.3 线性方程的组的求解汪远征4.3.3 求非齐次线性方程组的通解例4-16 求方程组 ? x1 + x2 ? 3x3 ? x4 = 1 的通解 ??3x1 ? x2 ? 3x3 + 4x4 = 4 ? x + 5x ? 9x ? 8 x = 0 2 3 4 ? 1解法一:调用jie函数 解法一:调用jie函数A=[1 A=[1 1 -3 -1;3 -1 -3 4;1 5 -9 -8]; b=[1 4 0]'; b=[1 ]'; jie(A,b) 4.3 线性方程的组的求解汪远征4.3.3 求非齐次线性方程组的通解例4-16 求方程组 ? x1 + x2 ? 3x3 ? x4 = 1 的通解 ??3x1 ? x2 ? 3x3 + 4x4 = 4 ? x + 5x ? 9x ? 8 x = 0 2 3 4 ? 1解法一: Matlab编辑器中建立 文件如下: 编辑器中建立M 解法一:在Matlab编辑器中建立M文件如下: 运行后结果显示为: 运行后结果显示为:? 3 / 2? ? ? 3 / 4? ? ? ? ? ? 3 / 2? ? 7 / 4 ?+ 所以原方程组的通解为X 所以原方程组的通解为X=k1 ? ?+k2 ? 0 ? 1 ? ? ? ? ? 0 ? ? 1 ? ? ? ? ?? 0 ? ? ? ? 0 ? ? ? 8 / 15? ? ? ? 3/ 5 ? ? ? 4.3 线性方程的组的求解汪远征4.3.3 求非齐次线性方程组的通解例4-16 求方程组 ? x1 + x2 ? 3x3 ? x4 = 1 的通解 ??3x1 ? x2 ? 3x3 + 4x4 = 4 ? x + 5x ? 9x ? 8 x = 0 2 3 4 ? 1解法二: rref求解 解法二:用rref求解A=[1 A=[1 1 -3 -1;3 -1 -3 4;1 5 -9 -8]; b=[1 ]'; b=[1 4 0]'; B=[A b]; b]; C=rref(B) %求增广矩阵的行最简形,得最简同解方程组 求增广矩阵的行最简形,运行后结果显示为: 运行后结果显示为: 4.3 线性方程的组的求解汪远征4.3.3 求非齐次线性方程组的通解例4-16 求方程组 ? x1 + x2 ? 3x3 ? x4 = 1 的通解 ??3x1 ? x2 ? 3x3 + 4x4 = 4 ? x + 5x ? 9x ? 8 x = 0 2 3 4 ? 1解法二: rref求解 解法二:用rref求解? 3 / 2? ? ? ? 3 / 2? 对应齐次方程组的基础解系为: 对应齐次方程组的基础解系为: ξ1 = ? ? 1 ? ? ? 5/ 4 ? ? 0 ? ? ? 非齐次方程组的特解为: 非齐次方程组的特解为: ? ? 1/ 4? ? ? η* = ? 0 ? ? ? ? 0 ? ? ?运行后结果显示为: 运行后结果显示为:? ? 3 / 4? ? ? ? 7/ 4 ? ξ2 = ? 0 ? ? ? ? 1 ? ? ?所以,原方程组的通解为: 所以,原方程组的通解为:X=k1ξ1+k2ξ2 + η*。 4.4 特征值与二次型汪远征工程技术中的一些问题,如振动问题和稳定性问题, 工程技术中的一些问题,如振动问题和稳定性问题, 常归结为求一个方阵的特征值和特征向量。 常归结为求一个方阵的特征值和特征向量。4.4.1 特征值与特征向量的求法设 A为 n阶方阵 ,如果数“λ ” 和n维列向量 x使得关系 阶方阵,如果数“ 维列向量x 成立, 为方阵A的特征值,非零向量x 式Ax = λx成立,则称λ为方阵A的特征值,非零向量x 称为A 称为A对应于特征值λ的特征向量。 的特征向量。 4.4 特征值与二次型汪远征4.4.1 特征值与特征向量的求法在MATLAB中,计算矩阵A的特征值和特征向量的函 MATLAB中 计算矩阵A 数是eig(A),常用的调用格式有3 数是eig(A),常用的调用格式有3种: (1) E=eig(A):求矩阵A的全部特征值,构成向量E。 E=eig(A):求矩阵A的全部特征值,构成向量E (2) [V, D]=eig(A):求矩阵A的全部特征值,构成对角 D]=eig(A):求矩阵A的全部特征值, 并求A的特征向量构成V的列向量。 阵D,并求A的特征向量构成V的列向量。 (3) [V, D]=eig(A,'nobalance'):与第2种格式类似,但 D]=eig(A,'nobalance'):与第2种格式类似, 种格式中先对A作相似变换后求矩阵A 第2种格式中先对A作相似变换后求矩阵A的特征值和 特征向量,而格式3直接求矩阵A 特征向量,而格式3直接求矩阵A的特征值和特征向量 4.4 特征值与二次型汪远征4.4.1 特征值与特征向量的求法例4-17 求矩阵 解:? ? 2 1 1? 的特征值和特征向量 ? ? A = ? 0 2 0? ? ? 4 1 3? ? ?A=[A=[-2 1 1;0 2 0;-4 1 3]; [V,D]=eig(A)结果显示: 结果显示: 即:特征值-1对应特征向量(-0..7071)T 特征值- 对应特征向量( 7071) 特征值2对应特征向量( 特征值2对应特征向量(-0.5 0.3015)T .9701)T和(0.) 4.4 特征值与二次型汪远征4.4.1 特征值与特征向量的求法例4-18 求矩阵 解:? ? 1 1 0? 的特征值和特征向量 ? ? A = ? ? 4 3 0? ? 1 0 2? ? ?A=[A=[-1 1 0;-4 3 0;1 0 2]; [V,D]=eig(A)结果显示为 说明:当特征值为1 (二重根)时,对应特征向量都是 说明:当特征值为1 二重根) k (0.5 -0.4082)T,k为任意常数。 4082) 为任意常数。 4.4 特征值与二次型汪远征4.4.1 特征值与特征向量的求法例4-19 用求特征值的方法解方程: 用求特征值的方法解方程: 3x5 - 7x4 + 5x2 + 2x - 18 = 0 5x 2x 解:p=[3 p=[3,-7,0,5,2,-18]; 18] A=compan(p); A=compan(p); x1=eig(A) x2=roots(p) %A的友阵 %求A的特征值 %直接求多项式p的零点 直接求多项式p 4.4 特征值与二次型汪远征4.4.2 复对角矩阵转化为实对角矩阵函数cdf2rdf 将复对角阵 变为实对角阵D 函数 cdf2rdf将复对角阵 d 变为实对角阵 D , 在对角线 将复对角阵d 实数块代替共轭复数对。 上,用2×2实数块代替共轭复数对。其格式 [V,D] = cdf2rdf (v,d) cdf2 例4-15A=[1 A=[1 2 3;0 4 5;0 -5 4]; [v,d]=eig(A) [V,D]=cdf2 [V,D]=cdf2rdf(v,d) 4.4 特征值与二次型汪远征4.4.3 正交基函数orth将矩阵 标准正交化,得到矩阵B 其格式为: 函数orth将矩阵A标准正交化,得到矩阵B。其格式为: 将矩阵A B=orth(A) B的列与A的列具有相同的空间,B的列向量是正交向 的列与A的列具有相同的空间, 量,且满足: 且满足: B'*B = eye(rank(A)) 4.4 特征值与二次型汪远征4.4.3 正交基? 4 0 0? ? ? 标准正交化。 例4-20 将矩阵 A = ? 0 3 1? 标准正交化。 ? 0 1 3? ? ? 解:A=[4 A=[4 0 0; 0 3 1; 0 1 3]; B=orth(A) Q=B'*B显示结果为 4.4 特征值与二次型汪远征4.4.4 二次型例4-21 求一个正交变换X=PY,把二次型 求一个正交变换X=PY,f = 2x1 x2 + 2x1 x3 ? 2x1 x4 ? 2x2 x3 + 2x2 x4 + 2x3 x4化成标准形。 化成标准形。 解:先写出二次型的实对称矩阵1 1 ? 1? ? 0 ? ? 0 ?1 1 ? ?1 A= ? 1 ?1 0 1? ? ? ? ?1 1 1 0? ? ? 1 1 ? 1? ? 0 ? ? 4.4 特征值与二次型 汪远征 0 ?1 1 ? ?1 A= ? 1 ?1 0 1? 4.4.4 二次型 ? ? ? ?1 1 1 0? ? ? 求一个正交变换X=PY, 例4-21 求一个正交变换X=PY,把二次型f = 2x1 x2 + 2x1 x3 ? 2x1 x4 ? 2x2 x3 + 2x2 x4 + 2x3 x4化成标准形。 化成标准形。 解:在Matlab编辑器中建立M文件如下: Matlab编辑器中建立 文件如下: 编辑器中建立MA=[0 A=[0 1 1 -1;1 0 -1 1;1 -1 0 1;-1 1 1 0]; [P,D]=schur(A) syms y1 y2 y3 y4 y=[y1 y=[y1;y2;y3;y4]; X=vpa(P,2 X=vpa(P,2)*y %vpa表示可变精度计算, 这里取2位精度 vpa表示可变精度计算 这里取2 表示可变精度计算, f=[y1 f=[y1 y2 y3 y4]*D*y 1 1 ? 1? ? 0 ? ? 4.4 特征值与二次型 汪远征 0 ?1 1 ? ?1 A= ? 1 ?1 0 1? 4.4.4 二次型 ? ? ? ?1 1 1 0? ? ? 求一个正交变换X=PY, 例4-21 求一个正交变换X=PY,把二次型f = 2x1 x2 + 2x1 x3 ? 2x1 x4 ? 2x2 x3 + 2x2 x4 + 2x3 x4化成标准形。 化成标准形。 解:运行后结果显示如下: 运行后结果显示如下:2 2 2 2 即 f = y1 + y2 ? 3 y3 + y4
4matlab矩阵分解与线性方程组求解——为大家提供各种日常写作指导,同时提供范文参考。主要栏目有:范文大全、个人简历、教案下载、课件中心、 优秀作文、考试辅导、试题库、诗词鉴赏。
相关文档:
下载文档:
搜索更多:
All rights reserved Powered by
copyright &copyright 。甜梦文库内容来自网络,如有侵犯请联系客服。|

我要回帖

更多关于 matlab中rref函数 的文章

 

随机推荐