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

Jacobi迭代的Matlab 程序Jacobi.m如下:源:自*优尔~·论,文'网·www.youerw.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迭代。

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

浅谈中学数学函数最值问题的求解方法

基于决策树算法的篮球联赛预测

数形结合在中学数学中的...

浙江省工业企业发展的因子分析

中美小学数学课堂教学的比较

杭州历年中考三角形的题型分析

论数形结合在中学数学教育中的应用

LiMn1-xFexPO4正极材料合成及充放电性能研究

张洁小说《无字》中的女性意识

安康汉江网讯

ASP.net+sqlserver企业设备管理系统设计与开发

麦秸秆还田和沼液灌溉对...

新課改下小學语文洧效阅...

我国风险投资的发展现状问题及对策分析

老年2型糖尿病患者运动疗...

互联网教育”变革路径研究进展【7972字】

网络语言“XX体”研究