高斯-约当 (Gauss-Jordan) 消元法 [学习笔记]

朴素高斯消元
program ttdd8;
var matrix:array[1..100,1..101] of double;
    temp:array[1..101] of double;
    x:array[1..100] of double;
    i,j,k,n:integer;
    m:double;

begin
readln(n);{一共有n个式子}
for i:=1 to n do
  begin
    for j:=1 to n+1 do
      read(matrix[i,j]);{依次读入每个式子x1,x2…的系数及常数项}
    readln;
  end;
for i:=1 to n-1 do{需要消元n-1次}
  begin
    for j:=i to n do{寻找主元,即当前要消去元素系数最大的一个式子}
      if matrix[j,i]>matrix[i,i] then
        begin
          temp:=matrix[i];
          matrix[i]:=matrix[j];
          matrix[j]:=temp;
        end;
    for j:=i+1 to n do
      begin
        m:=matrix[j,i]/matrix[i,i];
        matrix[j,i]:=0;
        for k:=i+1 to n+1 do
          matrix[j,k]:=matrix[i,k]*m-matrix[j,k];
      end;
  end;
x[n]:=matrix[n,n+1]/matrix[n,n];{回代过程}
for i:=n-1 downto 1 do
  begin
    m:=0;
    for j:=i+1 to n do
      m:=m+matrix[i,j]*x[j];
    x[i]:=(matrix[i,n+1]-m)/matrix[i,i];
  end;
for i:=1 to n do
  writeln(x[i]:0:2);
end.


转自zkw的blog‍

高斯消元法是求解线性方程组的常用方法,高斯约当消元法大家可能不是很熟悉。下面先介绍线性方程组和矩阵的一些基本概念与高斯消元法,然后着重介绍高斯约当消元法相对于高斯消元法的优势:程序简单(不需要回代),应用广泛(例如求矩阵的逆),易于判断处理特殊情况(有无穷多解的情况)。 

  这是一个线性方程组: 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值