用matlab学习数模 1 Gaussian Elimination

高斯消元法是matlab中基础中的基础
首先我们要理解高斯消元是什么

用matlab学习数模 1 Gaussian Elimination
用matlab学习数模 1 Gaussian Elimination
将一个n*n的矩阵通过相加减最终化成三角矩阵
那么不难得出
用matlab学习数模 1 Gaussian Elimination
用matlab学习数模 1 Gaussian Elimination
读懂了这些,我们就可以开始进入matlab的程序结构
首先著名笔者用的是MATLAB R2019b版本
在编辑器中输入
function [x] = MyGauss(A, b)
% This is the code for Gaussian Elimination without Pivoting.
% Input:
% A n by p coefficient matrix
% b n by 1 right-hand-side matrix
% Output:
% x p by 1 solution matrix

% Get size of input
[n, p] = size(A);

% Check for zero diagonal elements
if any(diag(A) == 0)
error(‘Division by zero will occur.’)
end

% Gaussian elemination process.
for k = 1 : n-1
for i = k+1 : n
m = A(i, k)/A(k, k);
for j = k : n
A(i, j) = A(i, j) - mA(k, j);
end
b(i) = b(i) - m
b(k);
end
end

% Backward substitution
x(n) = b(n) / A(n,n);

for i = n-1 : -1 : 1
for j = i+1 : n
b(i) = b(i) - A(i, j)*x(j);
end
x(i) = b(i)/A(i, i);
end

即可解决高斯消元问题