matlab迭代加速法如何设置,jacobi迭代法实验MATLAB程序数值分析.doc

求线性方程组

得近似解。精确解为x*=[3,2,1]’。

解:对方程进行移项就得

记为Ax=b,或写为x=B0x+f,其中

取初始值,代入原方程组可得再将把它代入可得.反复利用这个计算过程,得到一向量序列和一般的计算公式(迭代公式)

简写为迭代到第10次有

从此例看出,由迭代法产生的向量序列x(k)逐步逼近方程组的精确解x*.

6.1常用迭代法

定义1 (ⅰ)对于给定的方程组x=Bx+f ,用公式逐步代入

求近似解的方法称为迭代法(或称为一阶定常迭代法,这里B

与k无关).

(ⅱ)如果 存在(记为x*),称此迭代法收敛,显然x*就是方

程组的解,否则称此迭代法发散.

迭代法的流程图为:

①为初始向量,

②是判断条件, 即时停止运行

③k 是循环次数。

④中带入初始值,然后赋给

① Jacobi迭代法

对一般方程组

从第一个方程解出x1,第二个方程解出x2,…,记成

用矩阵写法即x=Bx+g,B的对角元皆零,可拆成

B=L+UL是B下三角部分,U是B上三角部分Jacobi迭代法如下述.

任取初始近似x(0),对k=1,2,…计算

直至║x(k+1)-x(k)║≤ε,预定的精度.用矩阵记号,即任取初始近似x(0),对k=1,2,…计算

x(k+1)=Bx(k)+g,

直至║x(k+1)-x(k)║≤ε(通常对迭代法限定最大迭代次数也是必要的).Jacobi迭代法的流程图为:

在以上的流程图中,先读入数据,即先输入系数矩阵A,常数向量b, 初始值,停止条件和最大循环次数。图中是,在我们迭代公式中的。k 是循环次数,N 是最大循环次数。

例2.?????????????利用Jacobi方法求方程组

的近似解。

解 把原方程改为

任取初始近似x(0),对k=1,2,…计算

直至║x(k+1)-x(k)║≤ε,预定的精度.

此即Jacobi迭代法.计算结果如下表.

kx1(k)x2(k)x3(k)000010.7200000000000.8300000000000.84000000000020.9710000000001.0700000000001.15000000000031.0570000000001.1571000000001.24820000000041.0853500000001.1853400000001.28282000000051.0950980000001.1950990000001.29413800000061.0983375000001.1983374000001.29803940000071.0994416200001.1994416300001.29933498000081.0998111590001.1998111580001.29977665000091.0999364458001.1999364459001.299924463400101.0999785372701.1999785372601.299974578340111.0999927693941.1999927693951.299991414906

二 实验部分

本章实验内容:

实验题目:Jacobi迭代法,Gauss-Saidel迭代法,SOR迭代法。

实验内容:利用MATLAB ,编制求Ax=b的各迭代计算方法的程序。

实验目的:了解迭代法的运用性,进行各迭代法数值结果的比较,并找出一个计算量小的,使迭代法加速收敛的迭代方法。

编程要求:①利用迭代法,初始向量为x(0)

②同时利用Jacobi法和Gauss-Seidel法来进行对比。

③利用SOR迭代法来进行对比。

计算算法:①Jacobi迭代法的算法为:

②Gauss-Saidel迭代法的算法为:

③SOR迭代法的算法为:

实验例题⑴:

条件:取

实验例题⑵:

条件:取选择适当的松弛因子。

程序①:

function [X,Y]=JacobiGS(A,b,p,p1,del,max)

% A为线性方程组的系数矩阵,b为自由项,p和p1为两种迭代法的初始解,del为限制数,max为循环的限制次数。

n=length(b);

for k1=1:max

for j=1:n

Y(j)=(b(j)-A(j,[1:j-1])*p1(1:j-1)-A(j,[j+1:n])*p1(j+1:n

    原文作者:weixin_39651735
    原文地址: https://blog.csdn.net/weixin_39651735/article/details/116111884
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞