(4) 若k=N,则停止计算(有选择的输出信息);否则,k=k+1,回到(2)进行下一次迭代。

Jacobi迭代的Matlab 程序Jacobi.m如下:源:自*吹冰~·论,文'网·www.chuibin.com/

function [x,k] = jacobi(A, b, ep, it_max)

% 求解线性方程组的Jacobi迭代法,调用方法为

%    [x,k]=Jacobi(A, b ,ep, it_max)

% 其中

%    A 为方程组的系数矩阵,b 为方程组的右端项;

%    ep 为精度要求,缺省值为1e-5

%    it_max 为最大迭代次数,缺省值100;

%    x为方程的解,k为迭代次数。

if nargin < 4, it_max = 100; 

end

if nargin < 3, ep = 1e-5; 

end

d = diag(A);L = - tril(A,-1);U = -triu(A,1);

if min(abs(d)) < 1e-10

    error('% 对角元素为0, 计算失败!');

end

n = length(b); x = zeros(n,1); k = 1;

invD = spdiags(1。/d,0,n,n);

B = invD*(L+U);f = invD*b;

while k < it_max

    y = B*x + f;

    if norm(y - x, inf) < ep break; 

    end

    x = y; k = k + 1;

end

程序中的函数 spdiags 是生成稀疏形式的对角阵;这样做的好处是: 如果矩阵 A 是稀疏矩阵,那么整个运算可以保持稀疏性。

Jacobi迭代法的优点是计算相对的简单,每次迭代只需要作向量和矩阵的一次乘法。一般情况,在迭代法收敛的前提下,下一次的迭代比上一次更加准确,所以,为了每次迭代充分利用最新的迭代值,于是就出现了Gauss-Seidel迭代法。文献综述

Gauss-Seidel迭代法

Gauss-Seidel迭代的基本思想与Jacobi迭代的基本思想类似。区别在于Gauss-Seidel迭代法,每次迭代都会充分利用最新的迭代值,即如果Jacobi迭代法是收敛的,那么在Jacobi迭代算法的第 (2) 步中,将计算出的x^((k+1))的分量立刻应用到下一个迭代方程中去,这就是Gauss-Seidel迭代。

上一篇:高等数学在中学数学中的应用
下一篇:线性变换与矩阵问题的讨论

微课在中学数学素质教育中的应用

中学数学教学中的模型思想与应用

凯勒流形的复结构与代数结构研究

可展曲面的判定构造及其应用

Dirichlet判别法与Abel判别法的探究

一维Schroedinger算子只有离散谱的条件

螺纹钢期货交易中几个影...

基于Joomla平台的计算机学院网站设计与开发

AES算法GPU协处理下分组加...

从政策角度谈黑龙江對俄...

浅论职工思想政治工作茬...

酵母菌发酵生产天然香料...

上海居民的社会参与研究

压疮高危人群的标准化中...

浅谈高校行政管理人员的...

提高教育质量,构建大學生...

STC89C52单片机NRF24L01的无线病房呼叫系统设计