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

📄 gaussseidel.m

📁 线行方程组的Gauss Jacobi 及一个简单的自适应算法
💻 M
字号:
function [x,flag] = gaussseidel(A,b,x0,ep,maxit)
% 参数个数判断
   if nargin<5,
       maxit = 1000;
       if nargin<4,
           ep = 1e-8;
           if nargin<3,
               x0 = zeros(size(b));
           end
       end
   end
% 初始化
   x    = x0;
   n    = length(b);
   flag = 0;
   it   = 0;
   %xnew = zeros(n,1);
   %1er   = [];
% 主循环   
   while ~flag & it<maxit
       for k = 1:n,                      % Jacobi公式
           p = [1:k-1 k+1:n];            % Gauss-Seidel
           x(k) = ( b(k)-A(k,p)*x(p) ) / A(k,k);
       end
       it   = it + 1;                    % 统计迭代步
       %x    = xnew;                      % 更新
       flag = [ norm(A*x-b)<=ep ] ;      % 设置收敛指标
       %1er   = [ er norm(A*x-b) ];
       %1semilogy(er);
   end

⌨️ 快捷键说明

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