jacobi迭代法实验MATLAB程序数值分析
例1. 求线性方程组 得近似解。精确解为x*=[3,2,1]’。 解:对方程进行移项就得 记为Ax=b,或写为x=B0 x+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迭代法.计算结果如下表. k x1(k) x2(k) x3(k) 0 0 0 0 1 0.720000000000 0.830000000000 0.840000000000 2 0.971000000000 1.070000000000 1.150000000000 3 1.057000000000 1.157100000000 1.248200000000 4 1.085350000000 1.185340000000 1.282820000000 5 1.095098000000 1.195099000000 1.294138000000 6 1.098337500000 1.198337400000 1.298039400000 7 1.099441620000 1.199441630000 1.299334980000 8 1.099811159000 1.199811158000 1.299776650000 9 1.099936445800 1.199936445900 1.299924463400 10 1.099978537270 1.199978537260 1.299974578340 11 1.099992769394 1.199992769395 1.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))/A(j,j); if j==1 X(1)=(b(1)-A(1,[2:n])*p(2:n))/A(1,1); elseif j==n X(n)=(b(n)-A(n,[1:n-1])*(X(1:n-1)) )/A(n,n); else X(j)=(b(j)-A(j,[1:j-1])*(X(1:j-1)) -A(j,[j+1:n])*p(j+1:n))/A(j,j); end err=abs(norm(X -p)); reerr=err/(norm(X)+eps); p=X ; if (err
下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
2.下载的文档,不会出现我们的网址水印。
下载文档到电脑,查找使用更方便
10 积分
还剩页未读,继续阅读 关 键 词:jacobi迭代法 MATLAB程序 jacobi迭代法MATLAB程序 matlab编程 Jacobi 迭代法matlab程序 数值分析 matlab程序 数值分析 雅可比迭代法
蚂蚁文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。