非线性方程的二分法-迭代法-(内含matlab程序代码)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告

一、实验名称:非线性方程的二分法,迭代法,松弛迭代法,Aitken 迭代法,Steffensen 迭代法。

二、实验目的:进一步熟悉理解掌握最速下降法与共轭梯度法解法思路熟悉非线性方程的二分法,迭代法,松弛迭代法,Aitken 迭代法,Steffensen 迭代法,提高matlab 编程能力。

三、实验要求:非线性方程,应用二分法,迭代法,松弛迭代法,Aitken 迭代法,Steffensen 迭代法编程求解非线性方程的数值解。

四、实验原理:

1.二分法:

设函数()f x 在区间[,]a b 上连续,而且()()0f a f b <,则()f x 在区间[,]a b 上至少有一个根。

首先确定有限区间:依据零点定理。设 ],[)(b a C x f ∈,且

0)()(

则方程 0)(=x f 在区间),(b a 上至少有一个根。如果)('x f 在),(b a 上恒正或恒负,则此根唯一。 令111112,,()a a b b half a b

===+若1()()0f a f half <,则1[,]a half 为有根区间,否则1[,]half b 为有根区间。记新的有根区间为],[22b a , 则],[],[2211b a b a ⊃且)(1121

22a b a b -=-;对],[22b a 重复上述做法得:

......],[......],[],[2211⊃⊃⊃⊃n n b a b a b a 且)(2

11a b a b n n n -=

--

设所求的根为*x ,则......2,1],[=∈*n b a x n n ,即

......2,1=≤≤*n b x a n

n ,由0)(21lim )(lim 1n =-=--∞→∞→a b a b n n n n 得*lim lim x b a n n n n ==∞

→∞→ 取1()2n n x half a b *==+为*x 的近似解。

2.不动点迭代法

对于非线性方程:()0f x =常常可以化成等价的方程

()x x ϕ=可以选取一个初始近似值0x ,构造迭代序列

1(),1,2,k k x x k ϕ-=

=

如此产生序列{}k x 。这种迭代方法称为不动点迭代,或Picard 迭代。这个原理看似很容易直观理解,但是却有相当深刻的数学内涵,数学系的学生在泛函分析与微分方程理论等多门专业课程里都会遇到。如果()k x ϕ连续,而且lim ()k k x p ϕ→∞

=,则p 是ϕ的一个不动点。因此p 为方程()0f x =的一个根。

3.Steffensen 迭代法

该迭代法解方程()x x ϕ=可以看成是另一种不动点迭代:1(),0,1,2,k k x x k ϕ+==其中迭代函数为2(())()(())2()x x x x x x x ϕϕϕϕϕ-=--+得到迭代公式为:

(),()k k k k y x z y ϕϕ==;2

1(),0,1,22k k k k k k k

y x x x k z y x +-=-=-

+