求解隐式差分方程的加速迭代并行算法

求解隐式差分方程的加速迭代并行算法
求解隐式差分方程的加速迭代并行算法

迭代法的加速

6.5 迭代法的加速 一、教学目标及基本要求 通过对本节的学习,使学生掌握方程求根迭代法的加速。 二、教学内容及学时分配 本章主要介绍线性方程求根的迭代法的加速方法。要求 1.了解数值分析的研究对象、掌握误差及有关概念。 2.正确理解使用数值方法求方程的解的基本思想、数学原理、算法设计。 3.了解插值是数值逼近的重要方法之一,正确理解每一种算法的基本思想、计算公式、算法设计、程序框图设计和源程序。 4.掌握数值积分的数学原理和程序设计方法。 5.能够使用数值方法解决一阶常微分方程的初值问题。 6.理解和掌握使用数值方法对线性方程组求解的算法设计。 三、教学重点难点 1.教学重点:非线性方程迭代收敛性与迭代加速、牛顿法。 2. 教学难点:迭代的收敛性。 四、教学中应注意的问题 多媒体课堂教学为主。适当提问,加深学生对概念的理解,迭代加速的算法实现。 五、教案正文 6.1 迭代公式的加工 迭代过程收敛缓慢,计算量将很大,需要进行加速。 设k x 是根*x 的某个近似值,用迭代公式校正一次得()k k x x ?=+1,假设) ('x ?

在所考察得范围内变化不大,其估计值为L ,则有: k k k k x L L x L x x x L x x ---≈?-≈-++111)(1**1* 有迭代公式k k k x L L x L x ---=++11111 ,是比1+k x 更好的近似根。这样加工后的计算过程为: 迭代()k k x x ?=+1 改进k k k x L L x L x ---= ++11111 合并的])([111k k k Lx x L x --=+? 例3 P133 6.2 埃特金算法 上述加速方法含有导数()x '?,不便于计算。设将迭代值()k k x x ?=+1再迭代一次,又得() 11~++=k k x x ?,由于)(~1*1*++-≈-k k x x L x x 又)(*1*k k x x L x x -≈-+,消去L 得 k k k k k k k k k k x x x x x x x x x x x x x x x +---≈?--≈--++++++++112 111*1**1*1*2~)~(~~ 计算过程如下: 迭代()k k x x ?=+1 迭代()11~++=k k x x ? 改进k k k k k k k x x x x x x x +---=++++++11211112~)~(~ 小结:这节课我们主要介绍了线性方程组迭代法加速的基本思想及其常用的几种迭代方法。要求大家掌握埃特金算法及其收敛速度,收敛的阶。 作业:课后作业10-13

十、解非线性方程(组)的迭代法和加速法

一、一般迭代法求解非线性方程组。 function [k,piancha,xdpiancha,xk]=diedai1(x0,k) x(1)=x0; for i=1:k x(i+1)=fun1(x(i)); piancha=abs(x(i+1)-x(i)); xdpiancha=piancha/(abs(x(i+1))+eps); i=i+1;xk=x(i); [(i-1) piancha xdpiancha xk] end if (piancha>1)&(xdpiancha>0.5)&(k>3) disp('此迭代序列发散,请重新输入新的迭代公式') return; end if (piancha<0.001)&(xdpiancha<0.0000005)&(k>3) disp('此迭代序列收敛,且收敛速度较快') return; end p=[(i-1) piancha xdpiancha xk]'; 1、function y=fun1(x) y=(10-x.^2)./2 >> [k,piancha,xdpiancha,xk]=diedai1(5,10) 此迭代序列发散,请重新输入新的迭代公式 k = 10 piancha = 2.4484e+271 xdpiancha = 1 xk = -2.4484e+271 2、function y=fun1(x) y=10./(x+2) >> [k,piancha,xdpiancha,xk]=diedai1(5,25) 此迭代序列收敛,且收敛速度较快 k = 25 piancha = 9.5676e-007 xdpiancha = 4.1300e-007 xk = 2.3166 二、第二种迭代法。

差分方程模型的稳定性分析分析解析

分类号 学号密题 目 (中、英文) 作者姓名 指导教师 学科门类 提交论文日期专业名称 成绩评定 数学与应用数学 理 学

咸阳师范学院2016届本科毕业设计(论文) 摘要 微分方程是研究数学的一个重要分支,是本科期间我们必须掌握的基本知识,而本文我们研究的是一个递推关系式,也称差分方程。它是一种离散化的微分方程,是利用描述客观事物的数量关系的一种重要的数学思想来建立模型的。而利用差分方程建立模型解决问题的方法在生活中随处可见,比如在自由竞争市场经济中的蛛网模型是利用差分方程分析经济何时趋于稳定,又如金融问题中的养老保险也是利用差分方程来分析保险品种的实际投资价值。而差分方程模型是描述客观世界中随离散时间变量演化规律的有力建模工具。本文首先给出差分方程的定义以及求解过程并给出判断差分方程稳定性的判断方法,随后以同一环境下的羊群和草群的相互作用为模型分析其种群的数量变化过程,进而研究线性差分方程的稳定性,最后用一个实际模型来更好的说明差分方程的稳定性对解决实际问题有非常大的帮助。 关键字:差分方程;差分方程模型;平衡点;稳定性

差分方程模型的稳定性分析 Abstract Difference equation is also called recursive equation, it is to describe the relationship between the number of objective things of a kind of important mathematical model. And the use of the differential equation model of the solution can be found everywhere in life. Such as cobweb model in the free market economy is to use the difference equation analysis when the economic stability, and as the financial problem of pension insurance breed difference equation is used to analysis the actual investment value. This paper gives the judge the stability of difference equation to judge method, then in the same group of sheep and grass under the environment of interaction analysis for the model a process, the number of the population change, in turn, study the stability of the linear difference equation. In the end, one practical model to better explain the stability of difference equation. Key words:Difference equation;Difference equation model ; Balance point; Stability

差分方程的解法分析及MATLAB实现(程序)

差分方程的解法分析及MATLAB 实现(程序) 摘自:张登奇,彭仕玉.差分方程的解法分析及其MATLAB 实现[J]. 湖南理工学院学报.2014(03) 引言 线性常系数差分方程是描述线性时不变离散时间系统的数学模型,求解差分方程是分析离散时间系统的重要内容.在《信号与系统》课程中介绍的求解方法主要有迭代法、时域经典法、双零法和变换域 法[1]. 1 迭代法 例1 已知离散系统的差分方程为)1(3 1)()2(81)1(43)(-+=-+--n x n x n y n y n y ,激励信号为)()4 3()(n u n x n =,初始状态为21)2(4)1(=-=-y y ,.求系统响应. 根据激励信号和初始状态,手工依次迭代可算出24 59)1(,25)0(==y y . 利用MATLAB 中的filter 函数实现迭代过程的m 程序如下: clc;clear;format compact; a=[1,-3/4,1/8],b=[1,1/3,0], %输入差分方程系数向量,不足补0对齐 n=0:10;xn=(3/4).^n, %输入激励信号 zx=[0,0],zy=[4,12], %输入初始状态 zi=filtic(b,a,zy,zx),%计算等效初始条件 [yn,zf]=filter(b,a,xn,zi),%迭代计算输出和后段等效初始条件 2 时域经典法 用时域经典法求解差分方程:先求齐次解;再将激励信号代入方程右端化简得自由项,根据自由项形 式求特解;然后根据边界条件求完全解[3].用时域经典法求解例1的基本步骤如下. (1)求齐次解.特征方程为081432=+-αα,可算出4 1 , 2121==αα.高阶特征根可用MATLAB 的roots 函数计算.齐次解为. 0 , )4 1()21()(21≥+=n C C n y n n h (2)求方程的特解.将)()4 3()(n u n x n =代入差分方程右端得自由项为 ?????≥?==-?+-1,)4 3(9130 ,1)1()43(31)()43(1n n n u n u n n n 当1≥n 时,特解可设为n p D n y )4 3()(=,代入差分方程求得213=D . (3)利用边界条件求完全解.当n =0时迭代求出25)0(=y ,当n ≥1时,完全解的形式为 ,)4 3(213 )41()21()(21n n n C C n y ?++=选择求完全解系数的边界条件可参考文[4]选)1(),0(-y y .根据边界条件求得35,31721=-=C C .注意完全解的表达式只适于特解成立的n 取值范围,其他点要用 )(n δ及其延迟表示,如果其值符合表达式则可合并处理.差分方程的完全解为

数值分析实习作业不同迭代法求解(简单迭代法,艾特肯加速迭代法,牛顿法弦割法)

实习题六:用简单迭代法,艾特肯加速迭代法,牛顿法弦割法求解方程1-x-sin(x) = 0在[0,1]上的根。 简单迭代法和艾特肯加速法求解方程1-x-sin(x) = 0在[0,1]上的根。 主程序: %利用简单迭代法求解方程1-x-sin(x) = 0在[0,1]上的根 clear clc format long f = @f1; a = 0; b = 1; eps = 0.5*10^(-4); [x,time] = iteration(f,a,b,eps); disp('利用简单迭代法求解方程1-x-sin(x) = 0在[0,1]上的根') disp('方程1-x-sinx = 0的根是 x = ') disp(x) disp('迭代次数') disp (time) %% %利用艾特肯加速法求解方程1-x-sin(x) = 0在[0,1]上的根 [x,time] = iteration_aitken(f,a,b,eps); disp('利用艾特肯加速法求解方程1-x-sin(x) = 0的[0,1]上的根') disp('方程1-x-sinx = 0的根是 x = ') disp(x) disp('迭代次数') disp (time) 简单迭代法函数: function [y,time] = iteration(f,a,b,eps) x0 = (a+b)/2; D = 1; time = 0; while abs(D)>=eps x1 = feval(f,x0); D = x1-x0; x0 = x1; time = time+1; end y = x0; 艾特肯加速法函数 function [y,time] = iteration_aitken(f,a,b,eps) x0 = (a+b)/2; D = 1; t = 0; while abs(D)>=eps

方程的加速迭代法

2013-2014(1)专业课程实践论文题目:方程的加速迭代方法

一、算法理论 Aitken 加速迭代算法基本原理: 对于收敛的迭代过程,只要迭代足够多次,就可以使结果达到任意的精度。但有时迭代过程收敛缓慢,从而使计算量变得很大,因此,迭代过程的加速是个重要的过程。 设0x 是跟*x 的某个预测值,只迭代公式校正一次)(01x f x =,而由微分中值定理有:)x (x (t)f x x **-?'=-01(其中t 介于*x 与0x 之间) 。 假定()x f '改变不大,近似的取某个近似值L ,则由)(*0*1x x L x x -?≈-得到 L x L L x x -?- -= 1101 *,可以期望按上式右端求得 ()L x x L x L L x L x x --?+ =-?--= 11101101 2是比1x 更好的近似值,将每得到一次改进值算做一步,并用k x '和k x 分别表示第K 步的校正值和改进值,则加速迭代计算方案可表述如下: 校正:1+'k x ()k x f = 改进:=+1k x ()L x x L x k k k --'?+'++111 然而上述加速公式有个缺点,由于其中含有倒数()x f '的有关信息L ,实际使用不便。 仍设已知*x 的某个猜测值为0x ,将校正值()01x f x =,再校正一次,又得 ()12x f x =。由于≈-*2x x ()*1L x x -?将它与式 = *x L x L L x -?- -1101 联立,消去未知L ,然后有 =*x ()2 102 1222x x x x x x +?--- 这样构造出的改进公式确定不再含有关于导数的

差分方程的基本知识(3)

差分方程模型的理论和方法 1、差分方程:差分方程反映的是关于离散变量的取值与变化规律。通过建立一个或几个离散变量取值所满足的平衡关系,从而建立差分方程。 差分方程就是针对要解决的目标,引入系统或过程中的离散变量,根据实际背景的规律、性质、平衡关系,建立离散变量所满足的平衡关系等式,从而建立差分方程。通过求出和分析方程的解,或者分析得到方程解的特别性质(平衡性、稳定性、渐近性、振动性、周期性等),从而把握这个离散变量的变化过程的规律,进一步再结合其他分析,得到原问题的解。 2、应用:差分方程模型有着广泛的应用。实际上,连续变量可以用离散变量来近似和逼近,从而微分方程模型就可以近似于某个差分方程模型。差分方程模型有着非常广泛的实际背景。在经济金融保险领域、生物种群的数量结构规律分析、疾病和病虫害的控制与防治、遗传规律的研究等许许多多的方面都有着非常重要的作用。可以这样讲,只要牵涉到关于变量的规律、性质,就可以适当地用差分方程模型来表现与分析求解。 3、差分方程建模:在实际建立差分方程模型时,往往要将变化过程进行划分,划分成若干时段,根据要解决问题的目标,对每个时段引入相应的变量或向量,然后通过适当假设,根据事物系统的实际变化规律和数量相互关系,建立每两个相邻时段或几个相邻时段或者相隔某几个时段的量之间的变化规律和运算关系(即用相应设定的变量进行四则运算或基本初等函数运算或取最运算等)等式(可以多个并且应当充分全面反映所有可能的关系),从而建立起差分方程。或者对事物系统进行划分,划分成若干子系统,在每个子系统中引入恰当的变量或向量,然后分析建立起子过程间的这种量的关系等式,从而建立起差分方程。在这里,过程时段或子系统的划分方式是非常非常重要的,应当结合已有的信息和分析条件,从多种可选方式中挑选易于分析、针对性强的划分,同时,对划分后的时段或子过程,引入哪些变量或向量都是至关重要的,要仔细分析、选择,尽量扩大对过程或系统的数量感知范围,包括对已有的、已知的若干量进行结合运算、取最运算等处理方式,目的是建立起简洁、深刻、易于求解分析的差分方程。在后面我们所举的实际例子中,这方面的内容应当重点体会。

差分方程求解

例题:已知差分方程51 (2)(1)()(+1)+0.5()66 x k x k x k r k r k +-++=,其中r (k )=1,k ≥0,x (0)=1, x (1)=2。 (1) 试由迭代法求其全解的前5项; (2) 分别由古典法求其零输入解、零状态解,以及全解; (3) 用Z 变换法求解差分方程。 解:注:解题过程中出现的下标“zi ”和“zs ”分别表示零输入条件和零状态条件。 1. 迭代法 题目中给出的条件仅仅是零输入初始条件,进行迭代求解时的初始条件应该是全解初始条件。 (1) 零输入初始条件 本题已给出零输入时的两个初始条件x zi (0)=1,x zi (1)=2。 (2) 零状态初始条件 取k =-2时,则51 (0)(1)(2)(1)0.5(2)66x x x r r --+-=-+-,得x zs (0)=0; 取k =-1 时,则51 (1)(0)(1)(0)0.5(1)66 x x x r r -+-=+-,求得x zs (1)=1。 (3) 全解初始条件 x (0)= x zi (0)+ x zs (0)=1; x (1)= x zi (1)+ x zs (1)=3。 (4) 根据求出的全解x (0)和x (1),利用迭代法求解 取k =0时,则51(2)(1)(0)(1)0.5(0)66x x x r r -+=+,求得23(2)6x =; 取k =1时,则51(3)(2)(1)(2)0.5(1)66x x x r r -+=+,求得151 (3)36x =; 取k =2时,则51(4)(3)(2)(3)0.5(2)66x x x r r -+=+,求得941 (4)216 x =。 2. 古典法 (1) 零输入解 令输入为零,则得齐次方程 51 (2)(1)()066 x k x k x k +-++= (a) 根据差分方程定义的算子()()n d x k x k n =+,可得它的特征方程251 066 d d -+= 求得特征根为: 112d = ,21 3 d =

差分方程模型的理论和方法

第九章 差分方程模型的理论和方法 引言 1、差分方程: 差分方程反映的是关于离散变量的取值与变化规律。通过建立一个或几个离散变量取值所满足的平衡关系,从而建立差分方程。 差分方程就是针对要解决的目标,引入系统或过程中的离散变量,根据实际背景的规律、性质、平衡关系,建立离散变量所满足的平衡关系等式,从而建立差分方程。通过求出和分析方程的解,或者分析得到方程解的 特别性质(平衡性、稳定性、渐近性、振动性、周期性等),从而把握这个离散变量的变化过程的规律,进一步再结合其他分析,得到原问题的解。 2、应用:差分方程模型有着广泛的应用。实际上,连续变量可以用离散变量来近似和逼近,从而微分方程模型就可以近似于某个差分方程模型。差分方程模型有着非常广泛的实际背景。在经济金融保险领域、生物种群的数量结构规律分析、疾病和病虫害的控制与防治、遗传规律的研究等许许多多的方面都有着非常重要的作用。可以这样讲,只要牵涉到关于变量的规律、性质,就可以适当地用差分方程模型来表现与分析求解。 3、差分方程建模: 在实际建立差分方程模型时,往往要将变化过程进行划分,划分成若干时段,根据要解决问题的目标,对每个时段引入相应的变量或向量,然后通过适当假设,根据事物系统的实际变化规律和数量相互关系,建立每两个相邻时段或几个相邻时段或者相隔某几个时段的量之间的变化规律和运算关系(即用相应设定的变量进行四则运算或基本初等函数运算或取最运算等)等式(可以多个并且应当充分全面反映所有可能的关系),从而 建立起差分方程。或者对事物系统进行划分,划分成若干子系统,在每个子系统中引入恰当的变量或向量,然后分析建立起子过程间的这种量的关系等式,从而建立起差分方程。在这里,过程时段或子系统的划分方式是非常非常重要的,应当结合已有的信息和分析条件,从多种可选方式中挑选易于分析、针对性强的划分,同时,对划分后的时段或子过程,引入哪些变量或向量都是至关重要的,要仔细分析、选择,尽量扩大对过程或系统的数量感知范围,包括对已有的、已知的若干量进行结合运算、取最运算等处理方式,目的是建立起简洁、深刻、易于求解分析的差分方程。在后面我们所举的实际例子中,这方面的内容应当重点体会。 差分方程模型作为一种重要的数学模型,对它的应用也应当遵从一般的数学建模的理论与方法原则。同时注意与其它数学模型方法结合起来使用,因为一方面建立差分方程模型所用的数量、等式关系的建立都需要其他的数学分析方式来进行;另一方面,由差分方程获得的结果有可以进一步进行优化分析、满意度分析、分类分析、相关分析等等。 第一节 差分方程的基本知识 一、 基本概念 1、 差分算子 设数列{}n x ,定义差分算子n n n x x x -=??+1:为n x 在n 处的向前差分。 而1--=?n n n x x x 为n x 在n 处的向后差分。 以后我们都是指向前差分。 可见n x ?是n 的函数。从而可以进一步定义n x ?的差分: n n x x 2)(?=?? 称之为在n 处的二阶差分,它反映的是的增量的增量。 类似可定义在n 处的k 阶差分为:

迭代法

题目:Newton-Raphson 迭代法 (1)计算原理 (2)编出计算机程序 (3)给出算例(任意题型) (1)计算原理: 牛顿-拉夫森(Newton-Raphson)迭代法也称为牛顿迭代法,它是数值分析中最重要的方法之一,它不仅适用于方程或方程组的求解,还常用于微分方程和积分方程求解。 用迭代法解非线性方程时,如何构造迭代函数是非常重要的,那么怎样构造的迭代函数才能保证迭代法收敛呢?牛顿迭代法就是常用的方法之一,其迭代格式的来源大概有以下几种方式: 1设()[]2,f x C a b ∈,对()f x 在点[]0,x a b ∈,作泰勒展开: 略去二次项,得到()f x 的线性近似式:()()()()000f x f x f x x x '≈+- 由此得到方程()0f x =的近似根(假定()00f x '≠),() () 000f x x x f x =-' 即可构造出迭代格式(假定()00f x '≠):() () 1k k k k f x x x f x +=- ' 这就是牛顿迭代公式,若得到的序列{}k x 收敛于α,则α就是非线性方程的根。 2 牛顿迭代法 牛顿切线法,这是由于()f x 的线性化近似函数()()()()000l x f x f x x x '≈+-是曲线()y f x =过点()()00,x f x 的切线而得名的,求()f x 的零点代之以求() l x !2))((''))((')()(2 0000x x f x x x f x f x f -+ -+= ξ

的零点,即切线与x 轴交点的横坐标,如左图所示,这就是牛顿切线法的几何解释。实际上,牛顿迭代法也可以从几何意义上推出。利用牛顿迭代公式,由 k x 得到1k x +,从几何图形上看,就是过点()(),k k x f x 作函数()f x 的切线k l ,切线k l 与x 轴的交点就是1k x +,所以有()() 1 k k k k f x f x x x +'=-,整理后也能得出牛顿迭 代公式: 3 要保证迭代法收敛,不管非线性方程()0f x =的形式如何,总可以构造: 作为方程求解的迭代函数。因为: 而且 在根附近越小,其局部收敛速度越快,故可令: 若0(即根不是0的重根),则由得: , 因此可令 ,则也可以得出迭代公式: 。 4 迭代法的基本思想是将方程改写成等价的迭代形式,但随之而来的问题却是迭代公式不一定收敛,或者收敛的速度较慢。运用前述加速技巧,对于简单迭代过程 ,其加速公式具有形式: ,其中 记,上面两式可以合并写成: 这种迭代公式称作简单的牛顿公式,其相应的迭代函数是: 。 需要注意的是,由于是的估计值,若取,则实际上便是的估计值。假设,则可以用代替上式中的, 就可得到牛顿法的迭代公式: 。 )(')(1k k k k x f x f x x - =+)()()(x f x k x x x -==?)0)((≠x k )(')()()('1)('x f x k x f x k x --=?) ('x ?α0)('=α?≠)('αf α=)(x f 0)('=α?)('1 )(ααf k = )('1 )(x f x k = )(')(1k k k k x f x f x x - =+0)(=x f )(x x ?=)(1n n n x f x x +=+θθ?--= +1)(1n n n x x x ) (111n n n x x x --+=++θθ )(1 n n x x ?=+1-=θL L x f x x n n n )(1- =+L x f x x )()(- =?L )('x ?)()(x f x x +=?)('x ?)('x f 0)('≠x f )('x f L )(')(1n n n n x f x f x x - =+

用matlab实现线性常系数差分方程的求解

数字信号处理课程设计 题目:试实现线性常系数差分方程的求解 学院: 专业: 班级: 学号: 组员: 指导教师:

题目:用Matlab 实现线性常系数差分方程求解 一. 设计要求 1. 掌握线性常系数差分方程的求解 2. 熟练掌握Matlab 基本操作和各类函数调用 3. 结合Matlab 实现线性常系数差分方程的求解 二.设计原理 1.差分与差分方程 与连续时间信号的微分及积分运算相对应,离散时间信号有差分及序列求和运算。设有序列f(k),则称…,f(k+2),f(k+1),…,f(k -1),f(k -2),…为f(k)的移位序列。序列的差分可以分为前向差分和后向差分。一阶前向差分定义为 ()(1)()f k f k f k ?=+- (3.1—1) 一阶后向差分定义为 ()()(1)f k f k f k ?=-- (3.1—2) 式中Δ和Δ称为差分算子。由式(3.1—1)和式(3.1—2)可见,前向差分与后向差分的关系为 ()(1)f k f k ?=?- (3.1—3) 二者仅移位不同,没有原则上的差别,因而它们的性质也相同。此处主要采用后向差分,并简称其为差分。 由查分的定义,若有序列1()f k 、2()f k 和常数1a ,2a 则 1122112211221112221122[()()][()()][(1)(1)][()(1)][()(1)]()() a f k a f k a f k a f k a f k a f k a f k f k a f k f k a f k a f k ?+=+--+-=--+--=?+? (3.1—4) 这表明差分运算具有线性性质。 二阶差分可定义为 2()[()][()(1)]()(1) ()2(1)(2) f k f k f k f k f k f k f k f k f k ?=??=?--=?-?-=--+- (3.1—5) 类似的,可定义三阶、四阶、…、n 阶差分。一般地,n 阶差分

非线性方程的简单迭代法和Steffensen迭代法

《数值计算方法》实验报告 实验名称:实验1 非线性方程的简单迭代法和Steffensen 迭代法 实验题目:分别用简单迭代法和Steffensen 迭代法求方程 010423=-+x x 在 [1, 2] 内的一个实根. 实验目的:理解并掌握简单迭代法和Steffensen 迭代法 基础理论:简单迭代法和Steffensen 迭代法 1).简单迭代法的原理:将一元非线性方程:0)(=x f 改写成等价方程:)(x x ρ= ,对此,从某个初始值x0开始,对应式)(x x ρ= 构成迭代公式 ,...1,0),(1==+k x x k k ρ ,这样就可以确定序列 {}k x (k=0,1,2…)。如果 {}k x 有极限 *lim x x k k =∞→ ,由式 ,...1,0),(1==+k x x k k ρ 两边取极限可得 )(**x x ρ= ,可知 * x 为方程0)(=x f 的近似解。 2)Steffensen 迭代法的原理: 通过把改进的Aitken 方法应用于根据不动点迭代所得到的线性收敛序列,将收敛速度加速到二阶。

()???? ?????+---===+k k k k k k k k k k k x y z x y x x y z x y 2) ()(21ρρ []x x x x x x x +---=)(2)(()()(2ρρρρψ 实验环境:操作系统:Windows 7; 实验平台:Turbo C++ 实验过程:写出算法→编写程序→调试运行程序→计算结果 1)简单迭代法的算法: Input:初始近似值x0,精度要求del,最大迭代次数N Output:近似解x 或失败信息 1. n ←1 2. While n ≤N do; 3. x ←f(x0); 4. if | x-x0|

计算方法实验三 解线性方程组的迭代法

山西大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称计算方法实验实验日期 成绩指导老师批改日期 实验名称实验三解线性方程组的迭代法 一、实验目的: 用雅可比和高斯—赛德尔迭代法解线性方程组A x=b,式中A为非奇异实矩阵。在给定迭代初值的情况下,进行迭代,直到满足精度要求。 二、实验方法 (1)雅可比迭代法设系数矩阵A为非奇异矩阵,且a ij0≠ ,(i=1,2,3,......,n),从第i个方程中解出 x i , 得其等价形式: ) ( 1 ,1 x a a x i n i j j ij ii i b∑ ≠ = - = ,取初始向量 ) ,...., , , ()0( )0( 3 )0( 2 )0( 1 )0(x x x x x n = ,可建立相应的 迭代公式: ) ( 1)( ,1 )1 (b x a a x i k j n i j j ij ij k i + - =∑ ≠ = + (2)高斯—赛德尔迭代法 每计算出一个新的分量便立即用它取代对应的旧分量进行迭代,可能收敛更快,据此思想课构造高斯 —赛德尔迭代法,其迭代公式为 ) ,...., 2,0 (), ( 11 11 ) ( )1 ( )1 (n i b x a x a a x j i j n i j k j ij k j ij ij k i = + - - =∑∑ - =+ = + + 三、实验内容 求使|| x x k k) ( )1 (- + ||20001 .0 ≤的近视解及相应的迭代次数。初值选为向量b。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - - - - - - - - - - - - - 6 2 5 2 5 4 1 1 1 4 1 1 1 4 1 1 1 1 4 1 1 1 4 1 1 1 4 6 5 4 3 2 1 x x x x x x 四、实验程序 雅可比迭代法代码:#include"stdio.h" #include"math.h" #define n 6 #define Nmax 100

Aitken加速迭代法

Aitken加速迭代法 function [x,k]=aitken(f,x0,ep) y=f(x0);z=f(y); x=x0-(y-x0)^2/(x0-2*y+z); k=0; N=5000; while (norm(x-x0)>ep & k> f=@(x)exp(-x);x0=0;ep=0.5e-10; >> [x,k]=aitken(f,x0,ep) x = 0.5671432904 k = 4 向量函数的aitken加速法 function [x,k]=aitken1(f,x0,ep) y=f(x0(1),x0(2));z=f(y(1),y(2)); x=x0-(y-x0).^2./(x0-2*y+z); k=0; N=5000; while (norm(x-x0)>ep & k> f=@(x,y)[exp(-x-y);exp(x*y)];x0=[0;0];ep=0.5e-10; >> [x,k]=aitken1(f,x0,ep) x = k = 0.2138547983 110 1.328603209

差分方程的解法

第三节 差分方程常用解法与性质分析 1、常系数线性差分方程的解 方程)(...110n b x a x a x a n k k n k n =+++-++ ( 8) 其中k a a a ,...,,10为常数,称方程(8)为常系数线性方程。 又称方程0...110=+++-++n k k n k n x a x a x a (9) 为方程(8)对应的齐次方程。 如果(9)有形如n n x λ=的解,带入方程中可得: ...1110=++++--k k k k a a a a λλλ (10) 称方程(10)为方程(8)、(9)的特征方程。 显然,如果能求出(10)的根,则可以得到(9)的解。 基本结果如下: (1) 若(10)有k 个不同的实根,则(9)有通解: n k k n n n c c c x λλλ+++=...2211, (2) 若(10)有m 重根λ,则通解中有构成项: n m m n c n c c λ )...(121-- - - +++

(3)若(10)有一对单复根 βαλi ±=,令:? ρλi e ±=, αβ ?βαρarctan ,22=+=,则(9)的通解中有构成项: n c n c n n ?ρ?ρsin cos 21 - - + (4) 若有m 重复根:βαλi ±=,φ ρλi e ±=,则(9)的通项中有成 项: n n c n c c n n c n c c n m m m m n m m ?ρ?ρsin )...(cos )...(12211 21-- - ++-- - +++++++ 综上所述,由于方程(10)恰有k 个根,从而构成方程 (9)的通解中必有k 个独立的任意常数。通解可记为:- n x 如果能得到方程(8)的一个特解:* n x ,则(8)必有通解: =n x - n x +* n x (11) (1) 的特解可通过待定系数法来确定。 例如:如果 ) (),()(n p n p b n b m m n =为n 的多项式,则当b 不是特征 根时,可设成形如 ) (n q b m n 形式的特解,其中)(n q m 为m 次多项式;如 果b 是r 重根时,可设特解:r n n b )(n q m ,将其代入(8)中确定出系 数即可。

Atiken加速 一般迭代和牛顿迭代法

第二次上机实验报告 实验一:①.用不动点迭代法求f x=x3?x?1=0的根 发散的迭代格式:x k+1=x k3?1,其中k=0,1,2…… 3,其中k=0,1,2…… 收敛的迭代格式:x k+1=x k+1 当使用第二种格式迭代,且精度为10^(-12)时,程序如下: #include #include #include using namespace std; #define h 0.000000000001 double f(double x) { double f1 = pow(x + 1, 1.0 / 3); return f1; } int main() { double x1, x2; int n=0; cout<< "input first data:" <> x1; x2 = f(x1); while (fabs(x2 - x1) > h) { n++; x1 = x2; cout<

②对迭代格式使用Aitken加速,观察其收敛散性质变化 对迭代格式一使用Aitken加速,收敛 对迭代格式二使用Aitken加速,收敛速度变快 程序如下: #include #include #include #define h 0.000000000001 usingnamespace std; double f(double x) { double f1 = pow(x,3)-1; return f1; } int main() { double x0,x1, x2; int n = 0; cout<<"please input the first number:"<> x0; x1 = f(x0); while (fabs(x0-f(x0))>h) { n++; x2 = f(x1); x0 = x2 - (x2 - x1)*(x2 - x1) / (x2 - 2 * x1 + x0); x1 = x2; cout<

差分方程及微分方程数值解

差分方程及微分方程数值解 部门: xxx 时间: xxx 整理范文,仅供参考,可下载自行编辑

东南大学《数学实验》报告实验内容:差分方程及微分方程数值解 一实验目的 熟悉迭代法及微分方程数值方法 二预备知识 <1)了解差分方程稳定性、周期分解、混沌等相关知识 <2)了解欧拉方法、龙格-库特方法。 三实验内容与要求 <一)Volterra方程数值解

Numerical Calculable rank (2)轨线图 四/五阶龙格-库塔公式: Numerical Euler 欧拉公式:

(二)差分阻滞增长模型 在t时刻单位时间内的人口数量的变化量仅仅与此时的人口数量x有关(等于右边的值>,其中的r表示人口的固有增长率,N表示能容纳的最大人口数.b5E2RGbCAP 经过单位时间,即一个繁殖周期的种群数量的增长量仅仅与前一个时期的种群数量有关。于是模型为 即 这是一个一阶非线性差分方程.对于给定的初值,我们可以从这个递推公式运用计算机很容易地计算出一些xk.这是在计算机出现以后的一个新的特点.但是我们更关心的是当时间趋于无穷时,即k趋于无穷时, xk的极限如何,即差分方程平衡点的稳定性问题。p1EanqFDPw

求得差分方程(2>的平衡点为0和(b-1>/b.它们分别对应于差分方程(1>的平衡点0和N. 我们将这个差分方程(2>在平衡点附近展开,有 注意到b=1+r>1,平衡点0是不稳定的. 略去高阶项得 因此当|2-b|<1时,平衡点x*= (b-1>/b是稳定的. |2-b|>1即 b>3时,平衡点x*是不稳定的.DXDiTa9E3d <1)稳定情况<) < function x=block(b,x0> 图)function x=block(b,x0>

MATL新编计算方法迭代法牛顿法二分法实验报告

M A T L新编计算方法迭代法牛顿法二分法实验报 告 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

姓名 实验报告成绩 评语: 指导教师(签名) 年 月 日 说明:指导教师评分后,实验报告交院(系)办公室保存。 实验一 方程求根 一、 实验目的 用各种方法求任意实函数方程0)(=x f 在自变量区间[a ,b]上,或某一点附近的实根。并比较方法的优劣。 二、 实验原理 (1)、二分法 对方程0)(=x f 在[a ,b]内求根。将所给区间二分,在分点 2a b x -=判断是否0)(=x f ;若是,则有根2a b x -=。否则,继续判断是否0)()(

+)(0x f 0))(('0=-x x x f 设0)('0≠x f ,则=x -0x )(') (00x f x f 。取x 作为原方程新的近似根1x ,然后将1x 作为0x 代入上式。迭代公式为:=+1 k x -0x )(')(k k x f x f 。 三、 实验设备:MATLAB 软件 四、 结果预测 (1)11x = (2)5x = (3)2x =0,09052 五、 实验内容 (1)、在区间[0,1]上用二分法求方程0210=-+x e x 的近似根,要求误差不 超过3105.0-?。 (2)、取初值00=x ,用迭代公式 =+1k x -0x )(')(k k x f x f ,求方程0210=-+x e x 的近似根。要求误差不超过3105.0-?。 (3)、取初值00=x ,用牛顿迭代法求方程0210=-+x e x 的近似根。要求误 差不超过3105.0-?。 六、 实验步骤与实验程序 (1) 二分法 第一步:在MATLAB 软件,建立一个实现二分法的MATLAB 函数文件如下: function x=agui_bisect(fname,a,b,e) %fname 为函数名,a,b 为区间端点,e 为精度 fa=feval(fname,a); %把a 端点代入函数,求fa fb=feval(fname,b); %把b 端点代入函数,求fb if fa*fb>0 error('两端函数值为同号');

相关文档
最新文档