矩阵的LU分解(自编MATLAB)实验报告.doc

矩阵的LU分解(自编MATLAB)实验报告.doc

ID:53800858

大小:62.78 KB

页数:7页

时间:2020-04-07

矩阵的LU分解(自编MATLAB)实验报告.doc_第1页
矩阵的LU分解(自编MATLAB)实验报告.doc_第2页
矩阵的LU分解(自编MATLAB)实验报告.doc_第3页
矩阵的LU分解(自编MATLAB)实验报告.doc_第4页
矩阵的LU分解(自编MATLAB)实验报告.doc_第5页
资源描述:

《矩阵的LU分解(自编MATLAB)实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.1矩阵的LU分解1.1LU分解原理定理:设ACÎn´n,如果A的顺序主子式A11≠0,a11a12a21a22≠0,…,a11a12a21a22…a12…a22⋮⋮an-11an-12⋮⋯an-1n-1≠0则存在唯一的主对角线上元素全为1的下三角矩阵L与唯一的上三角矩阵U,使得A=LU.证明:对矩阵A的阶数使用数学归纳法.显然,当n=1时,A11=1∙A11就是唯一的分解式。现假定对n-1阶矩阵,定理的结论成立。对A进行分块A=An-1α1α2Tαnn其中α1,α2∈Cn-1.由于n-1阶矩阵An-1的k阶顺序

2、主子式就是A的k阶主子式(k=1,2,…,n-2),故它们都不为零.从而由归纳法假设,An-1有唯一的LU分解An-1=Ln-1Un-1其中Ln-1的主对角线上的元素都1.由于An-1=a11a12a21a22…a12…a22⋮⋮an-11an-12⋮⋯an-1n-1=Ln-1Un-1≠0所以Ln-1及Un-1是n-1阶可逆矩阵先假设已有A=LU,其中L=Ln-10γT1,U=Un-1βγTbnnβ,γ∈Cn-1是待定向量。作乘积LU=Ln-1Un-1Ln-1βγTUn-1bnn+γTβ=An-1α1α2Tαnn

3、=A则β,γ必须满足Ln-1β=α1,γTUn-1=α2T,bnn+γTβ=αnn注意到Ln-1及Un-1都是n-1阶可逆矩阵,则由上式可惟一确定β=Ln-1-1α1,γT=α2TUn-1-1,bnn=αnn-γTβ..这就证明了A的LU分解的存在性和唯一性.1.2LU分解算法当n阶矩阵满足定理的条件时,可以用初等变换的方法求出L和U.因为当A=LU时,由于L可逆,故必存在可逆矩阵P使得PL=I即PA=PLU=U.也就是说,可以先对A施行行的初等变换得出上三角矩阵U,而矩阵P可以通过对单位矩阵I进行相同的行初等变

4、换得出,即P(A,I)=(PA,PI)=(U,P)于是A=P-1U,为保持P为下三角矩阵(从而P-1也是下三角矩阵),在进行行初等变换时,不能进行行的对换,上行的倍数应加到下行的对应元.1.3LU分解用于解方程组矩阵的三角分解在求解线性方程组时十分方便.如对线性方程组Ax=b,设A=LU.我们先求解方程组Ly=b.由于L是下三角矩阵,则解向量y可以通过依次求出其分量y1,y2,⋯yn而求出,在求解方程组Ux=y.解向量x可以通过该方程组依次求出分量xn,⋯,x2,x1而快速得出.于是由两个方程组Ux=y,Ly=b

5、的求解而给出LUx=Ly=b=Ax的解.1.4程序流程图..1.5MATLAB程序functionf=LU_decom(A)[m,n]=size(A)ifm~=nfprintf('Error:mandnmustbeequal!m=%d,n=%d',m,n)endfori=1:n-1if(det(A(1:i,1:i))==0)fprintf('Error:detA(%d,%d)=0!',i,i)flag='failure'..return;elseflag='ok';endendL=eye(n);U=zer

6、os(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))

7、数据计算已知矩阵A=211410-221,b=121,先对A进性LU分解,并求解方程Ax=b的解.(1)A的LU分解在MATLAB命令行中输入A=[211;410;-221];并调用以上函数可得如下结果>>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)

8、'.*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=-0.50001.0000-0.50001.7数据分析调用MATLAB固有的LU分解函数,以及解方程组相关函数对以上数据进行计算,运行结果如下:>>A

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。