⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gauss2.m

📁 数值分析, 同济大学教材<<现代数值数学和计算>>数值分析课程所有算法的matlab代码,所有例程均经过测试,私家珍藏
💻 M
字号:

function x = Gauss2(A, d)
n = length(d);
for i = 1 : n
  dn(i) = i;
end
for i = 1 : n % each column
  % make the first row the largest one
  rowmax = i;
  for j = i+1 : n
    if A(j, i) > A(rowmax, i)
      rowmax = j;
    end
  end
  if rowmax ~= i
    row = A(i, :);
    A(i, :) = A(rowmax, :);
    A(rowmax, :) = row;
    row = dn(i);
    dn(i) = dn(rowmax);
    dn(rowmax) = row;
  end
  
  if A(i, i) == 0 then
    error('zero in the first column.');
  end
  for j = i+1 : n % each row
    k = - A(j, i) / A(i, i);
    A(j, :) = A(j, :) + A(i, :) * k;
    d(j, 1) = d(j, 1) + d(i, 1) * k;
  end
end

x0 = zeros(n, 1);
x0(n) = d(n, 1) / A(n, n);
for i = n-1 : -1 : 1
  x0(i) = (d(i, 1) - A(i, :) * x0) / A(i, i);
end

for i = 1 : n
  x(dn(i)) = x0(i);
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -