函数迭代与不动点

函数迭代与不动点
函数迭代与不动点

函数迭代与不动点

——探析“如果f(x)有且仅有两个不动点,求证f[f(x)]不可能有且仅有3个不

动点”问题

定义:

性质:若实数x 0为y=f(x)的不动点,则x 0也为y=f n (x)的不动点。

这个性质用数学归纳法是平凡的。 n=1时,结论平凡。

n=k 时,若有x 0为y=f k (x)的不动点

n=k+1时,f k+1(x 0)=f(f k (x 0))=f(x 0)= x 0 ,故x 0为y=f k+1(x)的不动点 所以性质1是成立的。而性质1,有广泛地使用,例如: f(x)=ax+b (a ≠1),则有f n (x)= ()11k b b a x a a

-

+--

回到原题,用反证法,若f[f(x)]有且仅有3个不动点。

由性质,则f(x)有两个不动点,设为a、b。

F[f(x)]除了a、b的不动点设为c。

则f2(f(c))=f(f2(c))=f(c),因此f(c)为f[f(x)]的不动点。

则f(c)等于a、b、c中的一个。

若f(c)=c,则c为f(x)的不动点,这与f(x)恰有两个不动点,矛盾。

若f(c)=a或b,由对称性,不妨设f(c)=a,则f[f(c)]=f(a)=a,又f[f(x)]的不动点为c,则f[f(c)]=c,所以a=c,矛盾

命题得证。

再次回到这个性质:若实数x0为y=f(x)的不动点,则x0也为y=f n(x)的不动点。

这个性质无论是在如本题,还是高考题中都有广泛运用,因此这个结论需要熟练牢记,并巧妙运用。

参考文献

1 、中等数学 > 2003年3期 > 函数不动点在解题中的应用2

2、《中学数学教学》, 2014, 第6期(6):15-17

【良心出品】不动点迭代法matlab程序

实验四 姓名:木拉丁。尼则木丁班级:信计08-2 学号:20080803405 实验地点:新大机房 实验目的:通过本实验学习利用MATLAB不动点迭代法,抛物线法,斯特芬森迭代法解非线性方程组,及其编程实现,培养编程与上机调试能力。 实验要求:①上机前充分准备,复习有关内容,写出计算步骤,查对程序; ②完成实验后写出完整的实验报告,内容应该包括:所用的算法语言, 算法步骤陈述,变量说明,程序清单,输出计算结果,结果分析等等; ③用编好的程序在Matlab环境中执行。 迭代法 MATLAB程序: function pwxff(f,x0,x1,x2,d,n) f=inline(f); x(1)=x0; x(2)=x1; x(3)=x2; w1=(f(x(2))-f(x(3)))/(x(2)-x(3)); t1=(f(x(1))-f(x(3)))/(x(1)-x(3)); t2=(f(x(1))-f(x(2)))/(x(1)-x(2)); w2=1/(x(1)-x(2))*(t1-t2); w=w1+w2*(x(3)-x(2));

for k=3:n x(k+1)=x(k)-2*f(x(k))/(w+sqrt(w^2-4*f(x(k))*w2)); if abs(x(k+1)-x(k))

MAAB计算方法迭代法牛顿法二分法实验报告

姓名 实验报告成绩 评语: 指导教师(签名) 年 月 日 说明:指导教师评分后,实验报告交院(系)办公室保存。 实验一 方程求根 一、 实验目的 用各种方法求任意实函数方程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 ,用迭代公式=+1 k 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('两端函数值为同号'); end

数值计算_第4章 解线性方程组的迭代法

第4章解线性方程组的迭代法 用迭代法求解线性方程组与第4章非线性方程求根的方法相似,对方程组进行等价变换,构造同解方程组(对可构造各种等价方程组, 如分解,可逆,则由得到),以此构造迭代关系式 (4.1) 任取初始向量,代入迭代式中,经计算得到迭代序列。 若迭代序列收敛,设的极限为,对迭代式两边取极限 即是方程组的解,此时称迭代法收敛,否则称迭代法发散。我们将看到,不同于非线性方程的迭代方法,解线性方程组的迭代收敛与否完全决定于迭代矩阵的性质,与迭代初始值的选取无关。迭代法的优点是占有存储空间少,程序实现简单,尤其适用于大型稀疏矩阵;不尽人意之处是要面对判断迭代是否收敛和收敛速度的问题。 可以证明迭代矩阵的与谱半径是迭代收敛的充分必要条件,其中是矩阵的特征根。事实上,若为方程组的解,则有 再由迭代式可得到

由线性代数定理,的充分必要条件。 因此对迭代法(4.1)的收敛性有以下两个定理成立。 定理4.1迭代法收敛的充要条件是。 定理4.2迭代法收敛的充要条件是迭代矩阵的谱半径 因此,称谱半径小于1的矩阵为收敛矩阵。计算矩阵的谱半径,需要求解矩阵的特征值才能得到,通常这是较为繁重的工作。但是可以通过计算矩阵的范数等方法简化判断收敛的 工作。前面已经提到过,若||A||p矩阵的范数,则总有。因此,若,则必为收敛矩阵。计算矩阵的1范数和范数的方法比较简单,其中 于是,只要迭代矩阵满足或,就可以判断迭代序列 是收敛的。 要注意的是,当或时,可以有,因此不能判断迭代序列发散。

在计算中当相邻两次的向量误差的某种范数小于给定精度时,则停止迭代计算,视为方程组的近似解(有关范数的详细定义请看3.3节。) 4.1雅可比(Jacobi)迭代法 4.1.1 雅可比迭代格式 雅可比迭代计算 元线性方程组 (4.2) 写成矩阵形式为。若将式(4.2)中每个方程的留在方程左边,其余各项移到方程右边;方程两边除以则得到下列同解方程组: 记,构造迭代形式

不动点迭代法

中国矿业大学(北京)理学院 数值分析实验报告 实验名称 不动点迭代法求方程的近似根 实验时间 201年3月20日 组长签名 龙纯鹏 班级 信息与计算 科学(1)班 学号 11107200110 成绩 组员签名 11107200101 11107200102 11107200103 11107200119 11107200120 一、实验目的,内容 二、相关背景知识介绍 三、代码 四、数值结果 五、计算结果的分析 六、计算中出现的问题,解决方法及体会 一、实验目的,内容 5、先确定方程x e x 51= 的一个收敛的有根区间[a,b], 然后用不动点迭代法求x e x 5 1=在此有根区间的近似根,初值0x 自己确定,要求根精确到510-,并求迭代次数. ,掌握二分法,会编写相关代码。 二、相关背景知识介绍 (1)算法原理或计算公式 二分法的基本思路是通过计算隔根区间的中点,逐步将隔根区间缩小,从而可得方程 的近似根数列{}n x 。ε<-≤-+1*2 k k a b x x (2)程序设计思路 二分法原理: 不妨设方程0)(=x f 在隔根区间],[b a 上.0)(,0)(>+ b a f , 隔根区间变为]2 ,[b a a +.将新区间记为[]11,b a .

解线性方程组的几种迭代算法

解线性方程组的几种迭代算法 内容摘要: 本文首先总结了分裂法解线性方程组的一些迭代算法,在此基础上分别通过改变系数矩阵A的分裂形式和对SSOR算法的改进提出了两种新的算法,并证明了这两种算法的收敛性.与其它方法相比,通过改变系数矩阵A的分裂形式得到的新算法具有更好的收敛性,改进的SSOR算法有了更快的收敛速度.最后通过数值实例验证了这两种算法在有些情况下确实可以更有效的解决问题. 关键词: 线性方程组迭代法算法收敛速度 Several kinds of solving linear equations iterative algorithm Abstract: In this paper, we firstly summarize some Iterative algorithms of Anti-secession law solution of linear equations. Based on these, two new algorithms are put forward by changing the fission form of coefficient matrix A and improving the algorithm of SSOR, and the convergence of the two algorithms is demonstrated. Compared with other methods, the new algorithm acquired by changing the fission form of coefficient matrix A is possessed of a better convergence. And the improved SSOR algorithm has a faster convergence speed. Finally, some numerical examples verify that the two algorithms can solve problems more effectively in some cases. Key words: Linear equations Iteration method algorithm Convergence speed

MATLAB计算方法迭代法牛顿法二分法实验报告要点

姓名实验报告成绩 评语: 指导教师(签名) 年月日

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

(1)11x =0.09033 (2)5x =0.09052 (3)2x =0,09052 五、 实验内容 (1)、在区间[0,1]上用二分法求方程0210=-+x e x 的近似根,要求误差不 超过 3 105.0-?。 (2)、取初值00=x ,用迭代公式=+1k x -0x )(') (k k x f x f ,求方程0210=-+x e x 的 近似根。要求误差不超过 3 105.0-?。 (3)、取初值00=x ,用牛顿迭代法求方程0210=-+x e x 的近似根。要求误 差不超过 3 105.0-?。 六、 实验步骤与实验程序 (1) 二分法 第一步:在MATLAB 7.0软件,建立一个实现二分法的MATLAB 函数文件agui_bisect.m 如下: 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('两端函数值为同号'); end %如果fa*fb>0,则输出两端函数值为同号 k=0 x=(a+b)/2 while(b-a)>(2*e) %循环条件的限制

不动点迭代法求解非线性方程组

不动点迭代法求解非线性方程组 摘要:一般非线性方程组可以写成()0F x =的形式,其中:n m F R R →是定义在区域 n D R ?上的向量函数。把方程组()0F x =改写成与之等价的形式:(x G x =)。因此,求 方程组()0F x =的解就转化为求函数的(G x )的不动点。本文首先介绍了多变量函数()F x 的微积分性质,接着介绍了用不动点迭代法求解非线性方程组。 关键词:多变量函数;微积分;不动点 Fixed Point Iteration Method For Solving Nonlinear Equations Abstract :General nonlinear equations can be written in the form of ()F x θ=, where the vector function :n m F R R →is defined on the region n D R ?. Transform the equations ()0F x = into its equivalent form: (x G x =).Therefore, we can get the solution of ()0F x = by finding the fixed point of (G x ).In this paper, we first introduce some knowledge about multivariable calculus, then introduce the fixed point iteration method for solving nonlinear equations. Key words: multi-variable function; calculus; fixed point 1 引言 一般非线性方程组及其向量表示法:含有n 个方程的n 元非线性方程组的一般形式为 11221212(,...,)0(,...,)0......(,...,)0 n n m n f x x x f x x x f x x x =??=?? ? ?=? (1) 其中,()1,2,...,i f i n =是定义在n D R ?上的n 元实值函数,且i f 中至少有一个是非线性 函数。 令12 ...n x x x x ?? ? ?= ? ???,()()()12()...m f x f x F x f x ?? ? ? = ? ? ?? ? ,则方程组可以表示为()F x θ= (2) 其中:n m F R R →是定义在区域n D R ?上的向量函数。若存在* x D ∈,使

MATLAB计算方法迭代法牛顿法二分法实验报告

姓名 _______________ 实验报告成绩 __________________________ 评语: 指导教师(签名)

说明:指导教师评分后,实验报告交院(系)办公室保存 实验一方程求根 一、实验目的 用各种方法求任意实函数方程f(x)0在自变量区间[a,b]上,或某一点附 近的实根。并比较方法的优劣。 二、实验原理 (1)、二分法 b a x --------- 对方程f(x)0在[a,b]内求根。将所给区间二分,在分点2判 b a x --------- 断是否f(x) 0;若是,贝y有根2。否则,继续判断是否f(a)?f(x) 0, 若是,则令b x,否则令a x。否则令a x。重复此过程直至求出方程f(x) 0在[a,b]中的 近似根为止。 (2)、迭代法 将方程f(x) 0等价变换为x = ?( x )形式,并建立相应的迭代公式xk 1 J x)。 (3)、牛顿法 若已知方程的一个近似根X。,则函数在点X。附近可用一阶泰勒多项 式pi(x) f(X0) f'(X0)(X X0)来近似,因此方程f(x) 0可近似表示为f(X0) f(X0) f'(X0)(X X)0设f'(X0) 0,则x X0 f'(X0)。取x 作为原方程新的近 f (X k) 似根X1,然后将X1作为X0代入上式。迭代公式为:Xk 1 X0 f'(X k)。 三、实验设备:MATLAB 7.0软件 四、结果预测

(1) 心=0.09033 (2) x 5=o.o9O52 (3) x 2=0,09052 五、实验内容 (1)、在区间[0,1]上用二分法求方程e x 10x 2 0的近似根,要求误差不 六、实验步骤与实验程序 (1)二分法 第一步:在MATLAB 7.0软件,建立一个实现二分法的 MATLAB 函数 文 件 agui_bisect.m 女口下: fun cti on 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(' 两端函数值为同号'); end %如果fa*fb>0,则输出两端函数值为同号 k=0 x=(a+b)/2 while(b-a)>(2*e) % 循环条件的限制 fx 二feval(fname,x);% 把x 代入代入函数,求fx 超过 0.5 10 3 (2)、取初值 xo 0 ,用迭代公式 Xk1 f (X k ) f'(X k ),求方程 e x 10x 2 0 的 近似根。要求误差不超过 0.5 10 (3)、取初值x 。 ,用牛顿迭代法求方程e x 10x 2 0的近似根。要求误 差不超过 0.5 10

不动点迭代法非线性方程求解

《MATLAB 程序设计实践》课程考核 1、编程实现以下科学计算算法,并举一例应用之。(参考书籍《精通MATLAB 科学计算》,王正林等著,电子工业出版社,2009年) “不动点迭代法非线性方程求解” 2、编程解决以下科学计算问题。 7.某工厂2005年度各季度产值(单位:万元)分别为:450.6、395.9、410.2、450.9,试绘制折线图和饼图,并说明图形的实际意义。 8.根据1252 2 22=-+ a y a x 绘制平面曲线,并分析参数a 对其形状的影响。 2.按要求对指定函数进行插值和拟合。 (1)按表 6.4用3次样条方法插值计算090~0范围内整数点的正弦值和 075~0范围内整数点的正切值,然后用5次多项式拟合方法计算相同的函数值, 并将两种计算结果进行比较。 (2)按表6.5用3次多项式方法插值计算1~100之间整数的平方根。 1、不动点迭代非线性方程求解 解:

算法说明: 在Matlab中编程实现不动点迭代法的函数为StablePoint 功能:用不动点迭代法求函数的一个零点。 调用格式:[root,n]=StablePoint(f,x0,eps)。 其中,f为函数名; x0为初始迭代向量; eps为根的精度; root为求出的函数零点; n为迭代步数。 流程图: 不动点迭代法的MATLAB程序代码: function [root,n]=StablePoint(f,x0,eps) %用不动点迭代法求函数f的一个零点 %初始迭代量:x0 %根的精度:eps %求出的函数零点:root

%迭代步数:n if(nargin==2) eps=1.0e-4; end tol=1; root=x0; n=0; while(tol>eps) n=n+1; r1=root; root=subs(sym(f),findsym(sym(f)),r1)+r1; %迭代的核心公式tol=abs(root-r1); end 实例: 20 x +-=的一个根。流程图: 解:在MATLAB命令窗口中输入程序代码: >>[r,n]=StablePoint('1/sqrt(x)+x-2',0.5) 结果输出:

数值计算方法-简单迭代

《数值计算方法》实验2报告 班级: 学号: 姓名: 成绩: 1. 实验名称 实验2 非线性方程的迭代解法(之简单迭代法) 2. 实验题目 用简单迭代法求方程010423=-+x x 在区间[1,2]内的一个实根,取绝对误差限为410-. 3. 实验目的 掌握非线性方程的简单迭代法. 4. 基础理论 简单迭代法:将方程0)(=x f 改写成等价形式)(x x ?=,从初值0x 开始,使用迭代公式)(1k k x x ?=+可以得到一个数列,若该数列收敛,则其极限即为原方程的解.取数列中适当的项可作为近似解. 5. 实验环境 操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程 (1)、输入初值x0,将方程改写等价形式; (2)、构造迭代公式 ,k=0,1,2.......; (3)、采用for 循环实现反复迭代; (4)、以误差410-终止循环; (5)、输出结果。 7. 结果与分析 x0=0 del=0.0001 N=100 k x(k) 0 0.000000 1 1.581139 2 1.229548

3 1.426638 4 1.331951 5 1.381756 6 1.356640 7 1.369593 8 1.362987 9 1.366376 10 1.364643 11 1.365531 12 1.365076 13 1.365309 14 1.365190 近似解=1.365251 100次迭代后未达到精度要求. 分析:计算结果与理论一致。 8. 附录:程序清单 phi=inline('0.5*sqrt((10-x^3))'); x0=input('x0='); del=input('del='); N=input('N='); n=1; fprintf('\n k x(k) '); fprintf('\n %4d %f',0,x0); while n

非线性方程的不动点迭代方法研究

重庆文理学院 2011-2012下学期《数值方法》课程论文 题目:非线性方程的不动点迭代方法研究 中国﹒重庆 2012 年 06 月

通过从现实的一个球体的实际问题引出对非线性方程的不动点迭代研究,在理解迭代规则1()k k p g p +=的基础上通过对迭代法和不动点迭代法的基本思想即找()0f x =的同解变形()x g x =,然后运用初值0x 迭代,求出误差范围内的近似解1k x p +≈。运用函数连续性证明不动点的存在性和运用中值定理和均值定理证明不动点唯一性,进而推导出不动点迭代法的推导步骤。然后又用均值定理和数学归纳法证明出收敛性,并在此基础上引出误差边界。再通过对开题提出的球体问题案例的求解,进一步来加深非线性方程对不动点迭代法实证说明,由此联系到不动点迭代法在其他一些领域如物理和工程等的运用。 不动点迭代式(2.2)通常只有线性收敛,有时甚至不收敛,进而在原有的基础上拓展到加速迭代法的收敛性的讨论通常,从而对Steffensen 加速迭代和Aitken (埃特金)加速迭代的讨论。 关键字 不动点迭代; 收敛性; Steffensen 加速迭代; Aitken 加速迭代

1 问题的提出--------------------------------------------------------1 2 算法的思想--------------------------------------------------------1 2.1迭代法的基本思想----------------------------------------------1 2.2 不动点迭代法的基本思想----------------------------------------2 3 算法的推导及步骤--------------------------------------------------2 3.1 算法的推导----------------------------------------------------2 3.2 算法的步骤----------------------------------------------------3 4 算法的分析--------------------------------------------------------4 4.1 收敛性分析----------------------------------------------------4 4.2 误差性分析----------------------------------------------------6 4.3 稳定性分析----------------------------------------------------7 5 算法的实现--------------------------------------------------------7 5.1 案例----------------------------------------------------------7 5.2 求解过程------------------------------------------------------7 5.3 不动点迭代法代码及输出结果------------------------------------8 6 运用举例---------------------------------------------------------10 7 知识拓展---------------------------------------------------------10 7.1 Steffensen加速迭代-------------------------------------------10 7.2 Aitken(埃特金)加速迭代法-------------------------------------11

不动点迭代总结

非线性算子不动点理论是非线性泛函分析的重要组成部分,利用迭代算法逼近非线性算子不动点的越来越广泛。从具体的空间(如p L 空间或p l 空间)到抽象空间(如Hilbert 空间,Banach 空间,赋范线性空间);从单值映象到集值映象;从一般意义的映象(如非扩张映象,严格伪压缩映象;强伪压缩映象等)到渐进意义的映象(如渐进非扩张映象,渐进伪压缩映象,k-强渐进伪压缩映象等);从迭代序列的构造(如Mann 与Ishikawa 迭代序列,具误差(或混合误差)Mann 与Ishikawa 迭代序列, Halpern 迭代序列等)到迭代序列的强(弱)收敛性,稳定性。可以说成果丰富。迭代序列构成了非线性算子不动点理论中的重要问题。在不动点理论方面,从20世纪初著名的Banach 压缩映射原理和Browder 不动点定理问世以来,特别是近30年来,由于实际需要的推动和数学工作者的不断努力,这门科学的理论及应用的研究已经取得重要的进展,并且日趋完善。 下面我们主要介绍一些近几年来不动点的迭代格式: 首先,我们先看下一算子的发展 一 算子 1 T 称为非扩张的,如果 Tx Ty x y -≤- ,,x y C ?∈。 2 T 称为压缩的,如果存在(0,1)α∈,使得 ,,Tx Ty x y x y C α-≤-?∈ :()T D T E → 3 T 称为渐进非扩张的,如果存在一序列{}[0,)n k ∈∞,lim 1n n k →∞=,使得 ,,(),1n n n T x T y k x y x y D T n -≤-∈≥ 4 T 称为渐进伪压缩的,如果存在一序列{}[0,),lim 1n n n k k →∞ ∈∞=, ,对任意给定的,()x y D T ∈存在()()j x y J x y -∈-,使得 2 ,(),1n n n T x T y j x y k x y n <-->≤-?≥ 5 T 称为严格渐进伪压缩的,如果存在一序列{}[0,),lim (0,1)n n n k k k →∞ ∈∞=∈, ,对任意给定的,()x y D T ∈存在()()j x y J x y -∈-,使得 2 ,(),1n n n T x T y j x y k x y n <-->≤-?≥

不动点迭代MATLAB解

核心程序: function [y] = FixedPointIter(x0,func,tol,MaxIter) % Version: 1.0 written by jbb0523 @2016-08-21 if nargin< 4 MaxIter = 100; end if nargin< 3 tol = 1e-3; end xn = x0; fprintf('Iter 0: %16.14f\n',x0); xnp1 = func(xn); fprintf('Iter 1: %16.14f\n',xnp1); criterion = abs(xnp1-xn); xn = xnp1; Iter = 1; while(criterion>tol) xnp1 = func(xn); criterion = abs(xnp1-xn); xn = xnp1; Iter = Iter + 1; fprintf('Iter %2.0d: %16.14f\n',Iter,xnp1); if Iter>=MaxIter break; end end y = xnp1; end (a) function [y] = E1(x) y= nthroot((2*x+2),3); end FixedPointIter(1,@E1,1e-8,10); 结果: Iter 0: 1.00000000000000 Iter 1: 1.58740105196820 Iter 2: 1.72967529339060

Iter 4: 1.76748506514529 Iter 5: 1.76890738000138 Iter 6: 1.76921036415447 Iter 7: 1.76927489299557 Iter 8: 1.76928863558602 Iter 9: 1.76929156229304 Iter 10: 1.76929218558142 Iter 11: 1.76929231832044 Iter 12: 1.76929234658929 Iter 13: 1.76929235260958 (b) function [y] = E1(x) y=log(7-x); end FixedPointIter(1,@E1,1e-8,20); 结果 Iter 0: 1.00000000000000 Iter 1: 1.79175946922806 Iter 2: 1.65024208870382 Iter 3: 1.67705130965908 Iter 4: 1.67202741490706 Iter 5: 1.67297078778434

不动点迭代法和牛顿法非线性方程组求解

《MATLAB 程序设计实践》课程考核 1、编程实现以下科学计算算法,并举一例应用之。(参考书籍《精 通MALAB科学计算》,王正林等著,电子工业出版社,2009 年) “不动点迭代法和牛顿法非线性方程组求解” (1).不动点迭代法非线性方程组求解 (a).算法说明: 设含有n个未知数与n个方程的非线性方程组记为:F(x)=0,然后把上述方程组改为便于迭代的等价形式:x=φ(x),由此就可以构造不动点迭代法的迭代公式: 如果得到的序列{x k}满足错误!未找到引用源。,则错误!未找到引用源。就是φ的不动点,这样就可以求出非线性方程组的解。 在MATLAB中编程实现的非线性方程组的不动点迭代法的函数为:mulStablePoint。 功能:用不动点迭代法求非线性方程组的一个解。 调用格式:[r,n]=mulStablePoint(x0,eps)。 其中,x0为初始迭代向量; eps为迭代精度; r为求出的解向量;

n为迭代步数。 (b).流程图: (c).源程序代码:

function [r,n]=mulStablePoint(x0,eps) %不动点迭代法求非线性方程组的一个解 %初始迭代向量:x0 %迭代精度:eps %解向量:r %迭代步数:n if nargin==1 eps=1.0e-4; end r=myf(x0); n=1; tol=1; while tol>eps x0=r; r=myf(x0); %迭代公式 tol=norm(r-x0); %注意矩阵的误差求法,norm为矩阵的欧几里德范数 n=n+1; if(n>100000) %迭代步数控制 disp('迭代步数太多,可能不收敛!');

不动点迭代法matlab程序

不动点迭代法 实验目的:通过本实验学习利用MATLAB不动点迭代法,抛物线法,斯特芬森迭代法解非线性方程组,及其编程实现,培养编程与上机调试能力。 实验要求:①上机前充分准备,复习有关内容,写出计算步骤,查对程序; ②完成实验后写出完整的实验报告,内容应该包括:所用的算法语言, 算法步骤陈述,变量说明,程序清单,输出计算结果,结果分析等等; ③用编好的程序在Matlab环境中执行。 迭代法 MATLAB程序: function pwxff(f,x0,x1,x2,d,n) f=inline(f); x(1)=x0; x(2)=x1; x(3)=x2; w1=(f(x(2))-f(x(3)))/(x(2)-x(3)); t1=(f(x(1))-f(x(3)))/(x(1)-x(3)); t2=(f(x(1))-f(x(2)))/(x(1)-x(2)); w2=1/(x(1)-x(2))*(t1-t2); w=w1+w2*(x(3)-x(2)); for k=3:n x(k+1)=x(k)-2*f(x(k))/(w+sqrt(w^2-4*f(x(k))*w2));

if abs(x(k+1)-x(k))

excel迭代计算的概念和实例参考

excel迭代计算的概念和实例参考 (A列输入数据,B列自动自动填充) 第一部分:迭代计算的概念 EXCEL里的迭代计算是什么意思?要解决迭代问题,先来看看循环引用。什么是循环引用呢?在Excel中,如果公式引用自己所在的单元格,不论是直接还是间接的,都称为循环引用。只要打开的工作簿中有一个包含循环引用,Microsoft Excel 都将无法自动计算所有打开的工作簿。这时可取消循环引用,或利用先前的迭代计算结果计算循环引用中的每个单元格引用。如果不改变默认的迭代设置,Excel 将在100 次迭代后或在两次相邻迭代得到的数值的变化小于0.001 时,停止迭代运算。 通过更改Excel 迭代计算公式的次数创建一个循环引用。Excel中迭代计算的设置如下介绍: 第一,Excel2003:“工具”菜单上——“选项”——“重新计算”选项卡——选中“迭代计算”复选框。 第二,在Excel2007:单击office按钮——“Excel选项——“公式”选项卡——选中“启用迭代计算”复选框。 若要设置Excel 进行重新计算的最大次数,请在“最多迭代次数”框中键入迭代次数。迭代次数越高,Excel 用于计算工作表的时间越多。 若要设置两次迭代结果之间可以接受的最大误差,请在“最大误差”框中键入所需的数值。数值越小,结果越精确,相应的Excel 用于计算工作表的时间也越多。 第二,迭代计算的实例参考:A列输入数据,B列自动自动填充日期和时间 小编下面通过一个实例给大家分享一下迭代计算的使用。

我们在工作表中,当在A列输入数据后,要实现的结果是:在B列自动输入当前日期和时间。 迭代计算实例操作步骤如下: 首先设置excel的迭代计算,然后在B2单元格输入公式:=IF(A2="","",IF(B2="",NOW (),B2)),并向下复制公式到B列下面的单元格即可。 公式设置好后,当我们在A列输入数据后,B列会自动添加日期和时间。 公式解析: 公式的含义是:如果单元格A2中没有数据,那么在单元格B2中就不会输入任何数据,如果单元格A2中有数据,就会检查B2单元格中是否有数据(也就是自我检查),如果B2单元格没有数据,就在单元格B2中输入当前的日期和时间,否则就保留原始数据部变。公式中使用第二个IF函数是为了确保函数NOW不被重算。

解线性方程组的迭代法_计算方法大作业

解线性方程组的迭代法 1.1 方法概述 对于线性方程组Ax=b ,其中A 为非奇异矩阵,当A 为大型稀疏矩阵时,考虑用迭代法求解上述方程组,其基本思想是求不动点 f BX X k k +=+)()1(, 即构造一个向量系列(){} n X ,使其收敛至某个极限*X , 则*X 就是要求的方程组的准确解。这儿主要介绍Jacobi 迭代法和Gauss-Seidel 迭代法的算法理论及数值实验。 1)Jacobi 迭代法算法概述 Jacobi 迭代法推导过程为将方程组: ???????=+++=+++=+++n n nn n n n n n n b x a x a x a b x a x a x a b x a x a x a 22112 22221211 1212111 )1( 在假设0≠ii a 下,改写成 ()?? ? ??? ?++++=++++=++++=--n n n n n n n n n n n g x b x b x b x g x b x b x b x g x b x b x b x 1122112 23231212113132121 )2( 如果引用系数矩阵 ?? ?? ? ?????=nn n n a a a a A 1111, ?? ?? ? ?????=0011 n n b b B 及向量 ??????????=n x x X 1,??? ? ??????=n b b b 1,????? ?????=n g g g 1, 方程组(1)和(2)分别可写为:b AX =及g BX X +=,这样得到了jacobi

迭代格式01 f BX X k k +=+用jacobi 迭代解方程组b AX =时,就可任意取 初值0X 带入迭代可知式g BX X k k +=+1,然后求k k X ∞ →lim 。但是,n 比较大的时候,写方程组)1(和)2(是很麻烦的,如果直接由A ,b 能直接得到B ,g 就是矩阵与向量的运算了,那么如何得到B ,g 呢 实际上,如果引进非奇异对角矩阵()0≠ii a ?? ??? ?????=nn a a D 00011 将A 分解成:,D D A A +-=要求b AX =的解,实质上就有 ,)(DX X D A AX +-=而D 奇异的,所以1-D 存在, ,)(X A D AX DX -+=从而有,11b D AX D X --+=我们在这里不妨令,1A D I B --=b D g 1-=就得到jacobi 迭代格式:f BX X k k +=+1 。 用向量的分量来表示为: ? ??[] ,... ,,k , n ,...,i x a b a x n i j j ) k (j j i i ii )k (i 21021111==∑-=≠=+ 其中() () () () ()T n x ,...x ,x x 002010=为初始向量. 由此看出,雅可比迭代法公式简单,每迭代一次只需计算一次矩阵和向量的乘法.在电算时需要两组存储单元,以存放()k x 及() 1+k x . 2)Gauss-Seidel 迭代法算法概述 由雅可比迭代公式可知,在迭代的每一步计算过程中是用()k x 的全部分量来计算() 1+k x 的所有分量,显然在计算第i 个分量() 1+k i x 时,已经 计算出的最新分量() () 11 11+-+k i k x ,...,x 没有被利用,从直观上看,最新计算 出的分量可能比旧的分量要好些.因此,对这些最新计算出来的第 1+k 次近似() 1+k x 的分量() 1+k j x 加以利用,就得到所谓解方程组的高斯—

相关文档
最新文档