预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

矩阵的LU分解 一、原理 定理:设ACnn,如果A的顺序主子式 a11a12a1n1 aaaaa 111221222n1 a110,0,…,0 a13a14 an11an12an1n1 则存在唯一的主对角线上元素全为1的下三角矩阵L与唯一的上三角矩阵U,使得 A=LU. 证明:对矩阵A的阶数使用数学归纳法. 显然,当n=1时,a111a11就是唯一的分解式.现假定对n-1阶矩阵,定理的结论成立. 对A进行分块 An11 AT 2nn n1 其中1,2C.由于n-1阶矩阵An1的k阶顺序主子式就是A的k阶主子式 (k=1,2,…,n-2),故它们都不为零.从而由归纳法假设,An1有唯一的LU分解 ALUn1n1n1 其中Ln1的主对角线上的元素都是1.由于 a11a12a1n1 aaa ALU21222n10 n1n1n1 an11an12an1n1 所以,Ln1及Un1是n-1阶可逆矩阵. 先假设已有A=LU,其中 L0U n1,n1 LUTT 10b nn ,Cn1是待定向量.作乘积 LULAn1n1n1n11 LUTTTA Un1bnn2nn TTT 则,必须满足LUn11,n12,nnbnn 因为Ln1及Un1都是可逆的,则由上式可以唯一确定 1TTT1 Ln11,,2Un1bnnnn 这就证明了A的LU分解的存在性和唯一性. 二、算法 当n阶矩阵满足定理的条件时,可以用初等变换的方法求出L和U. 因为当A=LU时,由于L可逆,故必存在可逆矩阵P组 P=PL 即PA=PLU=U.也就是说,可以先对A施行行的初等变换得出上三角矩阵U,而矩阵P可以 通过对单位矩阵I进行相同的行初等变换得出,即P(A,I)=(PA,PI)=(U,P) 于是APU1,为保持P为下三角矩阵(从而P1也是下三角矩阵),在进行行初等变换 时,不能进行行的对换,上行的倍数应加到下行的对应元. 步骤: 1.判断目标矩阵是不是nn矩阵,若是则继续进行,若不是则提示该矩阵无法进行LU 分解; 2.分别计算目标矩阵的n-1阶顺序主子式,判断是不是等于零,若等于零,则提示该矩阵 无法进行LU分解,若都不等于零,则继续进行; 3.设定n阶单位矩阵L和全零矩阵U; 4.U的第一行u1ja1jj=1,2,…,n 5.L的第一列 a li1i=2,3…,n i1u 11 6.U的第r行(逐行算出) r1 r=1,2,…,n urjarjlrkukj k1j=r,…,n 7.L的第r列(逐列算出) r1 airlikukr lk1r=1,2,…n-1 iru rri=r+1,…,n 三、程序 %functionf=LU_decom(A) [m,n]=size(A) ifm~=n fprintf('Error:mandnmustbeequal!m=%d,n=%d\n',m,n) end fori=1:n-1 if(det(A(1:i,1:i))==0) fprintf('Error:detA(%d,%d)=0!\n',i,i) flag='failure' return; else flag='ok'; end end L=eye(n); U=zeros(n); fori=1:n U(1,i)=A(1,i); end forr=2:n L(r,1)=A(r,1)/U(1,1); end fori=2:n forj=i:n z=0; forr=1:i-1 z=z+L(i,r)*U(r,j); end U(i,j)=A(i,j)-z; end ifabs(U(i,i))<eps flag='failure' return; end fork=i+1:n m=0; forq=1:i-1 m=m+L(k,q)*U(q,i); end L(k,i)=(A(k,i)-m)/U(i,i); end end L U 四、分析 211  410  221 程序运行结果: L= 100 210 -1-31 U= 211 0-1-2 00-4