MATLAB n階矩陣高斯順序消去法代碼

n階高斯順序消去法的代碼如下(高斯列主元消去法可以改改代碼,代碼比較粗糙,敬請見諒),嗯,如有雷同,純屬巧合:

%n階矩陣的高斯消去法,matlab程序,gaosi.m
clear,clc

prompt1='輸入矩陣的行數\n';
n=input(prompt1)     ;         %輸入n階矩陣

for i=1:n                     %輸入矩陣元素
    for j=1:n
        number='input:';
        matrix(i,j)=input(number);
    end
end     
 
for k=1:n                    %定義一個1*n的矩陣,下邊會用到
    matrix2(1,k)=0;
end

for j=1:n                         %高斯消元法算法
    for i=(j+1):n
        if(matrix(j,j)~=0)        %除數不爲0時,進行各行的計算
           divisor=matrix(i,j)/matrix(j,j);
           matrix(i,:)=matrix(i,:)-matrix(j,:)*divisor;
        else                           %除數爲0時,找到當前列中,元素不爲0的行數,兩者進行交換
            for k=j:n                  %此時用到了上面定義的一行n列的矩陣
                if(matrix(k,j)~=0)     %矩陣行元素進行交換
                    matrix2(1,:)=matrix(j,:);
                    matrix(j,:)=matrix(k,:);
                    matrix(k,:)=matrix2(1,:);
                end
            end
        end
    end
end
matrix                                 %此處無分號,輸出最後的矩陣
                                       %可以適當的去處某些代碼後邊的分號,以觀察中間過程

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章