twostep.m

来自「Matlab语言常用算法程序集.rar 里面有很多有用的Matlab数值运」· M 代码 · 共 36 行

M
36
字号
function [x,n]=twostep(A,b,x0,eps,varargin)if nargin==3    eps= 1.0e-6;    M  = 200;elseif nargin<3    error    returnelseif nargin ==5    M  = varargin{1};end  D=diag(diag(A));    %求A的对角矩阵L=-tril(A,-1);      %求A的下三角阵U=-triu(A,1);       %求A的上三角阵B1=(D-L)\U;B2=(D-U)\L;f1=(D-L)\b;f2=(D-U)\b;x12=B1*x0+f1;x  =B2*x12+f2;n=1;                  %迭代次数while norm(x-x0)>=eps    x0 =x;    x12=B1*x0+f1;    x  =B2*x12+f2;    n=n+1;    if(n>=M)        disp('Warning: 迭代次数太多,可能不收敛!');        return;    endend

⌨️ 快捷键说明

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