首页 矩阵的LU分解自编MATLAB试验报告

矩阵的LU分解自编MATLAB试验报告

举报
开通vip

矩阵的LU分解自编MATLAB试验报告1矩阵的LU分解1.1LU分解原理定理:设ACnn,如果A的顺序主子式𝑎𝑎…𝑎111212𝑎𝑎𝑎𝑎…𝑎𝐴≠0,|1112|≠0,…,|212222|≠011𝑎𝑎⋮⋮⋮2122𝑎𝑎⋯𝑎𝑛11𝑛12𝑛1𝑛1则存在唯一的主对角线上元素全为1的下三角矩阵L与唯一的上三角矩阵U,使得A=LU.证明:对矩阵A的阶数使用数学归纳法.显然,当时,就是唯一的分解式。现假定对n=1𝐴11=1∙𝐴11n-1阶矩阵,定理的结论成立。对A进行分块𝑨𝜶A=(𝒏𝟏𝟏)𝜶𝑻𝜶𝟐𝐧𝐧其中...

矩阵的LU分解自编MATLAB试验报告
1矩阵的LU分解1.1LU分解原理定理:设ACnn,如果A的顺序主子式𝑎𝑎…𝑎111212𝑎𝑎𝑎𝑎…𝑎𝐴≠0,|1112|≠0,…,|212222|≠011𝑎𝑎⋮⋮⋮2122𝑎𝑎⋯𝑎𝑛11𝑛12𝑛1𝑛1则存在唯一的主对角线上元素全为1的下三角矩阵L与唯一的上三角矩阵U,使得A=LU.证明:对矩阵A的阶数使用数学归纳法.显然,当时,就是唯一的分解式。现假定对n=1𝐴11=1∙𝐴11n-1阶矩阵,定理的结论成立。对A进行分块𝑨𝜶A=(𝒏𝟏𝟏)𝜶𝑻𝜶𝟐𝐧𝐧其中,𝜶∈𝑪𝐧𝟏由于阶矩阵的阶顺序主子式就𝜶𝟏𝟐.n-1𝑨𝒏𝟏k是A的k阶主子式〔k=1,2,…,n-2〕,故它们都不为零.从而由归纳法假设,有唯一的分解𝑨𝐧𝟏LU𝑨=𝑳𝑼𝒏𝟏𝒏𝟏𝒏𝟏其中的主对角线上的元素都由于𝑳𝒏𝟏1.𝑎𝑎…𝑎111212𝑎𝑎…𝑎|𝑨|=|212222|=|𝑳𝑼|≠0𝒏𝟏⋮⋮⋮𝒏𝟏𝒏𝟏𝑎𝑎⋯𝑎𝑛11𝑛12𝑛1𝑛1所以及是阶可逆矩阵𝑳𝒏𝟏𝑼𝒏𝟏n-1先假设已有A=LU,其中𝑳0𝑼𝜷L=(𝒏𝟏),U=(𝒏𝟏)𝛾𝑇1𝜸𝑇𝒃𝒏𝒏𝜷,𝜸∈𝑪𝒏𝟏是待定向量。作乘积𝑳𝑼𝑳𝜷𝑨𝜶𝑳𝑼=(𝒏𝟏𝒏𝟏𝒏𝟏)=(𝒏𝟏𝟏)=A𝜸𝑇𝑼𝒃+𝜸𝑇𝜷𝜶𝑻𝜶𝒏𝟏𝒏𝒏𝟐𝒏𝒏则𝜷,𝜸必须满足𝑳𝜷=𝜶,𝑇𝑼=𝜶𝑻,+𝜸𝑇𝜷=𝜶𝒏𝟏𝟏𝜸𝒏𝟏𝟐𝒃𝒏𝒏𝒏𝒏注意到及都是阶可逆矩阵,则由上式可惟一确定𝑳𝒏𝟏𝑼𝒏𝟏n-1𝜷=𝑳𝟏𝜶,𝑇=𝜶𝑻𝑼𝟏,=𝜶𝜸𝑇𝜷𝒏𝟏𝟏𝜸𝟐𝒏𝟏𝒃𝒏𝒏𝒏𝒏这就证明了A的LU分解的存在性和唯一性.1.2LU分解算法当n阶矩阵满足定理的条件时,可以用初等变换的方法求出L和U.因为当A=LU时,由于L可逆,故必存在可逆矩阵P使得𝑷𝑳=𝑰即PA=PLU=U.也就是说,可以先对A施行行的初等变换得出上三角矩阵U,而矩阵P可以通过对单位矩阵I进行相同的行初等变换得出,即P(A,I)=(PA,PI)=(U,P)于是𝑨=𝑷𝟏𝑼,为保持P为下三角矩阵〔从而𝑷𝟏也是下三角矩阵〕,在进行行初等变换时,不能进行行的对换,上行的倍数应加到下行的对应元.1.3LU分解用于解方程组矩阵的三角分解在求解线性方程组时十分方便.如对线性方程组𝑨𝒙=𝒃,设𝑨=𝑳𝑼.我们先求解方程组𝑳𝒚=𝒃.由于𝑳是下三角矩阵,则解向量可以通过依次求出其分量,𝑦,⋯𝑦而求出,在求解方程𝒚𝑦12𝑛组解向量可以通过该方程组依次求出分量,⋯,𝑥,𝑥而快𝑼𝒙=𝒚.𝒙𝑥𝑛21速得出.于是由两个方程组𝑼𝒙=𝒚,𝑳𝒚=𝒃的求解而给出𝑳𝑼𝒙=��𝒚=𝒃=𝑨𝒙的解.程序流程图输入矩阵A判断A是否为否n×n矩阵?是计算A的n-1阶顺序否主子式是否为0?是设定n阶单位矩阵L和全零矩阵U计算U的第一行U=A1j1jj=1,2,…,n计算L的第一列U的第r行(逐行算出)L的第r列(逐列算出)输出:“无法进行输出L,ULU分解”1.5MATLAB程序functionf=LU_decom(A)[m,n]=size(A)ifm~=nfprintf('Error:mandnmustbeequal!m=%d,n=%d\n',m,n)endfori=1:n-1if(det(A(1:i,1:i))==0)fprintf('Error:detA(%d,%d)=0!\n',i,i)flag='failure'return;elseflag='ok';endendL=eye(n);U=zeros(n);fori=1:nU(1,i)=A(1,i);endforr=2:nL(r,1)=A(r,1)/U(1,1);endfori=2:nforj=i:nz=0;forr=1:i-1z=z+L(i,r)*U(r,j);endU(i,j)=A(i,j)-z;endifabs(U(i,i))>A=[211;410;-221];LU_decom(A)m=3n=3L=100210-1-31U=2110-1-200-4〔2〕解方程组,程序及结果如下%-----用LU分解解线性方程组------y=zeros(n,1);y(1)=b(1);fori=2:ny(i)=b(i)-sum(L(i,1:i-1)'.*y(1:i-1));endyx(n)=y(n)/U(n,n);fori=n-1:-1:1x(i)=(y(i)-sum(U(i,i+1:n)'.*x(i+1)))/U(i,i);endx=x'运行结果如下:y=102x=数据分析调用MATLAB固有的LU分解函数,以及解方程组相关函数对以上数据进行计算,运行结果如下:>>A=[211;410;-221];>>b=[121]';>>[L,U]=lu(A)L=1.000000-0.50001.00000U=4.00001.00000>>X=inv(A)*bX=经比对结果相同,可见以上程序可行。
本文档为【矩阵的LU分解自编MATLAB试验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_270070
暂无简介~
格式:pdf
大小:193KB
软件:PDF阅读器
页数:7
分类:
上传时间:2019-11-18
浏览量:3