列主元消去法matlab代码
时间: 2023-07-09 11:51:11 浏览: 108
数值计算方法 matlab实现Gauss消去法,Guass列主元消去法,Doolittle三角分解法代码及注释
5星 · 资源好评率100%
以下是使用列主元消去法解线性方程组的MATLAB代码:
```matlab
function x = gauss_elimination(A, b)
% 列主元消去法解线性方程组 Ax = b
[n, ~] = size(A);
% 构造增广矩阵
AB = [A, b];
% 高斯消元
for k = 1:n-1
% 选取主元
[~, p] = max(abs(AB(k:n, k)));
p = p + k - 1;
if p ~= k
AB([k, p], :) = AB([p, k], :);
end
% 消元
for i = k+1:n
factor = AB(i, k) / AB(k, k);
AB(i, k+1:end) = AB(i, k+1:end) - factor * AB(k, k+1:end);
AB(i, k) = factor;
end
end
% 回带求解
x = zeros(n, 1);
x(n) = AB(n, n+1) / AB(n, n);
for i = n-1:-1:1
x(i) = (AB(i, n+1) - AB(i, i+1:n) * x(i+1:n)) / AB(i, i);
end
end
```
使用方法:
假设要求解线性方程组 Ax = b,其中 A 是一个 n×n 的矩阵,b 是一个 n×1 的列向量,可以使用以下代码:
```matlab
A = [1 2 3; 4 5 6; 7 8 9];
b = [4; 5; 6];
x = gauss_elimination(A, b);
```
执行完毕后,变量 x 将包含线性方程组 Ax = b 的解。
阅读全文