jacobi.m

来自「基于Matlab的计算方法中常用的算法程序」· M 代码 · 共 21 行

M
21
字号
function s=jacobi(a,b,x0,eps)
  % Jacobi 迭代法解线性方程组
  % a为系数矩阵,b为方程组ax=b的右端项,x0为初值
  if nargin==3
      eps=1.0e-6;
  elseif nargin<3
      error
      return
  end
  D=diag(diag(a)); %求对角矩阵
  D=inv(D); %求对角矩阵的逆
  L=tril(a,-1); %求严格下三角矩阵
  U=triu(a,1); %求严格上三角矩阵
  B=-D*(L+U);
  f=D*b;
  s=B*x0+f;
  while norm(s-x0)>=eps
      x0=s;
      s=B*x0+f;
  end
  return

⌨️ 快捷键说明

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