当前位置:文档之家› 逐次超松弛法因子的自适应生成

逐次超松弛法因子的自适应生成

逐次超松弛法因子的自适应生成
逐次超松弛法因子的自适应生成

逐次超松弛法因子的自适应生成

【摘要】:关于逐次超松弛迭代法松弛因子的研究有着悠久的历史,到目前为止很多人做了这方面的工作,本文也是基于逐次超松弛法中松弛因子选取的灵活性给出了一种新的方法来自适应生成松弛因子.即分别在系数矩阵为对称正定的情况下与非对称非奇异的情况下通过极小化二次函数1/2xTAx-xTb与极小化ΥTΥ(Υ=b-Ax),从而有效避免了传统选取最佳松弛因子带来的不便,并通过数值试验说明此算法切实可行,且在理论上也证明了其收敛性.【关键词】:迭代法逐次超松弛松弛因子二次函数对称正定

【学位授予单位】:山西大学

【学位级别】:硕士

【学位授予年份】:2013

【分类号】:O241.6

【目录】:中文摘要6-7Abstract7-8第一章绪论8-10§1.1研究背景及选题意义8§1.2预备知识8-9§1.3本文主要内容及结构安排9-10第二章系数矩阵对称的SOR法因子的选取10-18§2.1引言10§2.2系数矩阵对称的AOSOR方法10-13§2.3系数矩阵对称的SOR法因子的选取13-16§2.4总结16-18第三章系数矩阵非对称的SOR法因子的选取18-25§3.1引言18§3.2系数矩阵非对称的AOSOR方法18-20§3.3系数

矩阵非对称的SOR法因子的选取20-24§3.4总结24-25第四章全文总结25-26参考文献26-28发表文章目录28-29致谢29-30个人简况30-32 本论文购买请联系页眉网站。

jacobi G-S,超松弛迭代法MATLAB程序

function iteration A=[10,1,2,3,4; 1,9,-1,2,-3; 2,-1,7,3,-5; 3,2,3,12,-1; 4,-3,-5,-1,15]; b=[12,-27,14,-17,12]'; x0=[0,0,0,0,0]'; tol=1e-12; disp('jacobi迭代法的结果和次数如下:') [x,k]=Fjacobi(A,b,x0,tol) disp('G-S迭代法的结果和次数如下:':') [x,k]=Fgseid(A,b,x0,tol) disp('超松弛的结果和次数如下:':') [x,k]=Fsor(A,b,x0,1.2,tol) disp('共轭梯度法的结果和次数如下:':') [x,k]=Fcg(A,b,x0,tol) %jacobi迭代法 function [x,k]=Fjacobi(A,b,x0,tol) max=300; D=diag(diag(A)); L=-tril(A,-1); U=-triu(A,1); B=D\(L+U); f=D\b; x=B*x0+f; k=1; while norm(x-x0)>=tol x0=x; x=B*x0+f; k=k+1; if(k>=max) disp('μü′ú3?1y300′?£?·?3ì×é?é?ü2?ê?á2'); return; end end %G-S迭代法 function [x,k]=Fgseid(A,b,x0,tol) max=300; D=diag(diag(A)); L=-tril(A,-1); U=-triu(A,1); G=(D-L)\U; f=(D-L)\b; x=G*x0+f; k=1; while norm(x-x0)>=tol x0=x; x=G*x0+f; k=k+1; if(k>=max) disp('μü′ú3?1y300′?£?·?3ì×é?é?ü2?ê?á2'); return; end

实验一 用超松弛迭代法求解接地金属槽内电位分布

实验一 用超松弛迭代法求解接地金属 槽内电位分布 学院:自动化学院 姓名: 学号: 一、实验内容: 试用超松弛迭代法求解接地金属槽内电位的分布。 已知:cm a 4=,mm a h 104/== 给定边值如图所示。 给定初值:0)0(,=j i ? 误差范围:510-=ε 计算迭代次数,j i ,?分布。 二.实验设计原理:有限差分法 有限差分法(Finite Differential Method )是基于差 分原理的一种数值计算法。其基本思想:将场域离散为许多 小网格,应用差分原理,将求解连续函数?的泊松方程的问 题换为求解网格节点上?的差分方程组的问题。 编程时已经考虑到题目要求,所以直接将边值编入到程 序中,这样可以省略输入,从而直接输入迭代因子进行求解,可以减少编程的难度。这次编程和以前不同的是将数组和正0=?= V 100 ? 0=?0=?

交函数图像结合起来,所以在考虑输入和输出的时候会有一些难度,因为数组是上面是小的而图像上面越在上,代表坐标就越大。所以在输入和输出的时候要谨慎对待。 迭代时所用公式是和书上一样,为 a[i][j]=b[i][j]+w/4*(b[i+1][j]+b[i][j+1]+a[i][j-1 ]+a[i-1][j]-4*b[i][j]); 其中a代表k+1,而b代表k。 以上分析了迭代程序的实现,但是迭代循环如何终止并未说明。题目中的误差范围ε=0.00001,即当两次迭代结果相差不超过ε时停止,这里只得是九点都满足不超过ε,而并不是其中某一点达到即可。这样可以保证不是陷入死循环,从而输出结果。 这样可以画出流程图如下所示:

数值分析大作业 超松弛迭代法如何选取最佳松弛因子

超松弛迭代法如何选取最佳松弛因子 船建学院B1301095 wj 一、课题背景 逐次超松弛迭代法是Gauss-Seidel方法的一种加速方法,是解大型稀疏矩阵方程组的有效方法之一,它具有计算公式简单,程序设计容易,占用计算机内存较少等优点,但需要选择好的加速因子(即最佳松弛因子)。 最佳松弛因子ω的确定是数值代数中的一个理论难题,对于不同的矩阵,其最佳松弛因子往往相差很大,没有统一的计算公式来确定ω。由于对称正定矩阵sor方法收敛的充分必要条件为w在0到2之间,故利用对称正定矩阵一定收敛的性质,本文提供一种针对于系数矩阵为对称正定矩阵时,如何选取合适的最佳松弛因子的方法。 二、课题研究流程图 三、SOR迭代公式 逐次超松弛(Successive Over Relaxation)迭代法,简称SOR迭代法,它是在GS法基础上为提高收敛速度,采用加权平均而得到的新算法,设解方程的GS法记为 (1)

再由与加权平均得 这里ω>0称为松弛参数,将(1)式代入则得 (2) 称为SOR迭代法,[WTBX]ω>0称为松弛因子,当ω=1时(2)式即为GS法,将(2)式写成矩阵形式,则得 即 于是得SOR迭代的矩阵表示 (3) 四、Matlab程序 %sor法确定对称正定矩阵的最佳松弛因子w% clc;clear; n=100; %矩阵的阶数% for num=1:100 X=diag(rand(n,1)); U=orth(rand(n,n)-0.5); a=U'*X*U; %以上是利用随机对角矩阵和随机正交矩阵,产生随机的对称正定矩阵,正交变化不改变特征值% L=zeros(n,n); U=zeros(n,n); %分配L和U的内存空间% step=0.02; %定义w的计算精度% for k=1:(2/step) %由于对称正定矩阵sor方法收敛的充分必要条件为w在0到2之间% w=(k-1)*step; for i=1:n %一个总的for循环给三个矩阵赋值D-L-U=A,% for j=1:i-1 L(i,j)=-a(i,j);%L矩阵的赋值% end for j=i+1:n U(i,j)=-a(i,j);%U矩阵的赋值% end D(i,i)=a(i,i);%D矩阵的赋值% end

求解线性方程组——超松弛迭代法(c)

求解线性方程组——超松弛迭代法 #include #include using namespace std; float *one_array_malloc(int n); //一维数组分配float **two_array_malloc(int m,int n); //二维数组分配float matrix_category(float* x,int n); int main() { const int MAX=100;//最大迭代次数 int n,i,j,k; float** a; float* x_0; //初始向量 float* x_k; //迭代向量 float precision; //精度 float w; //松弛因子 cout<<"输入精度e:"; cin>>precision; cout<>n; a=two_array_malloc(n,n+1); cout<>a[i][j]; } } x_0=one_array_malloc(n); cout<>x_0[i]; } x_k=one_array_malloc(n);

cout<<"输入松弛因子w (1>w; float temp; //迭代过程 for(k=0;k

SOR迭代法超松弛因子选取

《计算方法》实验报告(二) 实验名称:SOR 迭代法松弛因子的选取 班级: 数学1402班 姓名: 高艺萌 学号:14404210 一、 实验目的 通过本实验学习线性方程组的SOR 迭代解法以及SOR 迭代法的编程与应用。对比分析不同条件下的超松弛因子w 的取值大小会对方程组的解造成影响,通过这个实验我们可以了解的w 不同取值会对方程组的解产生的影响。培养编程与上机调试能力。 二、 实验题目 用逐次超松弛(SOR )迭代法求解方程组b Ax =,其中 ?????????? ????????????=????????????????????????????????????????????=555555122-12-122-112-122-112-122-112-122-12-12201918321 x x x x x x A (1)给定迭代误差,选取不同的超松弛因子1>ω进行计算,观察得到的近似解向量并分析计算结果,给出你的结论; (2)给定迭代误差,选取不同的超松弛因子1<ω进行计算,观察得到的近似解向量并分析计算结果,给出你的结论; 三、 实验原理 1.逐次超松弛迭代法可以看作Gauss-Seidel 迭代法的加速, b D Ux D Lx D x k k k 1)(1)1(1)1(--+-+++= 2.SOR 迭代计算格式 b D L wD I w x U wD I w L wD x k k 111)(111)1()(])1[()-1(------+-++-= 其中,w 叫松弛因子,当w>1时叫超松弛,0

超松弛迭代法及其松弛因子的选取

2013届学士学位毕业论文 超松弛迭代法及其松弛因子的选取 学号:09404307 姓名:程启远 班级:信息0901 指导教师:崔艳星 专业:信息与计算科学 系别:数学系 完成时间:2013年5月

学生诚信承诺书 本人郑重声明:所呈交的论文《超松弛迭代中松弛因子的选取方法》是我个人在导师崔艳星指导下进行的研究工作及取得的研究成果.尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得长治学院或其他教育机构的学位或证书所使用过的材料.所有合作者对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意. 签名:日期: 论文使用授权说明 本人完全了解长治学院有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文. 签名:日期: 指导教师声明书 本人声明:该学位论文是本人指导学生完成的研究成果,已经审阅过论文的全部内容,并能够保证题目、关键词、摘要部分中英文内容的一致性和准确性. 指导教师签名:时间

摘要 本文首先给出了超松弛迭代法解线性方程组的基本概念,引进了关于超松弛迭代法收敛性判别的一些定理.再基于超松弛迭代法收敛性快慢与松弛因子的选择密切相关,本文给出了能准确快速地确定最优松弛因子的方法逐步搜索法和黄金分割法,并且写出了其Matlab 程序(附录),最后通过实例验证了方法的准确性,快速性. 关键词线性方程组;超松弛迭代;Matlab程序;松弛因子

Abstract This paper firstly introduces the basic concept of the super relaxation iteration method for solving linear equations, introduced on some criterion theorem Overrelaxation iterative convergence, gives a simple Matlab program super relaxation iteration (Appendix 1). Then Overrelaxation iterative convergence speed and relaxation factor is selected based on the close relation is proposed in this paper, the rapid and accurate method of determining the optimal relaxation factor of the direct search method and the golden section method, and write the Matlab program (Appendix 2), finally the method is accurate, rapid. Key word:Linear equations; Successive Over Relaxation; Matlab program; relaxation factor

超松弛迭代法求解两点边值问题(二)

超松弛迭代法求解两点边值问题(二) 摘要 本文是在matlab环境下熟悉的运用计算机编程语言并结合超松弛变量超松弛迭代法的理论基础对方程组求解。 首先,本文以微分方程边值问题为例,导出了离散化后线性方程组即稀疏线性方程组,转化对稀疏线性方程组求解问题。其次,用超松弛( SOR) 迭代法编写matlab程序,对产生的稀疏线性方程组进行迭代法求解。然后,分别改变松弛因子ω和分段数n的值,分析其收敛性和收敛速度,做出各个方面的分析和比较得到相关结论。最后,将超松弛迭代算法在计算机上运用matlab语言实现, 得出了一组与精确解较接近的数值解,并画图比较,验证逐次超松弛( SOR) 迭代法的精确性。 关键词:稀疏线性方程组;逐次超松弛迭代法;松弛因子;matlab编程 OVERRELAXATION ITERATIVE METHOD FOR SOLVING TWO-BOUNDARY VALUE PROBLEM(TWO) ABSTRACT This is familiar with the use of computer programming in matlab language and overrelaxation variable overrelaxation iteration method of the theoretical basis of solving equations. First of all, as an example, based on differential equation boundary value problem is derived after discretization is sparse system of linear equations of linear equations, the transformation of sparse linear equations to solve the problem. Second, use write matlab program over relaxation (SOR) iteration method, the iteration method solving sparse linear equations. Then, change the values of relaxation factor and section number n omega, analyzes its convergence and convergence speed, all aspects to make the analysis and comparison of related conclusions. Finally, the over-relaxation iteration algorithm is implemented on a computer using matlab language and obtained a set of numerical solution with exact solution is close to, and draw the comparison, verification of successive overrelaxation (SOR) the accuracy of iterative method. Key words: Sparse linear system of equations;Successive over relaxation iteration method; Relaxation factor;Matlab programming 目录 1 绪论 (1)

超松弛迭代法解线性方程组

设计题目:超松弛迭代法解线性方程组

摘要 本文是在matlab环境下熟悉的运用计算机编程语言并结合超松弛变量超松弛迭代法的理论基础对方程组求解。 首先,本文以微分方程边值问题为例,导出了离散化后线性方程组即稀疏线性方程组,转化对稀疏线性方程组求解问题。其次,用超松弛( SOR) 迭代法编写matlab程序,对产生的稀疏线性方程组进行迭代法求解。然后,分别改变松弛因子ω和分段数n的值,分析其收敛性和收敛速度,做出各个方面的分析和比较得到相关结论。最后,将超松弛迭代算法在计算机上运用matlab语言实现, 得出了一组与精确解较接近的数值解,并画图比较,验证逐次超松弛( SOR) 迭代法的精确性。 关键词:稀疏线性方程组逐次超松弛迭代法松弛因子 matlab编程

一、问题提出 考虑两点边值问题 ()()?????==<<=+. 11,00, 10,22y y a a dx dy dx y d ε 容易知道它的精确解为 .1111ax e e a y x +??? ? ?? ---= --εε 为了把微分方程离散,把[]1,0区间n 等分,令n h 1 =,ih x i =,,1,,2,1-=n i 得到差分方程 ,212 11a h y y h y y y i i i i i =-++-++-ε 简化为 ()(),2211ah y y h y h i i i =++-+-+εεε 从而离散后得到的线性方程组的系数矩阵为 ()()()()?? ??? ?? ? ????????+-++-++-++-=h h h h h h h A εεεεεεεεεε2222 对1=ε,4.0=a ,200=n ,分别用1=ω、5.0=ω和5.1=ω的超松弛迭代法求解线性方程组,要求有4位有效数字,然后比较与精确解的误差,探讨使超松弛迭代法收敛较快的ω取值,对结果进行分析。改变n ,讨论同样问题。 二、超松弛迭代法产生的背景 对从实际问题中得到维数相当大的线性代数方程组的求解仍然十分困难, 以 至使人们不能在允许的时间内用直接方法得到解, 因此, 客观上要求用新的方法 来解决大维数方程组的求解问题。 现有大多数迭代法不是对各类线性方程组都有收敛性, 在解题时, 要对原方程组矩阵作一根本的变换, 从而可能使条件数变坏, 也可能破坏了变换前后方程组的等价性, 以及丧失使原方程组的对称性等。探求新的有效的解题方法依然是迫切的任务。逐次超松弛(Successive Over Relaxation)迭代法是在高斯-赛德尔

实验_用超松弛迭代法求解接地金属槽内电位分布

用超松弛迭代法求解接地金属槽内电 位分布 一、实验内容: 用超松弛迭代法求解接地金属槽内电位的分布。 已知:cm a 4=,mm a h 104/== 给定边值如图所示。 给定初值:0)0(,=j i ? 误差范围:510-=ε 计算迭代次数,j i ,?分布。 =?= V 100 ? 0 =?0 =?

二.实验设计原理:有限差分法 α称为松弛因子。不同的α值,可以有不同的收敛速度,其值范围一般为1与2之间。通常α会有一个最佳值。最佳α的确定与具体问题有关,显然,如果α选择合适,超松弛迭代法收敛速度最快。

(1)划分网格:节点编号、坐标的形成。 (2)赋初值:随意,尽可能靠近真实解。比如本题u7=2.0,u8=7.5,u9=10。(3)边界条件:给电位值,找规律。 u1,u2,u3,u4,u6,u11,u12,u13,u14=0; u5,u10,u15=100。 (4)迭代 u7=(u2+u6+u8+u12)/4 ; u8=(u3+u7+u9+u13)/4 ; u9=(u4+u8+u10+u14)/4 。 (5)反复迭代,给定某一误差 有限差分法是基于差分原理的 一种数值计算法。其基本思想:将 场域离散为许多小网格,应用差分 原理,将求解连续函数?的泊松方 程的问题换为求解网格节点上?的 差分方程组的问题。 编程时已经考虑到题目要求, 所以直接将边值编入到程序中,这样可以省略输入,从而直接输入迭代因子进行求解,可以减少编程的难度。这次编程和以前不同的是将数组和正交函数

图像结合起来,所以在考虑输入和输出的时候会有一些难度,因为数组是上面是小的而图像上面越在上,代表坐标就越大。所以在输入和输出的时候要谨慎对待。 Editor中源代码为: 1.clc 2.clear 3.close all 4.hx=5; 5.hy=5; 6.v1=ones(hy,hx); 7.v1(hy,:)=ones(1,hx)*100; 8.v1(1,:)=ones(1,hx)*0 9.for i=1:hy; 10.v1(i,1)=0; 11.v1(i,hx)=0; 12.end 13.m=4;

超松弛同步系统的延时主令传送同步控制法

电气传动2003年第4期 超松弛同步系统的延时主令传送同步控制法 申辉阳1杨向宇1邹祖冰1邓维克2 1.华南理工大学2.鄙阳第二纺织机械厂研究所 摘要:文章提Hf了超松弛同步系统的一种吏用的同步控制力祛,无需增加硬件投资.采用延时主夸传送方法,提高系统的稳定性和自动化程度。 关键词;同步控制系统主令PI,(,F1Fo1P2/侈 ASynchronousControlMethodforSuperReIaxationSynchronous SystemwithTimeDelayCommunicatingHostCommand ShenHuiyangYa“gXia“gyuZ。uZubi“gDe“gWeike Abstract:Anutlllty8ynch…。…口n订o【method fo…p…elaxatlon5ynchronol…ystemjsp呻posed【rlLhl8pape,Ⅳhbtbemer^。d。ft珊e deby㈣蚴{ca¨增b。stcDmm蛐d,rb—y5rem…eDb—e5tabjij咿aDdi…i ofButomatlonwlthoutaddltlonalhardwar㈨oestment. Keywords;8ynchr。nouscontr01systemhostc。mmandPLCFIF0 超松弛同步系统在机械设备中相当常见,本文以化纤设备——烟用丝束后处理生产线为例,提出该同步系统的一种同步控制方法。该设备简单工艺流程图如图】所示,丝束经牵伸卷曲后送到烘燥定型机的传送带上,经过烘燥机的烘燥定型,再由摆丝设备牵引到摆丝机构。丝束在定型机传送带上成堆积状态,且牵伸卷曲速度和烘燥传送带速度独立可调。要保证整个生产线的同步,通常采用摆丝主令速独立的多步速调节法,现对该调节法加以简单说明:如图2所示,A,(),占3点各设1个光电开关,摆丝速度”。主令独立于牵伸速度u,和定型速度":.为了保证"。和口,,u。的同步,采用低速、正常速、高速3步速调节。当丝柬堆积末进入(A,B)段内,即:A,o,B均无信号时,u。由正常速自动切换到低速,直到0点有信号为止;当丝束堆积到(A,B)段内,即:光电开关A有信号,B无信号时,u。为正常速;当丝束越过B点,即;A,o,B均有信号时,V。自动切换到高速,直到。点无信号为止。这种传统控制法要求3步速大小拉开差距大,因此,调节幅度大,特别是正常速(ws主令速)靠手动设置,所以稳定性差,影响丝束质量,并且,当口-或”。改变时就要重新手动调节。s的主令速,给操作带来不便。 匾亟吁—匦匾丑悃 图1简单工艺流程图 摆丝遣度v1 嘲2隔步关系简瞄 2延时主令传送同步控制方法设计 2.1延时主令传送方法 传统控制方法的最大缺陷是:摆丝速度矾与牵伸速度”,、定型速度”。独立。如果能够从”。慨推出a。,作为摆丝主令速,就提高了整个系统的稳定性。其实,正常运行时,”。主要是由”,,。:决定的,。,是整线的主令速,可以在线设定,w。影响定型效果,也可以在线设定。如果口,改变,而”。不变,丝束在定型传送带上的堆积程度就会改变,但口。不能立即随V,改变,因为m要经过烘燥定型后才能反映到”。,用公式表示为 口j=u1U0一“) 其中,u“)为单位阶跃函数;“为延时时间,“=£/口z,式中,L为定型传送带的有效长度;这样就把”。与系统主令速矶联系起来,时序图如图3所示。 当然,仅仅延时传送”。还是不能满足要求,因为,若。。改变,”。不变,丝束在定型传送带上的堆 37—  万方数据

六、线性方程组超松弛迭代方法

1、用谱半径判别超松弛迭代法产生的迭代序列的脸敛散性。 function H=ddpbj(A,om) D=diag(diag(A));U=-triu(A,1); L=-tril(A,-1);iD=inv(D-om*L); B2=iD*(om*U+(1-om)*D); H=eig(B2);mH=norm(H,inf); if mH>=1 disp('谱半径不小于1,序列发散,谱半径和特征值如下:') else disp('谱半径小于1,序列收敛,谱半径和特征值如下:') end mH >> A=[5 1 -1 -2;2 8 1 3;1 -2 -4 -1;-1 3 2 7]; >> H=ddpbj(A,1.15) 谱半径小于1,序列收敛,谱半径和特征值如下: mH = 0.1596 H = 0.1049 + 0.1203i 0.1049 - 0.1203i -0.1295 + 0.0556i -0.1295 - 0.0556i >> H=ddpbj(A,5) 谱半径不小于1,序列发散,谱半径和特征值如下: mH = 14.1082 H = -14.1082 -2.5107 0.5996 + 2.6206i 0.5996 - 2.6206i 2、超松弛迭代法的程序。 function X=sordd(A,b,X0,P,om,wucha,max1) D=diag(diag(A));U=-triu(A,1);L=-tril(A,-1);dD=det(D); if dD==0 disp('因为对角矩阵D奇异,所以此方程组无解。') else disp('因为对角矩阵D非奇异,所以此方程组有解。') iD=inv(D-om*L);B2=iD*((1-om)*D+om*U);f2=om*iD*b;jX=A\b;X=X0; [n m]=size(A); for k=1:max1 X1=B2*X+f2;djwcX=norm(X1-X,P); xdwcX=djwcX/(norm(X,P)+eps); if (djwcX

超松弛迭代法方法的应用

CENTRAL SOUTH UNIVERSITY 数值分析实验报告

超松弛迭代法的应用 一、问题背景 在科学计算和工程设计中,经常会遇到求解线性方程组的问题,而快速精确求解一直是我们追求的目标,随着计算机技术的发展,我们可以借助计算机使用很多方法来帮助求解,如直接法等,但通常都只能适用于经过有限步运算能求得解的方程,对于方程数和未知数都很多的方程组,计算量往往相当大,因而人们在寻求其他求解方法的时候,发现了迭代法的巨大优点,从最初的Jacobi 迭代法到Gauss-Seidel 迭代法,计算过程变得快速简洁。在Guass-Seidel 迭代法的基础上,人们发现迭代—松弛—再迭代的方法,能更加减少计算步骤,极大地缩短计算时间,在此基础上,人们进一步发现超松弛迭代法的收敛速度最快,而且超松弛迭代法具有计算公式简单,编制程序容易等突出优点。通过选择合适恰当的松弛因子ω能直接控制算法的收敛性和收敛速度。 二、数学模型 一般而言,因Jacobi 迭代收敛速度不够快,所以在工程中用的不是太多。在 Jacobi 迭代手链速度很慢的情况下,通常Guass-Seidel 也不会很快。因此,可以对Guass-Seidel 做修改,提高收敛速度,这就是这里要介绍的超松弛迭代法。 三、算法及流程 在Guass-Seidel 中迭代格式为 ()()()g U L k k +X +X =X ++11k 可以将迭代格式改写为 ()()?X +X =X +k 1k 其中 ()()X ?+X +X =?X +g U L k 1k 如果在修正项上加上一个参数ω,便使得松弛迭代法公式 ()()()()()()() g U L k k k k +X +X +X -=?X +X =X ++11k 1ωωω 上式可以改写为 ()() ()[]()()L D U D L D k k ωωωωω-+X +--=X -+11 1 当1=ω时候,就退化为Guass-Seidel 迭代法;1>ω时,称为逐次超松弛迭代法;1<ω时,称为逐次低松弛迭代法。通常,统称为逐次松弛迭代法。 MATLAB 实现代码: 打开编辑器,输入以下语句并保存为Fsor.m 文件。 function [x,k]=Fsor(A,b,x0,w,tol) max=300 ; if (w<=0||w >=2)

超松弛迭代法求解接地金属槽内电位分布

实验一用超松弛迭代法求解接地金属槽 内电位分布 一、实验内容: 试用超松弛迭代法求解接地金属槽内电位的分布。 已知:cm a 4=,mm a h 104/== 给定边值如图所示。 给定初值:0)0(,=j i ? 误差范围:510-=ε 计算迭代次数,j i ,?分布。

一.实验思路 由边界条件用泊松方程的五点差分格式求得中央点的点位。再以所得点及边界再次利用泊松方程的五点差分格式求出另四个点,依照此方法求出其余点的电位分布。 用最佳收敛因子的经验公式计算收敛因子。 利用超松弛迭代法进行差分方程的求解,当遇到边界是采用边界值或者边界差分格式。直到所有节点电位满足误差条件。 二.实验设计原理:有限差分法 有限差分法(Finite Differential Method)是基于差分原理的一种数值计算法。其基本思想:将场域离散为许多小网格,应用差分原理,将求解连续函数?的泊松方程的问题换为求解网格节点上?的差分方程组的问题。 编程时将边值编入到程序中,这样可以省略输入,从而直接输入迭代因子进行求解,可以减少编程的难度。 迭代时所用公式是和书上一样,为 a[i][j]=b[i][j]+w/4*(b[i+1][j]+b[i][j+1]+a[i][ j-1]+a[i-1][j]-4*b[i][j]); 其中a代表k+1,而b代表k。

三、程序运行界面及结果 四.源程序代码 #include #include #include using namespace std; classoverrei //over-relaxation iterative method { private: intm,n; doublex,e; double **p,**q; public:

用超松弛迭代法求解接地金属槽内电位分布

实验一用超松弛迭代法求解接地金属槽内电位分布一、实验原理(有限差分法介绍) 有限差分法(Finite Differential Method)是基于差分原理的一种数值计算法。其基本思想:将场域离散为许多小网格,应用差分原理,将求解连续函数?的泊松方程的问题转换为求解网格节点上?的差分方程组的问题。 二.实验内容与要求 1. 试用超松弛迭代法求解接地金属槽内电位的分布。 已知:,cma4=mmah104/== 给定边值如图所示。 给定初值:0)0(,=ji? 误差范围:510?=ε 计算迭代次数,ji,?分布。 2、按对称场差分格式求解电位的分布(即求出D域的场分布,由对称性可得全域的场分布)已知,cma4=mmh14040== 给定边值:如图1示 给定初值)()(.1j401001jp12ji?=??=??? 误差范围: 510?=ε 图1 接地金属槽内半场域的网格剖分 计算:1)迭代次数,Nji,?; 2)按电位差10=Δ?画出槽中等位线分布图。 图1.7 接地金属槽内网格0=?=V 100 ?0=?0=? 电磁场数值计算与仿真实验指导书6 3、分片场域的静电场分析(选做) 用有限差分法计算区域内的电位、电场强度,绘制等位线。并计算区域的电容,分析单元的大小对电容计算结果的影响,给出曲线。100伏0伏εr1=2 εr2=4εr3=1εr4=3电磁场数值计算与仿真实验指导书7 三、实验程序内容 程序一: #include

#include void main() {double m[5][5],n[5][5]; int N=0,b=1; int i,j; double e=0.00001; double a=2/(1+sin(3.1415926/4)); for(i=0;i<=4;i++) for(j=0;j<=4;j++) {m[i][j]=0; n[i][j]=0; } m[1][4]=100; m[2][4]=100; m[3][4]=100; n[1][4]= m[1][4]; n[2][4]= m[1][4]; n[3][4]= m[1][4]; for(j=4;j>=0;j--) {for(i=0;i<=4;i++) cout<<"m["<=e) b=1; n[i][j]=m[i][j]; }

(完整版)超松弛迭代法

7.3逐次超松弛迭代法 7.3.1 SOR迭代公式 逐次超松弛(Successive Over Relaxation)迭代法,简称SOR迭代法,它是在GS法基础上为提高收敛速度,采用加权平均而得到的新算法,设解方程(7.1.3)的GS法记为 (7.3.1) 再由与加权平均得 这里ω>0称为松弛参数,将(7.3.1)代入则得 (7.3.2) 称为SOR迭代法,[WTBX]ω>0称为松弛因子,当ω=1时(7.3.2)即为GS法,将(7.3.2)写成矩阵形式,则得 即 于是得SOR迭代的矩阵表示 (7.3.3) 其中 (7.3.4) 按(7.1.7)分解,有. 例7.7给定方程组 精确解,用SOR法求解,分别取ω=1及ω=125.

解用SOR迭代公式(7.3.2)可得 取,迭代7次后分别为 若要精确到小数后7位,对ω=1(即GS法)需迭代34次,而对ω=1.25的SOR法,只需迭代14次.它表明松弛因子ω选择的好坏,对收敛速度影响很大. 7.3.2 SOR迭代法收敛性 根据迭代法收敛性定理,SOR法收敛的充分必要条件为,收敛的充分条件为,但要计算比较复杂,通常都不用此结论,而直接根据方程组的系数矩阵A判断SOR迭代收敛性,下面先给出收敛必要条件. 定理3.1设,则解方程的SOR迭代法收敛的必要条件是0<ω<2. 证明由SOR迭代矩阵的表达式(7.3.4) 于是 另一方面,设的特征值为,由特征根性质,有 若SOR法收敛,则,由,则得0<ω<2.证毕.

定理3.2若对称正定,且0<ω<2,则解Ax=b的SOR迭代法(7.3.3)对迭代收敛. 证明设的特征值为(可能是复数),对应特征向量x≠0,由(7.3.4)得 因为实对称矩阵,故,上式两边与x作内积,得 (7.3.5) 因A正定,故D也正定,记.又记,,由复内积性质得 于是由(7.3.5)有 由于A正定及0<ω<2,故 于是 注:当ω=1时SOR法即为GS法,故GS法也收敛,此即为定理2.5(1)的结论. 对于SOR迭代法,松弛因子的选择对收敛速度影响较大,关于最优松弛因子研究较为复杂,且已有不少理论结果.下面只给出一种简单且便于使用的结论 定理3.3设为对称正定的三对角矩阵,是解方程(7.1.3)的J法迭代矩阵,若,记,则SOR法的最优松弛因子为 (7.3.6) 且 (7.3.7) 根据定理,,如图7-1所示.由(7.3.7)可知,当ω=1, 时,收敛速度为

超松弛迭代法求解泊松方程

计算流作业 1. 题目 对1512cm cm ?的矩形平板,假设板表面绝热,仅在四条边有热流通过, 且导热系数为常数。设一条15cm 边温度保持为100?,其余三条边温度为20?。 计算板内稳定的温度场并绘出等温线。采用迭代法计算时,采用不同的松弛 因子,并比较收敛速度,观察在不同的网格尺度下,最佳松弛因子的变化。 2. 理论基础 超松弛SOR 迭代法迭代公式为: 11212,,1,1,,1,1,2(1)(())2(1)m m m m m m i j i j i j i j i j i j i j x ω ψωψψψβψψζβ++++-+-=-++++-+ 3. 结果分析 计算时取,x y 方向网格数分别为(4,5),(8,10),(32,40),松弛因子取值范围 为1.0,1.0475,1.095, 1.95。控制固定余量为510- 3.1 温度场 网格尺度为0.5dx dy cm ==时,最佳松弛因子下的平板温度场分布结果基本 上是对称的。

3.2最佳松弛因子-网格尺度 显然,随着网格尺度增加,最佳松弛因子逐渐减小,基本上呈现指数规律。 4.附件 !初始温度分布 subroutine initial(tt_in,nx_in,ny_in) implicit none integer::i,j integer,intent(in)::nx_in,ny_in !横纵网格数 real(kind=8),dimension(0:nx_in,0:ny_in)::tt_in !温度矩阵 tt_in=0. tt_in(0,0:ny_in)=20. tt_in(nx_in,0:ny_in)=100. tt_in(1:(nx_in-1),0)=20. tt_in(1:(nx_in-1),ny_in)=20. do i=1,nx_in-1 do j=1,ny_in-1 tt_in(i,j)=60. end do end do end subroutine initial !超松弛迭代法 subroutine sor(tt_sor,nx_sor,ny_sor,ome,be)

MATLAB实现迭代法最佳松弛因子的选取

迭代法最佳松弛因子的选取 一、问题提出: 针对矩阵430341014A ?? ??=-?? ??-?? ,b=[24;30;-24],用SOR 迭代求解。并选出最佳松弛因子。 理论分析 1.24ω==≈。做出()L ωρ关于ω函 数的图像。 二、理论基础 选取分裂矩阵M 为带参数的下三角矩阵)(1 wL D w M -=, 其中w>0为可选择的松弛因子. 于是,由 ?????+=+f Bx x x k k ) ()1()0() (初始向量 (k=0,1,…,)可构造一个迭代法,其迭代矩阵为A wL D w I L w 1)(---≡ =).)1(()(1wU D w wL D +--- 从而得到解Ax=b 的主次逐次超松弛迭代法. 解Ax=b 的SOR 方法为 ?????+=+f Bx x x k k ) ()1()0() (初始向量 (k=0,1,…,) (1) 其中 w L =).)1(()(1wU D w wL D +---(2) b wL D w f 1)(--= 下面给出解Ax=b 的SOR 迭代法的分量计算公式.记 ,),...,,...,() () () (1)(T k n k i k k x x x x = 由(1)式可得 ,))1(()()()1(wb x wU D w x wL D k k ++-==-+ ).()()()1()()1(k k k k k Dx Ux Lx b w Dx Dx -+++=++ (3) 由此,得到解Ax=b 的SOR 方法的计算公式

?????????==--+==∑∑-==++.),1,0;,...,2,1(/)(,),...,(11) (1)()1()0()0(1)0(为松弛因子 w k n i a x a x a b w x x x x x ii i j n i j k j ij k j ij i k i k i T n (4) 或 ?? ?? ? ??????==--=??+==∑∑-==++.,...),1,0;,...,2,1()/(,,),...,(.11)()1() () 1()0()0(1)0(为松弛因子w k n i a x a x a b w x x x x x x x i j n i j ii k j ij k j ij i i i k i k i T n (5) ※ 若要求选取出最佳松弛因子,则有两种方法: ⑴、 给出w 的最佳范围,当取不同的w 值时,会求出不同的谱半径R 的值,然后判断出值最小的谱半径。那么这个最小的谱半径所对应的w ,即为所求最佳松弛因子。 ⑵、 给出w 的最佳范围,当取不同的w 值时,由(2)式进行迭代,看它们在相同精度范围内的迭代次数,找出迭代次数最低的那一个,其所应用的w 即为最佳松弛因子。 三、实验内容: 从表格中可以看出,迭代次数随着松弛因子的增长而呈现先减后增的趋势,当谱半径最小时,其迭代次数最小。则表示出谱半径最小时,其松弛因子为最佳松弛因子。

相关主题
文本预览
相关文档 最新文档