jacobi.m

来自「数值分析, 同济大学教材<<现代数值数学和计算>>数值分」· M 代码 · 共 25 行

M
25
字号

function x = jacobi(A, b, x0, tol)
[n, m] = size(A);
if ((n ~= length(b)) & (n ~= length(x0))) || (det(A) == 0) || (n ~= m)
  error('Invalid Matrix.')
end
x = x0;
x0 = x0 + tol + tol;
it = 0;
while norm(x - x0) > tol
  x0 = x;
  it = it + 1;
  if it > 1000
    disp('Iteration Failed.');
    return;
  end
  xp0 = x;
  for i = 1 : n
    xp = xp0;
    xp(i) = 0;
    x(i) = 1 / A(i, i) * (b(i) - A(i, :) * xp);
  end
end
it
disp('Iteration Success.');

⌨️ 快捷键说明

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