gaosi.m

来自「求矩阵的逆阵」· M 代码 · 共 45 行

M
45
字号
function y=gaosi(a)
%高斯消去法求逆阵
%a=需要求逆的矩阵,y为结果
row=size(a,1);
num=size(a,2);
if row~=num
   '你输入的矩阵不可逆'
   break;
end 
tempM=eye(row);
tempM=[a,tempM];
for k=1:row
    %列主元素法将矩阵进行一定的预先排序处理
    j=k;
    tempN=tempM(k,k);
    for kk=k:row
        tempN=tempM(k,k);
        if tempM(kk,k)>tempN
            j=kk;
            tempN=tempM(kk,k);
        end                           
    end
    %tempN=tempM(j,:);
    %tempM(j,:)=tempM(k,:);
    %tempM(k,:)=tempN;
    tempM([k,j],:)=tempM([j,k],:);
    %消去为上三角的过程
    for i=k:row
            if i==k    
            tempM(i,:)=tempM(i,:)/tempM(k,k);
            else
            tempM(i,:)=tempM(i,:)-tempM(k,:)*tempM(i,k)
            end
    end    
end
%以下是回代过程
for k=row:-1:1
    for i=k:-1:1
            if i~=k
            tempM(i,:)=tempM(i,:)-tempM(k,:)*tempM(i,k)
            end
    end    
end
tempM=tempM(:,[(row+1):2*row]);
y=tempM;

⌨️ 快捷键说明

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