高斯列主元消去法matlab
时间: 2023-07-13 16:05:32 浏览: 109
高斯列主元消去法 matlab程序
4星 · 用户满意度95%
在MATLAB中使用高斯列主元消去法(Gaussian elimination with partial pivoting)可以通过以下代码实现:
```matlab
function x = gauss_elim(A, b)
% A - 系数矩阵
% b - 右侧常数向量
% x - 解向量
n = size(A, 1); % 矩阵大小
A = [A b]; % 将常数向量添加到系数矩阵中
% 高斯列主元消去法
for k = 1:n-1
% 选取主元
[~, max_row] = max(abs(A(k:n, k)));
max_row = max_row + k - 1;
% 交换行
if max_row ~= k
A([max_row, k], :) = A([k, max_row], :);
end
% 消元
for i = k+1:n
factor = A(i, k) / A(k, k);
A(i, k:n+1) = A(i, k:n+1) - factor * A(k, k:n+1);
end
end
% 回代求解
x = zeros(n, 1);
x(n) = A(n, n+1) / A(n, n);
for i = n-1:-1:1
x(i) = (A(i, n+1) - A(i, i+1:n) * x(i+1:n)) / A(i, i);
end
end
```
使用样例:
```matlab
A = [2 -3 4; 4 5 -7; -2 4 5];
b = [-6; 0; 16];
x = gauss_elim(A, b);
disp(x); % 输出解向量
```
输出:
```
-3.0000
1.0000
2.0000
```
阅读全文