数值分析-非线性方程数值解法

合集下载

数值分析第七章非线性方程的数值解法

数值分析第七章非线性方程的数值解法

数值分析第七章非线性方程的数值解法在数值分析中,非线性方程和非线性方程组的求解是非常重要的问题。

线性方程是指变量之间的关系是线性的,而非线性方程则指变量之间的关
系是非线性的。

非线性方程的数值解法是通过迭代的方式逼近方程的解。

非线性方程的求解可以分为两类:一元非线性方程和多元非线性方程组。

接下来,我们将对这两类方程的数值解法进行介绍。

对于一元非线性方程的数值解法,最常用的方法是二分法、牛顿法和
割线法。

二分法是一种直观易懂的方法,其基本思想是通过迭代将方程的解所
在的区间逐渐缩小,最终找到方程的解。

二分法的缺点是收敛速度较慢。

牛顿法是一种迭代法,其基本思想是通过选择适当的初始值,构造出
一个切线方程,然后将切线方程与x轴的交点作为新的近似解,并不断迭代,直到满足精度要求。

牛顿法的优点是收敛速度较快,但其缺点是初始
值的选择对结果影响很大,容易陷入局部极值。

割线法是对牛顿法的改进,其基本思想是通过选择两个初始值,构造
出一条割线,然后将割线与x轴的交点作为新的近似解,并不断迭代,直
到满足精度要求。

割线法的收敛速度介于二分法和牛顿法之间。

对于多元非线性方程组的数值解法,最常用的方法是牛顿法和拟牛顿法。

牛顿法的思想同样是通过构造切线方程来进行迭代,但在多元方程组中,切线方程变为雅可比矩阵。

牛顿法的优点是收敛速度快,但同样受初
始值的选择影响较大。

拟牛顿法是对牛顿法的改进,其基本思想是通过逼近Hessian矩阵来进行迭代,从而避免了计算雅可比矩阵的繁琐过程。

拟牛顿法的收敛性和稳定性较好,但算法复杂度相对较高。

数值分析非线性方程的数值解法

数值分析非线性方程的数值解法

数值分析非线性方程的数值解法数值分析是一种应用数学方法来分析和解决数学问题的领域。

非线性方程是数值分析中一类重要的问题,其解法包括了迭代法、牛顿法、割线法等。

本文将详细介绍这些数值解法及其原理和应用。

一、迭代法迭代法是解非线性方程的一种常用数值方法。

该方法的基本思想是通过不断迭代逼近方程的根,直到达到所需精度或满足停止准则为止。

迭代法的求根过程如下:1.选择适当的初始值x0。

2. 利用迭代公式xn+1 = g(xn),计算下一个近似根。

3.重复步骤2,直到满足停止准则为止。

常用的迭代法有简单迭代法、弦截法和牛顿法。

简单迭代法的迭代公式为xn+1 = f(xn),其中f(x)为原方程的一个改写形式。

该方法的收敛性要求函数f(x)在解附近有收敛性且导数在一个区间内收敛。

弦截法的迭代公式为xn+1 = xn - f(xn) * (xn-xn-1) / (f(xn)-f(xn-1))。

该方法通过连接两个点上的函数值的割线来逼近方程的根。

牛顿法的迭代公式为xn+1 = xn - f(xn) / f'(xn),其中f'(x)为f(x)的导数。

该方法通过用切线来逼近方程的根。

二、牛顿法牛顿法是解非线性方程的一种常用迭代法。

该方法通过使用方程的导数来逼近方程的根。

迭代过程如下:1.选择适当的初始值x0。

2. 利用迭代公式xn+1 = xn - f(xn) / f'(xn),计算下一个近似根。

3.重复步骤2,直到满足停止准则为止。

牛顿法的收敛速度较快,但要求方程的导数存在且不为0。

三、割线法割线法是解非线性方程的另一种常用迭代法。

该方法通过连接两个点上的函数值的割线来逼近方程的根。

迭代过程如下:1.选择适当的初始值x0和x12. 计算下一个近似根xn+1 = xn - f(xn) * (xn-xn-1) / (f(xn)-f(xn-1))。

3.重复步骤2,直到满足停止准则为止。

割线法的收敛速度介于简单迭代法和牛顿法之间。

数值分析 第7章 非线性方程的数值解法..ppt;ppt

数值分析 第7章 非线性方程的数值解法..ppt;ppt
2
7.1 方程求根与二分法
7.1.1 引言 单变量非线性方程的一般形式 (1.1) f ( x) 0 其中 x R , f ( x) C[a, b], [a, b] 也可以是无穷区间.
f(x)是高次多项式函数或超越函数 如果函数 f (x) 是多项式函数,即
f ( x ) a0 x n a1 x n1 an1 x an (a0 0),
xk
可得一个近似根的序列 x0 , x1 , x2 , xk ,,
2
9

x* xk (bk ak ) / 2 (b a) / 2k 1 , x * xk , k ln(b a ) ln 1
ln 2
(1.3)
(4) 要使
只要二分足够多次(即 k 充分大),便有
建立迭代公式 各步迭代的结果如下表
表7 3 k xk k xk
x1 2.375, x2 12.39.
xk 1 3 xk 1 (k 0,1,2,).
发散
如果仅取6位数字,
结果x7 与 x8 完全相同, 说明:①迭代函数不唯一,②迭代点列可能收敛,也可 0 1 .5 5 1.32476 能发散,迭代收敛与否不仅与迭代函数有关,还与初 1 1.35721 6 1.32473 x7 即为所求的根. 始点有关。
(1.2)
其中 a0 0, ai (i 0,1,, n) 为实数,则称方程(1.1)为 n 次代数方程.
超越函数 不能表示为多项式的函数
如 (x)=3x5-2x4+8x2-7x+1 (x)=e2x+1-xln(sinx)-2 高次代数方程 超越方程
3
如果实数 x *满足 f ( x*) 0,则称 x * 是方程(1.1)的 根,或称 x *是 f (x)的零点. 若 f (x)可分解为 f ( x) ( x x*)m g ( x),

5-非线性方程组的数值解法及最优化方法

5-非线性方程组的数值解法及最优化方法

1 4 0
非线性方程组的数值解法
x10=0; x20=0; k=0; while 1 k=k+1; x1k=(1+x20-0.1*exp(x10))/4; x2k=(x10-x10^2/8)/4; %雅克比迭代法 %x2k=(x1k-x1k^2/8)/4; %高斯-赛德尔迭代法 err1=abs(x1k-x10); err2=abs(x2k-x20); err=max(err1,err2); if err<=0.00000000005 break; end x10=x1k; x20=x2k; end
0.0000055305 0.0000001511 0.0000000041 0.0000000001
非线性方程组的数值解法
牛顿迭代法:根据求解非线性方程的牛顿迭代法,如果已经 k k T ,则 ,, xn 给出方程组 Fx 0 的一个近似根 xk x1k , x2 可把函数 Fx 的分量 fi x, i 1,2,, n 在 x k 处按多元函数泰 勒公式展开,取其线性部分做近似,得
(0.2325668498,0.0564514831) (0.2325670008,0.0564515487) (0.2325670050,0.0564515196) (0.2325670051,0.0564515197) (0.2325670051,0.0564515197)
0.0002023950


所以有
1 x φx 1 2 x1
0
T
取初值 x 代公式收敛。
T 0 x 0 , 0 附近 φx 1,所以迭 0,0 ,在
1 1 x 1 e 40 x2 2 1 1 x1 x2 4 16

第7章 非线性方程的数值解法

第7章 非线性方程的数值解法

设 0为给定精 度要求,试确定分半次 数k 使
x* xk
ba 2k
由 于2k , 两 边 取 对 数 , 即 得
ba
k ln(b a) ln
ln 2
数值分析
18/47
§例1: 5.用2 二二分分法 求 法x3 4x2 10 0在[1,2]内 的 根 ,
要 求 绝 对 误 差 不 超 过1 102。 2
第七章 非线性方程的数值解法
数值分析
本章内容
§7.1 方程求根与二分法 §7.2 不动点迭代及其收敛性 §7.4 牛顿法 §7.5 弦截法
数值分析
2/47
本章要求
1. 掌握二分法基本原理,掌握二分法的算法 流程;
2. 掌握理解单点迭代的基本思想,掌握迭代 的收敛条件;
3. 掌握Newton迭代的建立及几何意义,了解 Newton迭代的收敛性;
27/47
§ 7.2 不动点迭代法及其收敛性
不动点迭代的几个重要问题: 1、迭代格式的构造; 2、初值的选取; 3、敛散性的判断;☆ 4、收敛速度的判断。
数值分析
28/47
§ 7.2 不动点迭代法及其收敛性
三.压缩映射原理(整体收敛性)
考虑方程x g( x), g( x) C[a, b], 若
则f (x)=0在[a, b]内必有一根。
二. 过程
将区间对分,判别f (x)的符号,逐步缩小有根区 间。
数值分析
14/47
§7.1.2 二分法
三. 方法
取xmid=0.5*(a+b)
若f(xmid) < (预先给定的精度),则xmid即为根。
否则,若f (a)*f (xmid)<0,则取a1=a,b1=xmid 若f (a)*f (xmid)>0,则取a1=xmid,b1=b 此时有根区间缩小为[a1, b1],区间长度为 b1-a1=0.5*(b-a)

非线性方程组数值解法

非线性方程组数值解法

非线性方程组数值解法

非线性方程组数值解法是通过数值方法解决非线性方程组问题的一种解法。

非线性方程组不像普通的线性方程组,它们往往没有普遍的解析解,一般只有数值解。

因此,非线性方程组的数值解法非常重要。

非线性方程组数值解法的基本思想是,将非线性方程组分解为多个子问题,并采用一种迭代算法求解这些子问题。

最常见的数值方法有牛顿法、拟牛顿法和共轭梯度法等。

牛顿法是利用曲线上的点的二次近似,将非线性方程分解为两个子问题,转换为求解一个简单的一元方程的问题来求解非线性方程组的数值解。

拟牛顿法利用有限差分方法来求解非线性方程组的数值解,共轭梯度法利用解的搜索方向,进行有效的搜索,通过解的最优性条件收敛到解。

非线性方程组数值解法是目前应用最广泛的数值解法,它能很好地求解非线性方程组。

不仅能有效求解复杂的非线性方程组,还能求出较精确的数值解。

此外,非线性方程组数值解法运算速度快,可以对模型进行实时定位和跟踪,非常适合模拟复杂的动态系统。

总之,非线性方程组数值解法是一种求解复杂非线性方程组的有效解法,它的准确性高,运算速度快,广泛应用于现实世界中的多种工程与科学计算问题。

数值分析实验报告纸非线性方程的数值解法及其并行算法

数值分析实验报告纸非线性方程的数值解法及其并行算法

>>二 :牛顿切线
[k,piancha,xdpiancha,xk,yk]=diedai2(1.5,0.0001,100) ans = 1.0000 ans = 2.0000 ans = 3.0000 ans = 4.0000 ans = 5.0000 ans = 6.0000 ans = 7.0000 ans = 0.8306 1.2408 0.6694 1.5361
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]'; 建立并保存下面的M文件fun.m function y=fun(x) y=2*x^3-x^2-5; >>[k,piancha,xdpiancha,xk,yk]=diedai2(1.5,0.0001,30) 牛顿切线法的 MATLAB 主程序 现提供名为 newtonqx.m 的 M 文件: function [k,xk,yk,piancha,xdpiancha]=newtonqx(x0,tol,ftol,gxma x) x(1)=x0; for i=1: gxmax x(i+1)=x(i)-fnq(x(i))/(dfnq(x(i))+eps); piancha=abs(x(i+1)-x(i)); xdpiancha= piancha/( abs(x(i+1))+eps); i=i+1; xk=x(i);yk=fnq(x(i)); [(i-1) xk yk piancha

数值分析 数值分析 Newton迭代法求解非线性方程实验

数值分析  数值分析  Newton迭代法求解非线性方程实验
intf("%Lf\n",u[k][j]);
}//计算出u[i][j]并输出.
第二部分 for(i=k+1;i<n;i++)
{s=0.0;
for(r=0;r<k-1;r++)
{s=s+l[k][r]*u[r][k];}
l[i][k]=(a[i][k]-s)/u[k][k];
printf("%Lf\n",l[i][k]);
{s=0.0;
for(r=0;r<k-1;r++)
{s=s+l[k][r]*u[r][k];}
l[i][k]=(a[i][k]-s)/u[k][k];
printf("l[%d][%d]%Lf\n",i,k,l[i][k]);}
}
}
六、实验结果
七、上机实验体会
在这个试验中同样叶出现了很多问题,对L,U的求解输出中,输出的位置的不同,结果也就会出差错.经过多次调整,结果总算输出了.
通过此次试验,我理解了多重循环的运用,并了解了古人的聪明智慧,]讲将复杂问题简单化,现在的大学生们,应该学习他们的创新及钻研精神。
for(k=0;k<n;k++)
{for(j=k;j<n;j++)
{s=0.0;
for (r=0;r<k-1;r++)
{s=s+l[k][r]*u[r][j];}
u[k][j]=a[k][j]-s;
printf("u[%d][%d]=%Lf\n",k,j,u[k][j]); }
for(i=k+1;i<n;i++)

数值分析第七章 非线性方程与方程组的数值解法0607)

数值分析第七章  非线性方程与方程组的数值解法0607)

一、二分法
3. 二分法的一个例题
例2 求x3 x 1 0在[1.0,1.5]内的一个实根,准确到
小数点后2位.
k ak
bk
xk
f(xk)符号
0 1.0
1.5
1.25

1 1.25
1.375
+
2
1.375 1.3125

3 1.3125
1.3438
+
4
1.3438 1.3281
+
5
1.3281 1.3203
续,并且
(x*) (x*) ( p1) (x*) 0, ( p) (x*) 0,
只要相邻两次 计算结果的偏
|
xk
x* |
Lk 1 L
|
x1
x0
|
.
(2.5)
差足够小即可
保证近似值xk 具有足够精度
|
xk
x* |
1 1 L
|
xk 1
xk
|
.
(2.6)
二、不动点迭代法
3. 存在性与收敛性
• 局部收敛性
- 定义1 设(x)有不动点x*,若对任意x0∈{ x*
的某个邻域R},迭代公式(2.2)产生的序列 {xk}∈R,且收敛到x*,则称迭代法(2.2)局部 收敛.
2). 存在正数L<1,使对任意x,y∈[a, b]都有
| (x) ( y) | L | x y |;
则(x)在[a, b]上存在唯一的不动点x*.
二、不动点迭代法
3. 存在性与收敛性
• 全局收敛的充分条件
- 定理2 设(x) 满足定理1中两条件,则对任意
x0∈[a, b],迭代法收敛,并有误差估计式

数值分析 第七章 非线性方程(组)的数值解法.

数值分析 第七章 非线性方程(组)的数值解法.
x0
y
,这样就可得缩小有根区间 a1 , b1
y=f(x) y=f(x)
x* a a1 x1 a2 x* x0 b1 b2 b a x0 a1 x1 a2 b b1 b2
23/87 郑州大学研究生2014-2015学年课程 数值分析 Numerical Analysis
§7.2 二分区间法 ② 对压缩了的有根区间 a1 , b1 施行同样的手法, b 即取中点 x a 2 ,将区间 a1 , b1 再分为两半,然 后再确定有根区间 a 2 , b2 ,其长度是 a1 , b1 的 二分之一。
长h=(B-A)/n(n是正整数),在[A,B]内取定节点:xi=x0+ih (i=0,1,2,…,n),从左至右检查f (xi)的符号,如发现xi与端点x0 的函数值异号,则得到一个缩小的有根子区间[xi-1,xi]。
y
0 A
a1 b1 a2 b2
B
x
20/87 郑州大学研究生2014-2015学年课程 数值分析 Numerical Analysis
§7.1 引言
数值解法的三个步骤 ① 判定根的存在性。即方程有没有根?如果有 根,有几个根? ② 确定根的分布范围。即将每一个根用区间隔 离开来,这个过程实际上是获得方程各根的 初始近似值。(隔离根) ③ 根的精确化。将根的初始近似值按某种格式 逐步精确化,直到满足预先要求的精度为止。
10/87 郑州大学研究生2014-2015学年课程 数值分析 Numerical Analysis
3/87 郑州大学研究生2014-2015学年课程 数值分析 Numerical Analysis
§7.1 引言 当 f (x)不是x的线性函数时,称对应的函数方程
f (x)=0为非线性方程。

非线性方程数值解法

非线性方程数值解法

对分区间法
对分法的基本思想


对分法的基本思想是在平分有根区间的 过程中,逐步缩小有根区间. 设函数f(x)在区间[a, b]上连续,且f(a) f(b)<0 ,则方程f(x)=0在(a, b)内至少有一 个根.为简便起见,假定方程f(x)=0在(a, b) 内仅有一个根.这样(a, b)为有根区间.这 时可用下面的对分法求方程f(x)=0的近似 根.

迭代法的整体收敛性


定理1 (迭代收敛定理)设(x)在[a, b]上具有一阶 导数,且 1°x[a, b] ,总有(x)[a, b] ; 2°存在0m<1,使x(a, b) ,有'(x)m 则 1°方程x=(x)在[a, b]内有且仅有一根α ,其中α 为对任意初值x0 [a, b]由迭代过程xk+1=(xk)所产生 序列的极限. m xk xk xk 1 2°有估计式

求根步骤


(1)确定所给方程存在多少个根. (2)进行根的隔离,找出每个有根区间, 有根区间内的任一点都可看成是该根的 一个近似值. (3)逐步把近似根精确化,直到足够精 确为止.
根的隔离
根的隔离

确定出若干个小区间,使每个小区间有 且仅有方程f(x)=0的一个根,这个步骤称 为根的隔离.其中每个有根小区间都称为 隔根区间.
第三章
非线性方程的数值解法
根的概念
给定方程f(x)=0,如果有α使得f(α)=0, 则称α为f(x)=0的根或f(x)的零点. 设有正整数m使得f(x)=(x-α)mg(x) 且g(α)0 ,则当m2时,称α为f(x)=0的 m重根;当m=1时,称为f(x)=0的单根. 本章只讨论实根的求法.

数值分析教案_非线性方程的数值解法

数值分析教案_非线性方程的数值解法

定理 2(不动点迭代法的全局收敛性定理) 设 ( x) C[a, b] 满足定理 1 中的两个条 件,则对任意的 x0 [a, b] ,由(2.1)式生成的迭代序列 {xk } 收敛到 ( x) 在 [a, b] 上的不 动点,且有
| x* xk | | xk 1 xk | , 1 L
ak bk ) 。记第 n 次过程得到的隔根区间为 2
[an , bn ] ,则 [a0 , b0 ] [a1, b1 ] [a2 , b2 ] [an , bn ]
an x* bn , n 0,1, 2,
bn an bn 1 an 1 2 b0 a0 2n
k
则称迭代方程(2.1)收敛。 2.2 不动点的存在性与迭代法的收敛性 定义 若存在常数 L ,使对任何 x1 , x2 [a, b] 有
| ( x1 ) ( x2 ) | L | x1 x2 |
则称 ( x) 在 [a, b] 上满足 Lipschitz(利普希茨)条件, L 称为 Lipschitz 常数。 显然, 若 ( x) 在 [a, b] 上满足 Lipschitz 条件, 则 ( x) 在 [a, b] 上连续。 若 ( x ) 在 [ a, b] 上一阶导数存在且有界,则 ( x) 在 [a, b] 上满足 Lipschitz 条件。 定理 1(不动点存在性定理) 设 ( x) C[a, b] 满足以下两个条件: (1)对任意 x [a, b] ,有 ( x) [a, b] ; (2) ( x) 在 [a, b] 上满足 Lipschitz 条件,且 Lipschitz 常数 L 1 ; 则 ( x) 在 [a, b] 上存在唯一的不动点。 证明:先证明不动点的存在性,记 g ( x) x ( x) ,由定理条件有 g (a) a (a) 0 及 g (b) b (b) 0 ,若有一等号成立,则 g (a) 0 或 g (b) 0 ,即 有不动点,否则必 有 g (a) g (b) 0 ,因 g ( x) C[a, b] ,则必有 x* [a, b] 使 g ( x* ) x* ( x* ) 0 ,x* 即为 的 不动点。

数值分析-第三章小结

数值分析-第三章小结

姓名 班级 学号第三章 非线性方程的数值解法一、学习体会本章主要介绍了非线性方程组的方程根的解法,求方程根的步骤,由于非线性方程组只有少数类型能解出根的解析表达式,只能用数值方法求出它的近似值。

求解非线性方程组的方法有作图法等,求根的方法有二分法、迭代法、牛顿法、割线法等。

在学习过程当中,我们要注意各种方法的特点与使用范围,针对不同场合下的非线性方程组,选择合适的方法有利于我们快速准确的得到所要求的结果。

二、知识梳理非线性方程的迭代解法1、对分法对分法的算法步骤如下:对k=0,1……,M 执行(1)计算k 2a kk x b +=; (2)()k f x ε<或者2k k b a ε-<则停止计算。

取s=k x ,否则转(3); (3)若f(k a )f (k x )〈0,令k+1k+1k k a =b =a x ,,;若f(k a )f (k x )〉0则有k+1k+1k k a =b =b x ,,; (4)若k=M ,则输出M 次迭代不成功的信息;否则继续。

2、简单迭代法及其收敛性定理1:设函数()[,]x C a b ϕ∈,在(a,b)内可导,且满足两个条件:(1)当[,]x a b ∈时, ()[,]x a b ϕ∈;(2)当(,)x a b ∈时, |'()|1x L ϕ≤<, 其中L 为一常数。

则有如下结论:(1)方程=()x x ϕ在区间[,]a b 上有唯一的根s ;(2)对任取0[,]x a b ∈,简单迭代法1=()k k x x ϕ+产生的序列{}[,]k x a b ⊂且收敛于s ;(3)成立误差估计式101|-|||1|-|||1kk k k k L s x x x L L s x x x L-≤--≤-- 定理2 设=()s s ϕ,'()x ϕ在包含s 的某个开区间内连续。

如果|'()|<1s ϕ,则存在0δ>,当0[,]x s s δδ∈-+时,由简单迭代法1=()k k x x ϕ+产生的序列{}[,]k x s s δδ⊂-+且收敛于s 。

非线性方程的数值解法

非线性方程的数值解法
第二章 非线性方程的数值解法
非线性方程:f(x)=0 包括:代数方程(多项式)、超越方程(三角函数、指
数函数或对数函数)。
求解方法:直接求解法、间接求解法; 直接求解法一般为解析法,能够得到精确解,如二次方 程求根公式等。简单但不一定总有效。 间接求解法一般较复杂,可以利用计算机进行计算,其 结果为近似解,但误差可以控制。
L L2 | x * xk | | x k x k 1 | | x k 1 xk 2 | ...... 1 L 1 L 注:定理条件非必要条件,对某些问题在区间 [a, b]上不 k L 满足| φ ’(x) | L < 1 ,迭代也收敛。 | x1 x0 | 1 L

是 是
f (a) =0

否 f(a)f(m)>0 否 b=m
打印b, k
结束
打印a, k
k=K+1
应用: 3 f x x 2x 5, a, b 2,3, 0.01 ,求x=? 例、设 解: k ba a x b
0 1 2 3 4 5 6
23+ 2.5+ 1 22.5+ 2.25+ 0.5 22.25+ 2.125+ 0.25 22.125+ 2.06250.125 2.06252.125+ 2.093750.0625 2.09375 2.125+ 2.109375+ 0.03125 2.09375 2.109375 2.1015625 0.015625 0.02
L | x k x k 1 | ? ④ | x * xk | 1 L
3 简单迭代法
| x xk | L | x xk 1 | L | x * xk xk xk 1 | | xk xk |) 1 |来 L(| x * x可用 | | x x k k k 1 (1 L) | x x | L | x x | 控制收敛精度

数值分析实验报告_清华大学_非线性方程的解法

数值分析实验报告_清华大学_非线性方程的解法

非线性方程的解法实验1.算法设计与比较问题提出:非线性方程组的求解方法很多,基本的思想是线性化。

不同的方法效果如何,要靠计算的实践来分析、比较。

实验内容:考虑算法(1)牛顿法(2)拟牛顿法分别编写它们的matlab程序。

实验要求:(1)用上述方法,分别计算两个例子。

在达到精度相同的前提下,比较迭代次数、浮点运算次数和CPU时间等。

1.1程序清单为使用flops统计浮点运算次数,使用MATLAB5.3版本%f1.m原函数f1function y=f(x)y(1)=12*x(1)-x(2)^2-4*x(3)-7;y(2)=x(1)^2+10*x(2)-x(3)-8;y(3)=x(2)^3+10*x(3)-8;end%ff1.m原函数f1的雅克比矩阵function y=ff(x)y(1,:)=[12,-2*x(2),-4];y(2,:)=[2*x(1),10,-1];y(3,:)=[0,3*x(2)^2,10];end%f1.m原函数f2function y=f2(x)y(1)=3*x(1)-cos(x(2)*x(3)) -1/2;y(2)=x(1)^2-81*(x(2)+0.1)^2+sin(x(3))+1.06;y(3)=exp(-x(1)*x(2))+20*x(3)+1/3*(10*pi-3);end%ff2.m原函数f2的雅克比矩阵function y=ff2(x)y(1,:)=[3,x(3)*sin(x(2)*x(3)),x(2)*sin(x(2)*x(3))];y(2,:)=[2*x(1),-2*81*(x(2)+0.1),cos(x(3))];y(3,:)=[-x(2)*exp(-x(1)*x(2)),-x(1)*exp(-x(1)*x(2)),20]; end%牛顿法(以第一个方程组为例)clear;x0=[0,0,0]';n=10;tol=1e-6;x(:,1)=x0;i=1;u=[1,1,1]';tic;while (norm(u)>tol*norm(x(:,i))&(i<n))A=ff1(x(:,i));b=f1(x(:,i))';u=-A\b;x(:,i+1)=x(:,i)+u;i=i+1;end;x(:,i)iter=i-1t=toc%拟牛顿法(以第一个方程组为例)clear;x0=[0,0,0]';n=10;tol=1e-6;x(:,1)=x0;i=1;p=[1,1,1]';A=ff1(x(:,1));tic;while (norm(p)>tol*norm(x(:,i))&(i<n))x(:,i+1)=x(:,i)-A\f1(x(:,i))';p=x(:,i+1)-x(:,i);q=f1(x(:,i+1))'-f1(x(:,i))';A=A+(q-A*p)*p'/norm(p,2)^2;i=i+1;end;iter=i-1t=tocx(:,i)1.2运行结果1.2.1第一个方程组精确解为*T =(0.886020214719037, 0.796444775323146, 0.749479574122230)x 取最大迭代次数n=5000,相对误差限Tol=1e-6 (1)取()(0)1,1,1x T=牛顿迭代法迭代3次收敛,浮点运算次数为440,每次迭代平均浮点运算次数为147,CPU 耗时t =0(s)拟牛顿法迭代4次收敛,浮点运算次数为1048,每次迭代平均浮点运算次数为262,CPU 耗时t =0(s)(2)取()(0)000x T =,, 牛顿迭代法迭代4次收敛,浮点运算次数为510,每次迭代平均浮点运算次数为128,CPU 耗时t =1.600e-002(s)拟牛顿法迭代6次收敛,浮点运算次数为1493,每次迭代平均浮点运算次数为248,CPU 耗时t =1.50e-002(s)(3)取()(0)50,5050x T=,牛顿迭代法迭代15次收敛,浮点运算次数为2118,每次迭代平均浮点运算次数为141,CPU 耗时t =1.600e-002(s)拟牛顿法迭代338次收敛,浮点运算次数为88454,每次迭代平均浮点运算次数为262,CPU 耗时t =3.100e-002(s)1.2.2第二个方程组精确解为*T =(0.886020214719037, 0.796444775323146, 0.749479574122230)x 取最大迭代次数n=5000,相对误差限Tol=1e-6(1)取()(0)000x T=,, 牛顿迭代法迭代5次收敛,浮点运算次数为776,每次迭代平均浮点运算次数为155.2,CPU 耗时t =0(s)拟牛顿法迭代6次收敛,浮点运算次数为1635,每次迭代平均浮点运算次数为273,CPU 耗时t =0(s)(2)取()(0)888x T=,, 牛顿迭代法迭代9次收敛,浮点运算次数为1519,每次迭代平均浮点运算次数为169,CPU 耗时t =0(s)拟牛顿法迭代21次收敛,浮点运算次数为5924,每次迭代平均浮点运算次数为282,CPU 耗时t =1.600e-002(s)(3)对于离精确解更远的初值(如()(0)101010x T=,,),在计算中会出现奇异或接近奇异的矩阵,计算结果误差很大或计算根本无法进行下去。

计算方法 第2章 非线性方程数值解法

计算方法 第2章 非线性方程数值解法

第二章非线性方程数值解法本章将讨论非线性方程0)(=x f (2.1)的数值解法,我们最为熟悉的非线性方程是一元二次方程02=++c bx ax也是最简单的非线性方程,其解为:aac b b x 2422,1-±-=但是对于(2.1)式中一般形式的非线性函数)(x f ,很难甚至不可能找到解析形式的解,通常只能用数值的方法求其近似数值解。

2.1 基本概念定义2.1如果*x 满足0)(*=x f ,则称*x 为方程(2.1)的解或根,也称*x 为函数)(x f 的零点或根。

用数值方法求解非线性方程的解,通常需要我们对其解有一个初步的估计,或知道其解的一个限定区间,因此确定包含解的区间将是我们首先需要解决的问题。

定义2.2若连续函数)(x f 在],[b a 内至少有一个根,则称],[b a 为有根区间,若在],[b a 内恰有一个根,则称],[b a 为隔根区间。

定理2.1 如果函数)(x f 在],[b a 上连续且0)()(<b f a f ,则)(x f 在),(b a 内至少有一个根,如果函数)(x f 另外满足在],[b a 上单调连续,则)(x f 在),(b a 内恰有一个根。

寻找隔根区间的通常方法有:图形法, 试探法。

例2.1 求033)(3=+-=x x x f 的有根区间。

解:作出函数)(x f y =的曲线图形图2.1 例2.1曲线示意图观察图中的曲线与X 轴的交点,可判断在区间)2,3(--之间方程有一个根。

例2.2 求033)(23=--+=x x x x f 的有根区间。

解:计算出)(x f 在一些点的值。

从表中可以看出1-=x 是一个根,区间)2,1(是一个有根区间。

如果在[-2,-1]之间把间隔再缩小到0.25我们可以得到下列表格在这个表格里我们又发现一个有根区间)5.1,75.1(--。

从此例中我们可以体会到试探法有可能漏掉某些有根区间,具有一定的局限性。

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

迭代法的局部收敛性

定义2 设方程x=(x) 根α, 如果存在α 的某个邻域 : x-α,对任意初值 x0,迭代过程所产生的序列均收敛 于根α ,则称该迭代法是局部收敛的.
迭代过程的收敛速度

定义3 记 ek = α- xk ,若
k
lim
ek 1 ek
p
C 0
则称迭代过程是p阶收敛的. 特别地,当p=1时,称为线性收敛; 当p>1时,称为超线性收敛, 当p=2时,称为平方收敛. p越大,收敛越快.

l (l 2 3a ) l (3l 2 a )
解得 l 0, l a .由题知取 l a .即迭代序列收敛于 a .
3 2 a ( xk 3 ax ) /(3 x a) k k ( a xk )3 lim lim lim 3 k ( a x )3 k k ( a x )3 (3 x 2 a ) ( a xk ) k k k
L xk xk xk 1 1 L Lk xk x1 x0 1 L

证 根的存在性 由(2)知(x)连续. 令f(x)=x-(x), f(a)0, f(b)0, 从而 f(x)=0在[a, b] 上有根,即x=(x)在[a, b] 上有根. 根的唯一性 设x=(x)在[a, b] 上有两根α1, α2, α1 α2 , α1- α2=(α1)-(α2)L α1- α2 与 L<1矛盾.故α1= α2 序列的收敛性 xk+1-α=(xk)-(α)Lxk-α , xk+1-αLk+1x0-α 由0L<1有

不动点迭代法的局部收敛性及收敛阶
定理1.3 若(x)在方程x=(x)的根α的邻域内有 一阶连续的导数,且'(α) <1,则迭代过程 xk+1=(xk)具有局部收敛性 证 由连续函数性质,存在α的充分小邻域 : x-α, 使当x 时,有 ' (x)L<1 由微分中值定理有 (x)–α=(x)–(α)='()x-α<x-α 故(x),由定理1.2知对任意初值x0 均收敛 .
1 f ( r ) (1 ) x (x ) (r ) r f ( 2 )
1 f ( r ) (1 ) ( x) ( ) ( x ) (x ) (r ) r f (2 )
( ) lim ( x) ( ) 1 1 0, ( ) 1 x x r
1 ( p) xk 1 (1 )( xk ) p p!
k
lim
xk 1 xk
p

1 ( p) ( ) 0 p!
必要性 (略)
例 能不能用迭代法求解方程x=4-2x,如果不能
时,试将方程改写成能用迭代法求解的形式.
方程为x-4+2x =0.设f(x)= x-4+2x ,则f(1)<0,f(2)>0, f‘(x)= 1+2x ln2>0,故方程f(x)=0仅在区间(1, 2)内有唯一根. 题中 (x)=4-2x,当时x[1,2]时,' (x)=-2xln2>2ln2>1 ,由 定理1.2不能用 xk 1 4 2x 来迭代求根. 把原方程改写为x=ln(4-x)/ln2, 此时(x)=ln(4-x)/ln2 , 则有 1°当x[1,2]时, (x)[1,ln3/ln2] [1,2] 2°x[1,2] ,有 '(x)= 1 1 1 1 1 1

1 a x ( x ), x0 0 (k 0,1, 2, 例 研究求 a 的Newton公式 k 1 k 2 xk
证明:对一切 k 1, 2, , xk a ,且序列{xk}是单调递减的, 从而迭代过程收敛.
事实上,若α是f(x)=0的重根,设其重数为r,
f ( x) ( x) x f ( x)
f ( ) f ( )( x ) x f ( ) f ( )( x ) 1 1 f ( r 1) ( )( x )r 1 f (r ) (1 )( x )r (r 1)! r! 1 1 f ( r 1) ( )( x )r 2 f (r ) ( 2 )( x ) r 1 (r 2)! (r 1)!
由此知若α是f(x)=0的一个单根, f(α)=0, f'(α)0, '(α)=0, ''(α)=f''(α)/f'(α), 则在根α附近Newton 法是局部收敛的, 并且是二阶收敛的,即 p=2.
EI 2 但如果α是f(x)=0的重根,则Newton法仅是线性 收敛的 ,即 p=1.
1 11


定理1.4 若(x)在方程x=(x)的根α的邻域内有 充分阶连续的导数,则迭代过程xk+1=(xk)是p阶 收敛的充分且必要条件是 (j)(α)=0, j=1,2,,p-1 (p)(α)0

证 充分性
xk 1 ( xk ) ( ) ( )( xk ) 1 1 ( p 1) ( )( xk ) p 1 ( p ) ( )( xk ) p ( p 1)! p!
1 L
令p,有
L xk xk 1 1 L Lk xk x1 x0 1 L
xk
定理1.2 设(x)在[a, b]上具有一阶导数,且 (1)当x[a, b]时, (x)[a, b] ; (1) x[a, b] ,有'(x)L<1 则对任意初值x0 [a, b], 迭代过程 xk+1=(xk)收敛于 x=(x)的惟一根.
Newton迭代法的全局部收敛性
定理1.5 设f(x)在有根区间[a, b]上二阶导数存在, 且满足 (1) f(a)f(b)<0; (2) f'(x)0, x[a, b]; (3) f''(x)不变号, x[a, b]; (4) 初值x0 [a, b]且使f''(x0) f(x0)>0; 则 Newton 迭代法收敛于f(x)=0在[a, b]内的惟一 根.
逐次逼近方程f(x)=0的根α ,这种求根算法称为 Newton法(切线法),此公式称为 Newton迭代公式.
Newton迭代法的收敛性及收敛阶
f ( x) Newton法的迭代函数是 ( x ) x ( x) f 从而 ( x) f ( x) f ( x) [ f ( x)]2
a xk 1
lim
1 1 0 k 3 x 2 a 4a k
a
故此迭代式确是求
的三阶方法.
Newton迭代法
Newton迭代法

设有方程f(x)=0,在f(x)=0的根α附近任取一点x0 作为初始近似根,由迭代公式
f ( xk ) xk 1 xk f ( xk ) (k 0,1, 2, )
第一章
非线性方程和方程组的数值解法
非线性方程根的概念
给定非线性方程f(x)=0 如果有α使得f(α)=0,则称α为f(x)=0的根 或f(x)的零点. 设有正整数m使得f(x)=(x-α)mg(x) 且g(α)0 ,则当m2时,称α为f(x)=0的m 重根;当m=1时,称α为f(x)=0的单根. 若α为f(x)=0的m重根,则 f(α)=f(α)==f (m-1)(α)=0, f (m)(α)0 这里只讨论实根的求法.
求根步骤

(1)根的存在性. (2)根的隔离. (3)根的精确化.
非线性方程求根的数值方法

二分法 迭代法
单点迭代法(不动点迭代,Newton迭代法) 多点迭代法(弦截法)

迭代法是一种逐次逼近的方法,它的基 本思想是通过构造一个递推关系式 (迭 代格式) ,计算出根的近似值序列,并要 求该序列收敛于方程的根.

多点迭代法

建立迭代公式 xk+1=(xk-n+1, ,xk-2, xk-1, xk)
(3)
对于迭代法需要考虑一下几个主要问题 收敛性 收敛速度 计算效率
迭代法的局全收敛性

定义1 设为f(x)=0的根,如果x0[a, b], 由迭代法产生的序列都收敛于根 ,则 称该迭代法是全局收敛的。

例 设a>0,x0>0,证明:迭代公式
2 xk ( xk 3a) xk 1 2 (3xk a)
是计算 a 的三阶方法.

证 显然当a>0,x0>0时,xk>0(k=1,2,…).令 (x)=x(x2+3a)/(3x2+a)
(3x 2 3a)(3x 2 a) x( x 2 3a) 6 x 3( x 2 a) 2 ( x) 2 2 (3x a) (3x 2 a)2 故对x 0, ( x) 1 ,从而迭代收敛.设{xk}的极限为l,则有
k
lim xk
误差估计 xk+1-xk=(xk)–(xk-1)Lxk-xk-1 xk+2-xk+1=(xk+1)–(xk)L2xk-xk-1 xk+p-xk+p-1Lpxk-xk-1 xk+p-xk xk+p-xk+p-1+xk+p-1-xk+p-2++ xk+1-xk (Lp+Lp-1++L) xk-xk-1 L Lp 1 = xk xk 1

k
4 x ln 2
4 2 ln 2
2ln 2
由定理1.2知可用迭代公式xk+1=ln(4-xk)/ln2来求解(1,2)区 间内的唯一根.
相关文档
最新文档