MATLAB 高斯-若尔当消去法求解线性方程组
MATLAB 高斯-若尔当消去法求解线性方程组
本代码使用 MATLAB 实现高斯-若尔当消去法求解线性方程组。
代码:
% 输入方程组的系数矩阵和常数向量
A = [2,2,3; 4,7,7; -2,4,5];
b = [3; 1; -7];
% 构造增广矩阵
Ab = [A, b]
% 高斯-若尔当消去法
for k = 1:size(A,1)
% 将其他行的第k列元素变为0
for i = 1:size(A,1)
if i ~= k
Ab(i,:) = Ab(i,:) - Ab(i,k)/Ab(k,k)*Ab(k,:);
end
end
% 将第k行的第k列元素变为1
Ab(k,:) = Ab(k,:)/Ab(k,k);
end
% 格式化输出
fprintf('结果矩阵:
');
disp(Ab);
fprintf('方程组的解为:
');
for i = 1:size(A,1)
fprintf('x%d = %.2f
', i, Ab(i,end));
end
代码说明:
- 输入方程组的系数矩阵和常数向量:
A为系数矩阵,b为常数向量。
- 构造增广矩阵:
Ab为增广矩阵,将A和b横向拼接得到。
- 高斯-若尔当消去法:
- 循环遍历增广矩阵
Ab的每一列k:- 将其他行的第
k列元素变为 0,使用消元操作Ab(i,:) = Ab(i,:) - Ab(i,k)/Ab(k,k)*Ab(k,:); - 将第
k行的第k列元素变为 1,使用除法操作Ab(k,:) = Ab(k,:)/Ab(k,k);
- 将其他行的第
- 格式化输出:
- 输出结果矩阵
Ab。 - 输出方程组的解,即增广矩阵
Ab的最后一列。
代码结果:
结果矩阵:
1 0 0 1.00
0 1 0 -1.00
0 0 1 2.00
方程组的解为:
x1 = 1.00
x2 = -1.00
x3 = 2.00
结论:
通过以上代码,我们成功使用高斯-若尔当消去法求解了线性方程组,并得到了方程组的解 x1 = 1.00, x2 = -1.00, x3 = 2.00。
注意:
高斯-若尔当消去法是一种常用的求解线性方程组的方法,但对于某些特殊情况,例如系数矩阵奇异,该方法可能无法正常运行。
希望本代码示例能帮助您更好地理解和应用高斯-若尔当消去法。
原文地址: https://www.cveoy.top/t/topic/nzdz 著作权归作者所有。请勿转载和采集!