第七章 非线性方程求根 习题七 1 用二分法求方程 的正 …
非线性方程解法二分法实验报告
第七章非线性方程解法⒈二分法考察有根区间[a, b],取中点x0=(b+a)/2 将它分为两半,假设中点x0不是f(x)的零点,然后进行根的搜索,即查找f(x0)与f(a)是否同号,如果确系同号,说明所求的根x*在x0的右侧,这是令a1= x0,b1=b;否则x*必在x0的左侧,这是令a1=a,b1=x0,不管出现哪一种情况,新的有根区间[a1, b1]的长度仅为[a, b]的一半。
.重复以上做法得新近似根x1,…这样不断将区间分半,得到一系列区间[an , bn],和近似根(区间中点)nx,n=0,1,2,3…,nx误差为(b-a)/2n+1.这样的方法称为二分法。
下面是一个关于二分法的例子。
例1求f(x)=x3- x-1=0在区间[1,1.5]内的一个实根,要求准确到小数点后的第二位.这里a=1,b=1.5,而f(a)<0,f(b)>0。
取[a,b]的中点x0=1.25,将区间二等分,由于f(x0 )<0, 既f(x0 )与f(a)同号,故所求的根x*必在x0 右侧,这是应令a1=x0 =1.25, b1=b=1.5,而得到新的有根区间[a1,b1],这样继续结果如下表:x6.实际上x5就有三位有效数字了.二分法实验(1)上机题目:二分法的应用实验目的:熟悉二分法并在计算机上实现实验要求:①上机前充分准备,复习有关内容,写出计算步骤,查对程序;②完成实验后写出完整的实验报告,内容应该包括:所用的算法语言,算法步骤陈述,变量说明,程序清单,输出计算结果,结果分析等等;③用编好的程序在Matlab环境中执行。
算法说明:①找出计算f(x)在有限根区间[a, b]端点的值,f(a),f(b)②计算计算f(x)在区间中点(2ba+)处的值f(2ba+) .③判断若f(2ba+)=0,则2ba+即是根,计算过程结束,否则检验若f(2ba+)f(a)<0,则以2ba+代替b,否则以2ba+代替a.反复执行步骤②和步骤③,直到区间[a, b]长度小于允许误差ξ,此时中点2ba+即为所求近似根。
非线性方程求根word版
第7章 非线性方程求根本章主要内容:1.区间二分法. 2切线法. 3.弦位法. 4.一般迭代法.重点、难点一、区间二分法区间二分法是求方程f(x)=0根的近似值的常用方法。
基本思想:利用有根区间的判别方法确定方程根的区间[a,b] ,将有根区间平分为二;再利用有根区间的判别方法判断那一个区间是有根区间;重复上述步骤,直到小区间端点差的绝对值小于等于精度要求的数值,则用将上一区间的分半值作为方程的根的近似值。
区间二分法的计算步骤如下: 1.计算区间端点的函数值f(a) , f(b)(不妨设f(a)<0,f(b)>0);确定初始有根区间[a,b]. 2.二分有根区间[a,b],并计算)2(ba f + 取21b a x +=3.判断: 若0)(1=x f ,则方程的根为1x x =*;若 0)(1>x f ,则有根区间为[]1,x a x ∈*;令[]],[,111b a x a =若 0)(1<x f ,则有根区间为[]b x x ,1∈*;令 []],[,111b a b x =4. 如果│b-a │<ε(ε为误差限),则方程的根为2ba x +=*;否则转向步骤2,继续二分有根区间[a 1,b 1],并计算中点值,继续有根区间的判断,直到满足精度要求为止,即│b n -a n │<ε二分次数的确定:如果给定误差限ε,则需要二分的次数可由公式12ln ln )ln(---≥εa b n 确定应二分的次数。
例1 用区间二分法求方程0353=+-x x 在某区间内实根的近似值(精确到0.001)【思路】参见上述区间二分法的计算步骤解 ∵f(1.8)=-0.168<0, f(1.9)=0.359>0 ∴f(x)在区间[1.8 ,1.9]内有一个根。
由公式 644.512ln 001.0ln 1.0ln 12ln ln )ln(=--=---≥εa b n取n=6, 计算结果列表如下:则方程在区间[1.8,1.9]内所求近似值为x *≈ x = 1.8328125区间二分法的优点是计算程序简单,只要f (x )在区间[a,b]上连续,区间二分法就可使用,但区间二分法不能用来求偶次重根,由于区间二分法收敛比较慢,在实际计算中,区间二分法常用来求比较好的含根区间和初始近似值,以便进一步使用收敛更快的迭代法求出更精确的近似值。
数值分析第7章答案
第七章非线性方程求根一、重点内容提要 (一)问题简介 求单变量函数方程(7.1) 的根是指求(实数或复数),使得.称为方程(7.1)的根,也称为函数的零点.若可以分解为其中m 为正整数,满足,则是方程(7.1)的根.当m=1时,称为单根;当m>1时,称为m 重根.若充分光滑,是方程(7.1)的m 重根,则有(1)()(*)'(*)...(*)0,(*)0m m f x f x f x f x -====≠ 若在[a,b]上连续且,则方程(7.1)在(a,b)内至少有一个实根,称[a,b]为方程(7.1)的有根区间.有根区间可通过函数作图法或逐次搜索法求得. (二)方程求根的几种常用方法 1.二分法设在[a,b]上连续,,则在(a,b)内有根.再设在(a,b)内仅有一个根.令,计算和.若则,结束计算;若,则令,得新的有根区间;若,则令,得新的有根区间.,.再令计算,同上法得出新的有根区间,如此反复进行,可得一有根区间套且110011*,0,1,2,...,()...()22n n n n n n a x b n b a b a b a --<<=-=-==-.故因此,可作为的近似根,且有误差估计 (7.2) 2.迭代法将方程式(7.1)等价变形为 (7.3)若要求满足则;反之亦然.称为函数的一个不动点.求方程(7.1)的根等价于求的不动点由式(7.3)产生的不动点迭代关系式(也称简单迭代法)为 (7.4)函数称为迭代函数.如果对任意,由式(7.4)产生的序列有极限 则称不动点迭代法(7.4)收敛.定理7.1(不动点存在性定理)设满足以下两个条件: 1.对任意有2.存在正常数,使对任意,都有 (7.5) 则在上存在惟一的不动点.定理7.2(不动点迭代法的全局收敛性定理)设满足定理7.1中的两个条件,则对任意,由(7.4)式得到的迭代序列收敛.到的不动点,并有误差估计式 (7.6) 和 (7.7)定理7.3(不动点迭代法的局部收敛性定理)设为的不动点,在的某个邻域连续,且,则迭代法(7.4)局部收敛.收敛阶的概念 设迭代过程(7.4)收敛于方程的根,如果迭代误差当时成产下列渐近关系式(7.8)则称该迭代过程是p 阶收敛的.特别地,p=1时称线性收敛,p>1时称超线性收敛,p=2时称平方收敛.定理7.4(收敛阶定理)对于迭代过程(7.4),如果在所求根的邻近连续,并且 (7.9)则该迭代过程在点的邻近是收敛的,并有(7.10)斯蒂芬森(Steffensen)迭代法 当不动点迭代法(7.4)只有线性收敛阶,甚至于不收敛时,可用斯蒂芬森迭代法进行加速.具体公式为 (7.11) 此法也可写成如下不动点迭代式(7.12)定理7.5(斯蒂芬森迭代收敛定理) 设为式(7.12)中的不动点,则是的不动点;设存在,,则是的不动点,则斯蒂芬森迭代法(7.11)是2阶收敛的. 3.牛顿迭代法牛顿迭代法是一种特殊的不动点迭代法,其计算公式为 其迭代函数为 (7.13)牛顿迭代法的收敛速度 当时,容易证明,,,由定理7.4知,牛顿迭代法是平方收敛的,且(7.14)重根情形的牛顿迭代法 当是的m 重根时,迭代函数在处的导数,且.所以牛顿迭代法求重根只是线性收敛.若的重数m 知道,则迭代式 (7.15)求重根二阶收敛.当m 未知时,一定是函数的单重零点,此时迭代式1()()'()'()['()]()''()0,1,2,...k k k k k k k k k k x f x f x x x x x f x f x f x k μμ+=-=--= (7.16)也是二阶收敛的.简化牛顿法 如下迭代法 称为简化牛顿法或平行弦法.牛顿下山法 为防止迭代不收敛,可采用牛顿下山法.具体方法见教材. 4.弦截法将牛顿迭代法(7.13)中的用在,处的一阶差商来代替,即可得弦截法 (7.17)定理7.6假设在其零点的邻域内具有二阶连续导数,且对任意有,又初值,,则当邻域充分小时,弦截法(7.17)将按阶收敛到.这里p 是方程的正根. 5.抛物线法弦截法可以理解为用过两点的直线方程的根近似替的根.若已知的三个近似根,,用过的抛物线方程的根近似代替的根,所得的迭代法称为抛物线法,也称密勒(Muller)法.当在的邻近有三阶连续导数,,则抛物线法局部收敛,且收敛阶为.二、知识结构图10[1,2]1x x --=≤≤--∈3-3-6k k 32三、常考题型及典型题精解例7-1 证明方程x 在上有一个实根x*,并用二分法求这个根,要求|x -x*|10.若要求|x -x*|10,需二分区间[1,2]多少次?解 设f(x)=x ,则f(1)=-1<0,f(2)=5>0,故方程f(x)=0在[1,2]上有根x*.又因f'(x)=3x -1,所以当x [1,2]时,f'(x)>0,即f (x)=0在[1,2]上有惟一实根x*.用二分法计算结果如表7-1所示.k 0 1 2 3 4 5 6 7 8 9 1 1 1.25 1.25 1.3125 1.3125 1.3125 1.3204 1.3243 1.3243 2 1.5 1.5 1.375 1.375 1.13438 1.3282 1.3282 1.3282 1.32631.5 1.25 1.375 1.3125 1.3438 1.3282 1.3204 1.3243 1.3263 1.3253+ - + - + + - - + +610x e -≤≤⨯≤≤≤≤≥∈-3-39910-6k k k+101此时x =1.3253满足|x -x*|0.9771010,可以作为x*的近2似值.1若要求|x -x*|,只需|x -x*|10即可,解得k+119.932,2即只需把[1,2]二分20次就能满足精度要求.例7-2 已知函数方程(x-2)=1,(1)确定有根区间[a,b];(2)构造不动点迭代公式使之对任意初始近似x [a,b],31|10.k x ---<k 迭代方法均收敛;(3)用所构造的公式计算根的近似值,要求|x1lim lim x x x x x e e e e →+∞→-∞∞∞∞∈解 (1)令f(x)=(x-2)-1,由于f(2)=-1<0,f(3)=-1>0,因此区间[2,3]是方程f(x)=0的一个有根区间.又因f'(x)=(x-1),f(x)=+,f(x)=-1,f'(1)=--1<0,当x>1时f(x)单增,x<1时f(x)单减,故f(x)=0在(-,+)内有且仅有一根x*,即x*[2,3].2'k k x x x x x x e e e e e e e ϕϕϕ-----∈∈≤≤≤∀∈k+100k+1(2)将(x-2)=1等价变形为x=2+,x [2,3].则(x)=2+.由于当x [2,3]时2(x)3,|(x)|=|-|<1故不动点迭代法x =2+,k=0,1,2,...,对x [2,3]均收敛.(3)取x =2.5,利用x =2+进行迭代计算,结果如表7-2所示.473cos 3120cos c k x x x ϕ--+=∈≤4k+10-30k+1k+1k 例 考虑求解方程2的迭代公式2x =4+,k=0,1,2,...3(1)试证:对任意初始近似x R,该方法收敛;(2)取x =4,求根的近似值x ,要求|x -x |10;(3)所给方法的收敛阶是多少?2解 (1)由迭代公式知,迭代函数(x)=4+3{}os ,(,).|'sin |1(,)x x x ϕϕϕ∈-∞+∞≤<-∞+∞∀∈0k 022由于(x)的值域介于(4-)与(4+)之间,且3322(x)|=|-33故根据定理7.1,7.2知,(x)在内存在惟一的不动点x*,且对x R,迭代公式得到的序列x 收敛于x*.(2) 取x =4,迭代计算结果如表7-3所示.此时已满足误差要求,即(3)由于,故根据定理7 .4知方法是线性收敛的,并且有。
第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)
数值分析习题
第一章 绪论习题主要考察点:有效数字的计算、计算方法的比较选择、误差和误差限的计算。
1 若误差限为5105.0-⨯,那么近似数0.003400有几位有效数字?(有效数字的计算) 2 14159.3=π具有4位有效数字的近似值是多少?(有效数字的计算)3 已知2031.1=a ,978.0=b 是经过四舍五入后得到的近似值,问b a +,b a ⨯有几位有效数字?(有效数字的计算)4 设0>x ,x 的相对误差为δ,求x ln 的误差和相对误差?(误差的计算)5测得某圆柱体高度h 的值为cm h 20*=,底面半径r 的值为cm r 5*=,已知cm h h 2.0||*≤-,cm r r 1.0||*≤-,求圆柱体体积h r v2π=的绝对误差限与相对误差限。
(误差限的计算)6 设x 的相对误差为%a ,求nx y =的相对误差。
(函数误差的计算)7计算球的体积,为了使体积的相对误差限为%1,问度量半径r 时允许的相对误差限为多大?(函数误差的计算)8 设⎰-=11dx e x eI x n n ,求证: (1))2,1,0(11 =-=-n nI I n n(2)利用(1)中的公式正向递推计算时误差逐步增大;反向递推计算时误差逐步减小。
(计算方法的比较选择)第二章 插值法习题主要考察点:拉格朗日插值法的构造,均差的计算,牛顿插值和埃尔米特插值构造,插值余项的计算和应用。
1 已知1)2(,1)1(,2)1(===-f f f ,求)(x f 的拉氏插值多项式。
(拉格朗日插值)2 已知9,4,10===x x x y ,用线性插值求7的近似值。
(拉格朗日线性插值)3 若),...1,0(n j x j =为互异节点,且有)())(())(()())(())(()(11101110n j j j j j j j n j j j x x x x x x x x x x x x x x x x x x x x x l ----------=+-+-试证明),...1,0()(0n k x x l xnj k jk j =≡∑=。
数学实验项目-使用二分法对非线性方程求根
end 程序输出
n=01,当前有根区间是[0.000000,0.500000],近似根为 0.500000,wucha=0.500000 n=02,当前有根区间是[0.250000,0.500000],近似根为 0.250000,wucha=0.250000 n=03,当前有根区间是[0.250000,0.375000],近似根为 0.375000,wucha=0.125000 n=04,当前有根区间是[0.250000,0.312500],近似根为 0.312500,wucha=0.062500 n=05,当前有根区间是[0.250000,0.281250],近似根为 0.281250,wucha=0.031250 n=06,当前有根区间是[0.265625,0.281250],近似根为 0.265625,wucha=0.015625 n=07,当前有根区间是[0.265625,0.273438],近似根为 0.273438,wucha=0.007813 n=08,当前有根区间是[0.265625,0.269531],近似根为 0.269531,wucha=0.003906 n=09,当前有根区间是[0.265625,0.267578],近似根为 0.267578,wucha=0.001953 n=10,当前有根区间是[0.265625,0.266602],近似根为 0.266602,wucha=0.000977 n=11,当前有根区间是[0.266113,0.266602],近似根为 0.266113,wucha=0.000488 n=12,当前有根区间是[0.266113,0.266357],近似根为 0.266357,wucha=0.000244 n=13,当前有根区间是[0.266235,0.266357],近似根为 0.266235,wucha=0.000122 n=14,当前有根区间是[0.266235,0.266296],近似根为 0.266296,wucha=0.000061 n=15,当前有根区间是[0.266235,0.266266],近似根为 0.266266,wucha=0.000031 n=16,当前有根区间是[0.266235,0.266251],近似根为 0.266251,wucha=0.000015 n=17,当前有根区间是[0.266243,0.266251],近似根为 0.266243,wucha=0.000008 n=18,当前有根区间是[0.266247,0.266251],近似根为 0.266247,wucha=0.000004 n=19,当前有根区间是[0.266247,0.266249],近似根为 0.266249,wucha=0.000002 n=20,当前有根区间是[0.266248,0.266249],近似根为 0.266248,wucha=0.000001
非线性方程求根问题
计算机学院上机实践报告一、目的1.通过本实验,帮助加深对非线性方程求根方法的构造过程的理解;2.能将各种方法编写为程序并上机实现;3.比较各种方法在求解同一非线性方程根时,在收敛情况上的差异。
二、内容与设计思想1.用二分法求方程f(x)=x3-2x-5=0在区间[2 , 3]内的根。
2.方程f(x)=2x3-5x2-19x+42=0在x=3.0附近有根,试写出其三种不同的等价形式以构成三种不同的迭代格式,再用简单迭代法求根,观察这三种迭代是否收敛。
三、使用环境1. 硬件环境微型计算机(Intel x86系列CPU)一台2. 软件环境Windows2000/XP操作系统VC++6.0或其它的开发工具。
四、核心代码及调试过程1.用二分法求方程f(x)=x3-2x-5=0在区间[2 , 3]内的根主要代码:void bisect(double a,double b,int max_B){ double root, ya,yb,yroot;int i,actual_B;ya=f(a);yb=f(b);if(ya*yb>0){ printf("method failed!\n");exit(0); }for(i=1;i<=max_B;i++){ root=(a+b)/2;yroot=f(root); //取当前含根区间的中点if(yroot==0){ a=root;b=root;}else if(yb*yroot>0) //取含根区间为[a,(a+b)/2]{ b=root;yb=yroot;}Else //取含根区间为[(a+b)/2,b]{ a=root;ya=yroot;}if(fabs(b-a)<EPS) break;}root=(a+b)/2; yroot=f(root); actual_B=i;printf("root=%10.6lf\tf(root)=%10.6e\tatual_B=%d\n",root,yroot,actual_B); }结果:2.迭代格式分别为:x=2/19*x*x*x-5/19*x*x+42/19x=sqrt(2/5*x*x*x-19/5*x+42/5);x=(5/2*x*x+19/2*x-21)^(1/3)主要代码:double g(double x){return(pow((2.0/19.0*x*x*x-5/19*x*x+42/19),1.0)); /*定义迭代函数*/}void iterate(double a,double b,double x0,int max_D){int k=1;double x1;while(k<=max_D){x1=g(x0); /*迭代计算*/if((x1<a)||(x1>b)){printf("re_select a proper initial value x0!\n");exit(0);}if(fabs(x1-x0)<EPS) /*迭代成功并达到精度要求*/{printf("method succeed!\n");printf("root=%10.6lf\n",x1);break;}x0=x1;k++; /*x0的值被更新,累加迭代次数*/}printf("iteration times=%d\n",k); /*输出实际迭代次数*/if(k>max_D)printf("method failed!\n");}int main(){ double a=2.0,b=3.0,x0=(a+b)/2.0;int max_D=50;iterate(a,b,x0,max_D);}前两种迭代结果:第三种:输入数据时应注意数据的类型,否则程序会报错。
数值分析引论习题与答案(易大义版)
数值分析引论课后习题与答案易大义版第一章绪论习题一1.设x>0,x*的相对误差为δ,求f(x)=ln x的误差限。
解:求lnx的误差极限就是求f(x)=lnx的误差限,由公式(1.2.4)有已知x*的相对误差满足,而,故即2.下列各数都是经过四舍五入得到的近似值,试指出它们有几位有效数字,并给出其误差限与相对误差限。
解:直接根据定义和式(1.2.2)(1.2.3)则得有5位有效数字,其误差限,相对误差限有2位有效数字,有5位有效数字,3.下列公式如何才比较准确?(1)(2)解:要使计算较准确,主要是避免两相近数相减,故应变换所给公式。
(1)(2)4.近似数x*=0.0310,是 3 位有数数字。
5.计算取,利用:式计算误差最小。
四个选项:第二、三章插值与函数逼近习题二、三1. 给定的数值表用线性插值与二次插值计算ln0.54的近似值并估计误差限.解:仍可使用n=1及n=2的Lagrange插值或Newton插值,并应用误差估计(5.8)。
线性插值时,用0.5及0.6两点,用Newton插值误差限,因,故二次插值时,用0.5,0.6,0.7三点,作二次Newton插值误差限,故2. 在-4≤x≤4上给出的等距节点函数表,若用二次插值法求的近似值,要使误差不超过,函数表的步长h应取多少?解:用误差估计式(5.8),令因得3. 若,求和.解:由均差与导数关系于是4. 若互异,求的值,这里p≤n+1.解:,由均差对称性可知当有而当P=n+1时于是得5. 求证.解:解:只要按差分定义直接展开得6. 已知的函数表求出三次Newton均差插值多项式,计算f(0.23)的近似值并用均差的余项表达式估计误差.解:根据给定函数表构造均差表由式(5.14)当n=3时得Newton均差插值多项式N3(x)=1.0067x+0.08367x(x-0.2)+0.17400x(x-0.2)(x-0.3)由此可得f(0.23) N3(0.23)=0.23203由余项表达式(5.15)可得由于7. 给定f(x)=cosx的函数表用Newton等距插值公式计算cos 0.048及cos 0.566的近似值并估计误差解:先构造差分表计算,用n=4得Newton前插公式误差估计由公式(5.17)得其中计算时用Newton后插公式(5.18)误差估计由公式(5.19)得这里仍为0.5658.求一个次数不高于四次的多项式p(x),使它满足解:这种题目可以有很多方法去做,但应以简单为宜。
第7章非线性方程求根
第7章 非线性方程求根本章主要内容:1.区间二分法. 2切线法. 3.弦位法. 4.一般迭代法.重点、难点一、区间二分法区间二分法是求方程f(x)=0根的近似值的常用方法。
基本思想:利用有根区间的判别方法确定方程根的区间[a,b] ,将有根区间平分为二;再利用有根区间的判别方法判断那一个区间是有根区间;重复上述步骤,直到小区间端点差的绝对值小于等于精度要求的数值,则用将上一区间的分半值作为方程的根的近似值。
区间二分法的计算步骤如下: 1.计算区间端点的函数值f(a) , f(b)(不妨设f(a)<0,f(b)>0);确定初始有根区间[a,b]. 2.二分有根区间[a,b],并计算)2(ba f + 取21b a x +=3.判断: 若0)(1=x f ,则方程的根为1x x =*;若 0)(1>x f ,则有根区间为[]1,x a x ∈*;令[]],[,111b a x a =若 0)(1<x f ,则有根区间为[]b x x ,1∈*;令 []],[,111b a b x =4. 如果│b-a │<ε(ε为误差限),则方程的根为2ba x +=*;否则转向步骤2,继续二分有根区间[a 1,b 1],并计算中点值,继续有根区间的判断,直到满足精度要求为止,即│b n -a n │<ε二分次数的确定:如果给定误差限ε,则需要二分的次数可由公式12ln ln )ln(---≥εa b n 确定应二分的次数。
例1 用区间二分法求方程0353=+-x x 在某区间内实根的近似值(精确到0.001)【思路】参见上述区间二分法的计算步骤解 ∵f(1.8)=-0.168<0, f(1.9)=0.359>0 ∴f(x)在区间[1.8 ,1.9]内有一个根。
由公式 644.512ln 001.0ln 1.0ln 12ln ln )ln(=--=---≥εa b n取n=6, 计算结果列表如下:则方程在区间[1.8,1.9]内所求近似值为x *≈ x = 1.8328125区间二分法的优点是计算程序简单,只要f (x )在区间[a,b]上连续,区间二分法就可使用,但区间二分法不能用来求偶次重根,由于区间二分法收敛比较慢,在实际计算中,区间二分法常用来求比较好的含根区间和初始近似值,以便进一步使用收敛更快的迭代法求出更精确的近似值。
数值分析 李庆扬 第7章 非线性方程与方程组的数值解法
x x3 1
时,在区间
1,2
有:
x 3 x 2 1
不满足定理的条件,无法保证迭代收敛。
a , b
上)
(2) 存在正常数 L 1 ,使对任意
x , y a , b 都有
x y L x y
(迭代函数的增量小于自变量的增量) 则
14
x 在 a , b
上存在唯一的不动点 x 。
2017年1月4日
*
《数值分析》 黄龙主讲
证明:先证不动点存在性。 若
x , y a , b 有
x y x y L x y , a , b
因此,可将上述定理 1 和定理 2 中的条件(2)改为:
x L 1
21
2017年1月4日
《数值分析》 黄龙主讲
例如:
(2) 存在正常数 L 1 ,使对任意
x y L x y
则对任意 由
x0 a , b :
xk 1 xk 得到的迭代序列 xk
收敛到
x 的不动点 x*
,并有误差估计
k L x k x* x1 x0 1 L
17
2017年1月4日
*
最终取值: x
误差:取有根区间
ak , bk 的中点 (
ak bk xk 作为近似根,则: 2 b ak b a x* x k k k 1 2 2
特点:算法简单,可保证收敛,但收敛太慢。用于求近似解。
8
2017年1月4日
《数值分析》 黄龙主讲
P214例2 求方程 f x x 3 x 1 0 在区间 1.0 ,1.5 内的一个实根, 要求准确到小数点后的第二位。
2二分法求解非线性方程的根
实验2 二分法求解非线性方程的根计机系 041班姓名:刘文杰学号:200410714102【实验内容】1、方法介绍(1)输入区间端点值a、b,步长h,及精度控制量ε1,若|f(a)|< ε1,则a为原方程的一个近似根,若|f(b)|< ε1,则b为原方程的一个近似根。
(2)以h为步长,将区间[a,b]分为两个等距的小区间[a,c],[c,b]。
如果f(a)<0,f(c)>0,则根在[a,c]中,将区间[a,c]再分半,分点为x i,若|f(x i)|< ε1,则xi是方程的一个根。
(3)精度控制,若|f(x1)|< ε1,则x i是方程的一个根,否则重复(2)。
2、使用说明a:实数型,根之上界。
b:实数型,根之下界。
h:步长,实数型。
E:函数的精度,实数型。
ary:元素的一维数组,存放计算结果。
3、基本原理对于非线性方程,在某个范围内往往有不止一个的根,根的分布情况同时也可很复杂,面对这种情况,通常先将所考察的范围划分成若干子段,然后判断哪些子段内有根,这项手续称作根的隔离。
将所求的根隔离开来以后,再在有根子段内找出满足精度要求的近似根。
为此适当选取有根子段内某一点作为根的初始近似,然后运用迭代方法使之逐步精确化。
程序源代码:#include"stdio.h"#include"math.h"#include"conio.h"#include"iostream.h"double f(double x){return sin(x);}double dichotomy(double a1,double b1,double E){double c,y,y0;y0=f(a1);do{c=((a1+b1)/2.0);y=f(c);if(y*y0>0) a1=c;else b1=c;}while((b1-a1)>=E);return c;}void main(){int i,n=0;double E,a1,b1,R[20],a,b,h,y1,y2;cout<<"***********************二分法求解非线性方程的根*****************"<<endl;cout<<"请输入区间端点值a,b:"<<endl;cout<<"a=";cin>>a;cout<<"b=";cin>>b;cout<<"请输入步长h:"<<endl;cin>>h;cout<<"请输入精度控制量E:"<<endl;cin>>E;a1=a;b1=a1+h;for(;b1<=b;a1=a1+h,b1=b1+h){y1=f(a1);if(fabs(f(a1))<E) {R[n]=a1,n++;}y2=f(b1);if(y1*y2<0) {R[n]=dichotomy(a1,b1,E);n++;}}if(a1<b){b1=b;y1=f(a1);if(fabs(y1)<E) {R[n]=a1;n++;}y2=f(b1);if(y1*y2<0) {R[n]=dichotomy(a1,b1,E);n++;}}if(fabs(f(b))<E) {R[n]=b;n++;}cout<<"二分法求解非线性方程实根为:"<<endl;for(i=0;i<n;i++)cout<<R[i]<<endl;cout<<"***********************二分法求解非线性方程的根*****************"<<endl;getch();}4、实例求超越方程sinx=0在区间[-2,7]内的全部实根。
第七章非线性方程求根2014-10
3
xk 1
(k 0,1, 2,
)
不妨取x0 =1.5 迭代序列 xk k 0 。
实际计算时如果保留6 位有效数字,则由计算结果得
x7 x8 于是可以认为近似解 x7 x *
计算结果见下表:
Hale Waihona Puke k 0时x0 1.5迭代次数 k 1 2 3 4 5 6 7 8 迭代解 xk 1.35721 1.33086 1.32588 1.32494 1.32476 1.32473 1.32472 1.32472
设x1* x2*都是方程x ( x)在区间 [a, b]上的根, 由条件(2)
| x1 * x2 *|| ( x1*) ( x2 *) |
L | x1 * x2 *|
0 L 1
| x1 * x2 *|
引出矛盾 x1* x2* , 即区间 [ a, b] 内只能有唯一的实根。
对上述同一问题改写为另一种等价形式: x x3 1 从而可建立迭代格式如下: 迭代初值仍取 x0 1.5 迭代次数 k 迭代解 xk
xk 1 ( xk )
1 2 3 4
2.375 12.39 152.52 3547972.6
继续迭代下去计算结果会越来越大,不可能趋于某个 极限,这种不收敛的迭代过程称为发散。
ab , b) 则 x1 ( 2
即为所求根否则,
反复执行步骤(2)及步骤(3),直到区间 [ a, b] 长度小于容许误差,此时的区间中点 a b x 2 x 即为所求的近似根。
这样不断将区间分半,得到一系列区间
[a, b] [a1, b1 ]
[an , bn ]
数值分析智慧树知到答案章节测试2023年西安科技大学
第一章测试1.=0.69314718…,精确到10-3的近似值是( )。
A:0.693B:0.700C:0.69D:0.6931答案:A2.在下列四个数中,有一个数具有4位有效数字,且其绝对误差限为,则该数是( )A:0.01523B:0.001523C:0.15230D:1.52300答案:A3.设某数,对其进行四舍五入的近似值是( ),则它有3位有效数字,绝对误差限是。
A:0.315B:0.03150C:0.0315D:0.00315答案:C4.是按“四舍五入”原则得到的近似数,则它有( )位有效数字。
A:3B:2C:5D:4答案:D5.已知准确值x与其有t位有效数字的近似值x=0.0a1a2…an×10s(a10)的绝对误差x-x( ).A:0.5×10 s-1-tB:0.5×10 s-tC:0.5×10s+1-tD:0.5×10 s+t答案:A第二章测试1.用二分法求方程在区间内的根,已知误差限,确定二分的次数是使( )成立。
A:B:C:D:答案:C2.若迭代公式是p阶收敛,则( )。
A:p!B:C:0D:答案:B3.用二分法求解非线性方程的正根,在初始区间是[0,2]的情况下,若要求误差小于0.05,那么需要二分( )次即可满足要求。
A:5B:3C:6D:4答案:A4.若已知迭代过程是3阶收敛, C是不为零的常数,则下列式子中,正确的式子是( )。
A:B:C:D:答案:A5.对于迭代过程,如果迭代函数在所求的根的附近有连续的二阶导数,且,则迭代过程( )。
A:一阶收敛B:二阶收敛C:发散D:三阶收敛答案:A第三章测试1.设有迭代公式。
若||B|| > 1,则该迭代公式( )A:必收敛B:可能收敛也可能发散C:必发散D:这三种结果都不是答案:B2.设有迭代公式,则||B|| < 1 是该迭代公式收敛的( )。
A:必要条件B:充分条件C:这三种结果都不是D:充分必要条件答案:B3.若行列式=0,其中是n阶单位阵,A是n阶方阵,则A的范数满足( )。
非线性方程求根的常见方法及其应用
非线性方程求根的常见方法及其应用对于一个非线性方程,其解不一定是唯一的,而且很多情况下解根难以直接求得。
因此,寻找一种可靠、有效的方法来求解非线性方程根是非常重要的。
本文将介绍几种常见的非线性方程求根方法,并且介绍它们的应用场景及求解精度。
一、二分法二分法是一种最基本且易于实现的方法,它能够求解任何单峰函数(函数图像中仅有一个极大值或极小值的函数)的根。
该方法的主要思想是不断缩小根的区间,直到找到根。
具体而言,对于一个单峰函数f(x),在区间[a,b]上寻找其根。
首先,取中点c=(a+b)/2,计算f(c)。
如果f(c)≈0,则找到了根;否则,根位于[a,c]或[c,b]中的一个区间上,重复上述步骤,直到找到根。
该方法的主要优点是简单易用,适用于大部分单峰函数,并且收敛速度相对较快。
但是,该方法需要区间起点和终点具有异号,否则无法找到根。
二、牛顿迭代法牛顿迭代法是一种高效的方法,可用于求解任何无奇点的连续可微函数的根。
该方法的主要思想是将一个复杂的函数不断逼近于一条直线,然后通过直线和x轴的交点来不断逼近函数的根。
具体而言,对于一个连续可微函数f(x),在初始点x0处进行求解。
首先,通过f(x)在x=x0处的导数f'(x0)来确定函数的切线。
然后,找到x轴上离该点最近的交点x1处,并将其作为新的起点,迭代上述过程,直到找到根。
该方法的主要优点在于速度快、精度高,并且可适用于大多数函数。
但是,该方法可能会出现迭代过程不稳定的问题,因此需要谨慎选择初值。
三、割线法割线法是一种类似于牛顿迭代法的方法,其主要思想是通过一条割线来逼近函数的根。
相比于牛顿迭代法,割线法更加适用于函数的导数难以求得的情况。
具体而言,对于一个函数f(x),在初始点x0和x1处进行求解。
首先,通过f(x)在x=x0处和x=x1处的取值来确定割线,找到x轴上与割线交点x2处,并将其作为新的起点,重复上述步骤,直到找到根。
该方法的主要优点在于速度快、精度高,并且可适用于大多数函数。
第7章非线性方程求根(数值分析)
第一节 方程求根与二分法
本章主要讨论单变量的非线性方程求根问题
1
非线性方程根的不同情况
设非线性方程为: f (x)=0 当f (x)为多项式时,非线性方程是
一种特殊形式的方程,即多项式方程,
也叫n 次代数方程 。
f ( x) a0 a1 x an xn an 0
若x*使得f (x*)=0,则称x*为方程f (x)=0的根 或函数 f (x)的零点。
6
非线性方程的有根区间
例:判断方程 f(x)=x4-4x3+1=0 有几
个实根,有根区间是什么?
由 f (x)= 4 x2(x-3)=0 得驻点 x1=0, x2=3。
因此将实轴分为三个区间来讨论: (-∞,0), (0,3),(3, +∞)
f (x) 在此三区间的符号分别为“ -”、“ - ”、“+”
11
1.求方程 的有根区间.
解 根据有根区间定义,对方程的根进行搜索计算, 结果如下表:
方程的三个有根区间为[1,2],[3,4],[5,6].
12
二分法
应用二分法的前提:已经确定了非
线性方程的有根区间[a,b]。
设方程 f (x)=0 在区间[a,b ]内有且只有一 个实根 x* 。
即 f (x) 满足条件:
7
非线性方程的有根区间
所以 f(x) 在(-∞,0), (0,3),(3, +∞)
区间上分别单调减、单调减、单调增。
分析计算可得:
f (–∞)>0, f (0)=1>0, f (3)=-26<0, f (+∞)>0
可见 f(x)仅有两个实根, 分别位于(0, 3) , (3,+∞)
非线性方程求根
若 (x)C1[a,b] 且对任意 x[a,b] 有
|’(x)|L<1
则上述定理中的结论成立。
收敛性结论表明:收敛性与初始值的选取无关
全局收敛
Numerical Analys求 f(x) = x3 – x – 1=0 在区间 [1, 2] 中的根
( x) ( y) L x y
则对任意初始值 x0[a,b],不动点迭代 xk+1=(xk) 收敛,且
k L L xk x xk xk 1 x1 x0 1 L 1 L
证明:P217
14
05:29:38
Numerical Analysis
收敛性分析
| e k 1 | lim C p k | e | k
其中常数 C>0,则称该迭代为 p 阶收敛。
(1) 当 p =1 时称为线性收敛,此时 C < 1
(2) 当 p =2 时称为二次收敛,或平方收敛 (3) 当 p >1 时称为超线性收敛
二分法是线性收敛的
05:29:38
若 ’(x*) 0,则不动点迭代 xk+1 = (xk) 线性收敛 Numerical Analysis
则(x) 在 [a,b] 上存在唯一的不动点 x* 证明:P216
05:29:38
Numerical Analysis
13
收敛性分析
不动点迭代的收敛性 定理:设 (x) C[a,b] 且满足
(1) 对任意的 x[a,b] 有 (x)[a,b]
(2) 存在常数 0<L<1,使得任意的 x, y[a,b] 有
y=x y= (x)
y p0
y=x
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
写成下列等价形式,并建立相应迭代公式.
(1)
,迭代公式
.
(2)
,迭代公式
.
(3)
,迭代公式
.
试分析每种迭代公式的收敛性,并选取一种收敛最快的方
法求具有 4 位有效数字的近似根
解:(1)取区间
且
,
在且
,在 中
满足收敛定理条件,故迭代收敛。
(2)
,在
中
,在 中有
,则 L<1,
,且 ,故迭代收敛。
(3)
解 :( 1 ) 迭 代 函 数
,对 有
, (2)取 ,则有各次迭代值
取
,其误差不超过
(3)
故此迭代为线性收敛
4. 给定函数 ,设对一切 x, 存在,而且
.
证明对
的任意常数 ,迭代法
均收敛于
方程 的根
解:由于
, 为单调增函数,故方程
的根
是唯一的(假定方程有根 )。迭代函数
,
。令
,则
,由递
推有
,即 5. 用 Steffensen 方法计算第 2 题中(2)、(3)的近似根,
精确到
解:在(2)中
,令
,
,则有
令 ,得
,与第 2 题中(2)的结果一致,可取
,则
满足精度要求.
对(3)有
,原迭代不收敛.现令
令
6. 用 Newton 法求下列方程的根,计算准确到 4 位有效数
字.
(1)
在 =2 附近的根.
(2)
在 =1 附近的根
解:(1)
Newton 迭代法
取 ,则
,取
(2) 令 ,则
,在 附近
,故
迭代法发散。
在迭代(1)及(2)中,因为(2)的迭代因子 L 较小,
故它比(1)收敛快。用(2)迭代,取 ,则
3. 设方程
的迭代法
(1) 证明对 ,均有
,其中 为方程的根.
(2) 取 =4,求此迭代法的近似根,使误差不超过 ,
并列出各次迭代值.
(3) 此迭代法收敛阶是多少?证明你的结论
第七章 非线性方程求根
习题七
1. 用二分法求方程
的正根,使误差小于 0.05
解 使用二分法先要确定有根区间 。本题
f(x)=x2-x-1=0,因 f(1)=-1,f(2)=1,故区间[1,2]为有根
区间。另一根在[-1,0]内,故正根在[1,2]内。用二分法
计算各次迭代值如表。
其误差
2. 求方程
在 =1.5 附近的一个根,将方程改
,取
7. 应用 Newton 法于方程
,求立方根 的迭代公
式,并讨论其收敛性.
解:方程
的根为 ,用 Newton 迭代法
此公敛。 还可证明迭代法整体收敛性。设 ,对
一般的,当 时有
这是因为
当 时成立。
从而 ,即
,表明序列 单调递减。故对 ,
迭代序列收敛于