gauseelimination.m

来自「学习matlab的朋友」· M 代码 · 共 75 行

M
75
字号

function [x]=GauseElimination(A,b)
% 高斯顺序消去法 A为系数矩阵,b为常数向量.
%调用格式为 [x]=GauseElimination(A,b)
len=length(A);
x=zeros(len,1);
%把系数矩阵A化为上三角矩阵U
for i=1:len-1     %这儿从第1行开始,右下角的最后一个数字不需处理.
    for k=i+1:len
        m=A(k,i)/A(i,i);
        A(k,:)=A(k,:)-m*A(i,:)
        b(k)=b(k)-m*b(i)
    end
end
% 回代过程
x(len)=b(len)/A(len,len);
for i=len-1:-1:1
    sigama=0;
    for j=i+1:len
        sigama=sigama+A(i,j)*x(j);
    end
    x(i)=(b(i)-sigama)/A(i,i);
end

%实验数据:
% [x]=gause(A,b)
% 
% A =
% 
%      1     2     3
%      0    -1    -2
%      1     3     2
% 
% 
% b =
% 
%      6
%     -3
%      6
% 
% 
% A =
% 
%      1     2     3
%      0    -1    -2
%      0     1    -1
% 
% 
% b =
% 
%      6
%     -3
%      0
% 
% 
% A =
% 
%      1     2     3
%      0    -1    -2
%      0     0    -3
% 
% 
% b =
% 
%      6
%     -3
%     -3
% 
% 
% x =
% 
%      1
%      1
%      1

⌨️ 快捷键说明

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