pmlu.m

来自「CG共轭梯度法迭代解矩阵方程」· M 代码 · 共 21 行

M
21
字号
function[L,U]=pmlu(A)%部分选主元函数
[n,n]=size(A);
U=A;
L=eye(n,n);
P=eye(n,n);
t=eye(n,n);
l=eye(n,n);
c=eye(n,n);
for k=1:n-1
    for m=1:n-1
 [i,h]=max(abs(U(k:n,m))); %选择i>=k,使|uik|最大
 t(k,k:n)=A(k,k:n);A(k,k:n)=A(i,k:n);A(i,k:n)=t(k,k:n);%交换两行
 l(k,1:k-1)=L(k,1:k-1);L(k,1:k-1)=L(i,1:k-1);L(i,1:k-1)=l(k,1:k-1);
 c(k,:)=P(k,:);P(k,:)=P(i,:);P(i,:)=c(k,:);
    end
    
for j=k+1:n
     L(j,k)=U(j,k)/U(k,k);
     U(j,k:n)=U(j,k:n)-L(j,k)'*U(k,k:n);
end
 end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?