可以,这是数值分析书上的定理
就是存在排列矩阵P(对换矩阵的乘积),使得PA=LU
这个定理说明先对A进行对换矩阵的行得到PA,然后再对PA进行LU分解是可行的
证明如下:
A选主元的LU分解实际是对应这样的矩阵相乘
U=(Ln-1En-1)(L2E2)(L1E1)A
看等号右边我们来解释一下,每个括号里包含两部分L和E,其中E代表对换就是选主元,L代表选完主元后的列消去,例如E1就是对A选主元第一行与某行对换,L1是将得到的矩阵E1A第一列除a11外全变零然后对第二列选主元E2,再消去第二列的其他元素L2直至消去成既约矩阵U
这个式子中的兑换矩阵E都不是下三角矩阵,列消去矩阵L都是下三角矩阵
怎么样把所有的E都移到A的旁边使得所有的L在一起呢
我们知道
第一,对换矩阵有性质EijEij=I(单位阵)就是对换ij两行再对换ij两行保证矩阵不变
第二,而下三角矩阵L,将ij行对换,再将得到的矩阵ij列对换,得到的还是下三角矩阵:EijLEij=L(L表示一个新的下三角矩阵)
因此回头看上边的等式:
U=Ln-1En-1L2E2L1E1A=Ln-1En-1L2(E3E3)E2L1(E2E2)E1A=
Ln-1(En-1Ln-2En-1)(E3L2E3)E3(E2L1E2)E2E1A=Ln-1(Ln-2)(L2)E3(L1)E2E1A
第一个等号是因为EijEij=I,第二个等号是因为矩阵乘法满足结合律第三个等号是把(E2L1E2)记成L1根据上边他是一个新的下三角矩阵
然后我们看这个式子他把E1E2移到了A的附近,然后括号里边的是新的下三角矩阵
以此类推 ,把E3En-1都化到A的旁边,就有
U=(Ln-1L2L1)(En-1E1)A记为U=LPA
L的逆矩阵也是下三角矩阵,同时左乘他就有LU=PA(最后的式子中的L是原来L的逆矩阵 两个不一样)
您可以申请继续授权的,授权天数通常指从某年某月某日开始授权,而授权期限是指某个时间段,即某年某月某日开始至某年某月某日止。
您可以申请继续授权的,授权天数通常指从某年某月某日开始授权,而授权期限是指某个时间段,即某年某月某日开始至某年某月某日止。您可以申请继续授权的,授权天数通常指从某年某月某日开始授权,而授权期限是指某个时间段,即某年某月某日开始至某年某月某日止。
您可以申请继续授权的,授权天数通常指从某年某月某日开始授权,而授权期限是指某个时间段,即某年某月某日开始至某年某月某日止。
您可以申请继续授权的,授权天数通常指从某年某月某日开始授权,而授权期限是指某个时间段,即某年某月某日开始至某年某月某日止。
里面有自带的LU分解函数,你可在帮助文档搜索 LU
给你一个我自己写的LU分解函数
function [myl,myu,x]=MYLU(A,b)
%依据《现代电力系统分析》编制的LU分解程序。
%matlab自带的lu函数与书上所讲略有不同,不方便参照课本步骤进行后续计算。
%A为待分解的矩阵,myl为分解后下三角矩阵,myu为分解后的上三角矩阵,未考虑单独的对角阵D
%clc
%A=[5,0,0,5,1;2,1,1,0,0;0,1,2,0,10;1,0,5,1,0;1,1,0,3,10] %两组测试用矩阵方程
%b=[1,3,3,4,1]';
%M=[1,2,1,1;2,1,0,0;1,0,1,0;1,0,0,1]
%b=[-1,1,2,0]'
%A=[2,3,1;3,7,-1;5,-4,2]
%b=[12,13,5]'
n=length(A);
myl=speye(n); %可以先不分配内存,由系统自动分配内存
myu=speye(n);
%==============LU分解================
for i=1:n
for j=1:n
if (i<j)
x=0;
for k=1:i-1
x=x+myl(i,k)myu(k,j);
end
myu(i,j)=(A(i,j)-x)/myl(i,i);
end
if(i>=j)
x=0;
for k=1:j-1
x=x+myl(i,k)myu(k,j);
end
myl(i,j)=A(i,j)-x;
end
end
end
%B=mylmyu %测试LU分解矩阵,B=A表明结果正确
%===============解方程Ax=b================
y=(zeros(1,n))';
x=(zeros(1,n))';
y(1)=b(1)/myl(1,1);%解Ly=b
for i=2:n
p=0;
for k=1:i-1
p=p+myl(i,k)y(k);
end
y(i)=(b(i)-p)/myl(i,i);
end
%C=(myly) %测试Ly=b,如果相等表明结果正确
x(n)=y(n);
for i=1:n-1
p=0;
for k=n-i+1:n
p=p+myu(n-i,k)x(k);
end
x(n-i)=y(n-i)-p;
end
%D=mylmyux
里面注释部分可以删除
将矩阵A分解为单位下三角阵L和上三角阵U,就是找出L的元素lij以及U的元素uij与A的元素aij的关系式。下面说明矩阵L,U的元素可以通过n步由矩阵A的元素计算出来,其中第k步求出U的第k行和L的第k列元素。
根据式(4-1)中,由矩阵乘法可知:
(1)由L的第1行和U的第j列元素对应相乘后与A的对应元素相等,即
a1j=u1j
同理可知U的第1行元素:
u1j=a1j (j=1,2,…,n)
由L的第i行和U的第1列元素对应相乘后与A的对应元素相等,即
ai1=li1·u11
从而得到L的第一列元素
li1=ai1/u11 (i=2,3,…,n)
这样就确定了U的第1行元素及L的第1列元素。类似地,用矩阵乘法再确定U的第2行及L的第2列,如此继续。
假设已经得出了U的前k-1行及L的前k-1列(1≤k≤n)的全部元素,现在来确定U的第k行元素和L的第k列元素。
(2)在式(4-1)中,由矩阵乘法知
地球物理数据处理基础
注意,由于L是单位下三角阵,当r>k时,lkr=0,而lkk=1,所以
地球物理数据处理基础
从而有
地球物理数据处理基础
如此即可得到上三角矩阵U的第k行元素。
同理,可确定L的第k列元素。
由 并且当r>k时,urk=0,则有
地球物理数据处理基础
从而有
地球物理数据处理基础
即可计算出矩阵L的第k列元素。
上述步骤进行,就可以定出L及U的全部元素,完成矩阵A的LU分解,即对k=1,2,…,n,计算A=LU分解的公式为
地球物理数据处理基础
这里约定
上述这种矩阵A的LU分解计算顺序也可按图4-1所示逐步进行。
由于以上计算公式(4-7)中不含消去法的中间结果a(k)ij,可直接逐框计算,所以称为紧凑格式。
从计算过程中可以看出,对A进行LU分解时,在求出u1j(j=1,2,…,n)后不再需要a1j(j=1,2,…,n),求出li1(i=2,3,…,n)后不再需要ai1(i=2,3,…,n)。同样求出ukj和lik后不再需要akj和aik(j=k,k+1,…,n;i=k+1,k+2,…,n;k=1,2,…,n),因此,在计算过程中可以不另设存放L和U的数组,而是将ukj和lik算出后直接存入矩阵A对应元素akj和aik的存贮单元中。这也称为动态算法,它可节省大量内存。
图4-1 矩阵LU分解顺序图
对A进行LU分解后,可按式(4-5)和式(4-6)求解线性方程组。
同样,求解线性方程组时,由式(4-5)和式(4-6)式可知,在求yi(i=1,2,…,n)时,只用到对应的bi(i=1,2,…,n),故可不另设存放y的数组,而将y的元素存入列向量b对应元素bi的存贮单元中。但应注意,这时的b已变成y。同理求x时,也不用另设存放单元,计算结果直接存入b中,因而在求解线性方程组的最后结果中,b存储的是x。
另外,由于求yi的顺代公式(4-5)与求ukj的公式(4-7)形式完全相同,故可合并到k循环之内进行,这样可以简化程序结构。所以,在进行LU分解的同时,Ly=b的求解也完成了。
[例1]用直接三角分解法求解线性方程组
解:(1)分解A=LU,
地球物理数据处理基础
即
地球物理数据处理基础
(2)求解Ly=b,
地球物理数据处理基础
得到y=(3,-5,6)T
(3)求解
得到x=(2,-2,1)T
以上就是关于部分选主元的LU分解,可不可以先换好所有行,然后再进行LU分解全部的内容,包括:部分选主元的LU分解,可不可以先换好所有行,然后再进行LU分解、lu10.0授权天数满如何解决、Matlab矩阵的LU分解,可是怎么跟书上说的不一样等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)