毕业论文

打赏
当前位置: 毕业论文 > 数学论文 >

线性方程组的迭代法及其Matlab实现程序(3)

时间:2021-01-05 20:21来源:毕业论文
(4) 若k=N,则停止计算(有选择的输出信息);否则,k=k+1,回到(2)进行下一次迭代。 Jacobi迭代的Matlab 程序Jacobi.m如下:源:自*751~论,文网www.751com.cn/ function

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

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

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迭代。

线性方程组的迭代法及其Matlab实现程序(3):http://www.751com.cn/shuxue/lunwen_67860.html
------分隔线----------------------------
推荐内容