nagauss.m

来自「Matlab数值解算法实现代码」· M 代码 · 共 21 行

M
21
字号
function x=nagauss(a,b,flag)
%简单gauss消去法解线性方组ax=b
%   a:系数矩阵
%   b:右端列向量
%   flag:若为0,则显示中间过程,否则不显示,默认值为0
%   x:解向量
if nargin<3, flag=0;end
n=length(b);a=[a,b];
%消元
for k=1:(n-1)
  a((k+1):n,(k+1):(n+1))=a((k+1):n,(k+1):(n+1))-a((k+1):n,k)/a(k,k)*a(k,(k+1):(n+1));
  a((k+1):n,k)=zeros(n-k,1);
  if flag==0,a,end
end
%回代
x=zeros(n,1);
x(n)=a(n,n+1)/a(n,n);
for k=n-1:-1:1
  x(k,:)=(a(k,n+1)-a(k,(k+1):n)*x((k+1):n))/a(k,k);
end

⌨️ 快捷键说明

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