迭代式与不动点.docxVIP

  • 1
  • 0
  • 约5.67千字
  • 约 8页
  • 2024-04-11 发布于天津
  • 举报

迭代式与不动点

【实验目的】

了解迭代的基本概念。

了解不动点的基本概念。

学习掌握MATLAB软件有关的命令。

【实验内容】

计算数列、3,、\:3,(tv:3,…的极限

【实验准备】

迭代的基本概念

迭代数列:迭代就是把给定的函数f连续不断地反复作用在初值。上。通过迭代,我们会得到一个迭代数列:

a,f(a),f(f(a)),f(f(f(。))),…

把迭代数列记为x,x,x,…,X,…。

0 1 2n

迭代格式:迭代一种机械的重复动作,很适合于计算机的运算特点,因此迭代算法在

各种数值方法中处于核心地位。迭代可以表示成如下的形式:

X0=a,X+]=f(X),n=1,2,3,…

称为由函数f导出的迭代格式。

不动点的基本概念

对迭代格式的两端取极限n—8,当极限存在时,得到方程x=f(x).函数f的意义是把自变量x映射成因变量y,而上式的意义时表示x在影射f得像不发生改变.因此称该方程为不动点方程,方程的根称为函数f的不动点.

压缩映像原理

定理1设y=f(x)把区间[a,b]映射成[a,b],并且存在0q1,使得对于任意

e[a,b],有|f(气)-f(x2)qx1-x2|,^

(1)*内存在唯一的不动点x*,满足x*=f(x*);

(2)对任意初始值x0e[a,b],迭代序列x〃+1=f(x〃)收敛于x*;

(2)

(3)x

(3)x-x*qx-x*

qn

定理2设y=f(x)在间[。,b]内可导,且yG[a,b].若存在0q1,使得对任意xg[a,b]均有f(x)\q,则定理1的结论成立.

由拉格朗日中值定理可知,定理2是定理1的特例.定理不仅给出了收敛条件,而且还给出了收敛误差的估计.可以看出,q越小收敛越快.但是要确定对任意xg[a,b]均有If(x)\q显然不太方便.在x*的附近,有如下局部收敛定理:

定理3设y=f(x)在x*的一个领域内连续且|f(x*)|1,则对该领域内的任意初始值x0,迭代序列x,H=f(x〃)收敛于x*.

4.迭代的MATLAB命令

MATLAB中主要用for,while等控制流命令实现迭代.

【实验方法与步骤】

练习1计算数列君心3,、3,的极限.可用for语句,for循环允许一组命令以固定的和预订的次数重复.For循环的一般形式为:

for乂=表达式1:表达式2:表达式3

语句体

end

其中表达式1的值为循环的初值,表达式2的值为步长,表达式3的值为循环的终值.如果表达式2省略,则默认为1.本练习中,相应的MATLAB代码为:

clear;

x=3

fori=1:10

x=sqrt(x)

end

可算得迭代数列的前10项:

7321,1.3161,1.1472,1.0711,1.0349,1.0173,1.0086,1.0043,1.0021,1.0011

可见此数列的极限为1.

本练习也可用while语句,while循环一般用于事先不能确定循环次数的情况.while循环的一般形式为:

while表达式

语句体

end

只要表达式的值为1(真),就执行while与end之间的语句体,直到表达式的值为0(假)时终止该循环.通常,表达式的值为标量,但对数组值也同样有效,此时,数组的所有元素都为真,才执行while与end之间的语句体.本练习中,相应的MATLAB代码为:

n=0;eps=1.0e-5;x=3;

whileabs(x-sqrt(x))eps

x=sqrt(x);n=n+1;

end

x,n

结果为x=1.0000,n=16.这说明迭代到第16次后,数列的前后两项之间的误差小于10-5擞列收敛到1.

一般说来,在事先不知道迭代是否收敛时,可用for语句.如果知道迭代是收敛的,为了控制迭代计算的误差,用while语句是比较合适的.迭代过程启发我们,设法将方程y=f⑴=0变形为不动点方程]=g3),就有可能利用迭代法求出方程的根.

练习2利用迭代法求解方程x3-x-1=0.

先请读者画出函数f(x)=x3-x-1的图形,观测函数的图形可以看出,在区间[1,2]方程有唯一正根.

1迭代格式1方程变形为X=(x+1)3,先用for语句,初值设为1.5,相应的MATLAB代码

为:

clear;

x=1.5;

fori=1:10

x=(x+1)八(1/3)

end

可算得迭代数列的前10项:

1.3572,1.3309,1.3259,1.3249,1.3248,1.3247,1.3

文档评论(0)

1亿VIP精品文档

相关文档