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

代码说明:

  1. 输入方程组的系数矩阵和常数向量:
  • A 为系数矩阵,b 为常数向量。
  1. 构造增广矩阵:
  • Ab 为增广矩阵,将 Ab 横向拼接得到。
  1. 高斯-若尔当消去法:
  • 循环遍历增广矩阵 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);
  1. 格式化输出:
  • 输出结果矩阵 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

注意:

高斯-若尔当消去法是一种常用的求解线性方程组的方法,但对于某些特殊情况,例如系数矩阵奇异,该方法可能无法正常运行。

希望本代码示例能帮助您更好地理解和应用高斯-若尔当消去法。

MATLAB 高斯-若尔当消去法求解线性方程组

原文地址: https://www.cveoy.top/t/topic/nzdz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录