数值分析2.2-1__方程求根(二分法)

合集下载

二分法求方程的根

二分法求方程的根

二分法求方程的根二分法是求解函数零点的一种简单而又有效的方法。

它适用于xx、xx、xx等情况下,能够快速找出函数的根,对于计算机程序中的解析和数学问题研究都有很大帮助。

接下来,我们就来介绍一下利用二分法求方程的根。

求解方程的根,首先需要通过一些数学手段,将问题转化为一个函数问题。

假设我们需要求解函数$f(x)=0$的根,其中$x$为实数,我们可以将其转化为$f(x)>0$和$f(x)<0$两种情况的判断。

这样的话,就可以寻找一个区间$[a,b]$,在这个区间内,$f(x)>0$的$x$和$f(x)<0$的$x$广泛地分布在$a$和$b$这两个点的两侧,此时我们就可以运用二分法,在这个区间$[a,b]$内寻找函数$f(x)=0$的根。

在使用二分法之前,要定义好区间$[a,b]$,并进行初始化。

通常情况下,我们可以采用等距离的方式将区间分成$n$份,其中$n$为我们估计的一个比较小的值,但要保证区间内$f(x)>0$和$f(x)<0$的值分别在区间的两侧。

然后在处理过程中,每进行一次迭代,区间长度就会缩短一半,这样可以不断逼近根。

接下来就可以按照下述步骤进行计算:1. 首先,选定区间$[a,b]$,将区间分为$n$份($n$为自己估计的一个小数),如果$f(a)>0$且$f(b)<0$,则继续下一步骤,否则退出。

2. 对于区间$[a,b]$,将其一分为二,这里我们选定中间点为$c=\dfrac{a+b}{2}$,并对区间左半部分$[a,c]$和右半部分$[c,b]$进行讨论。

3. 判断$f(c)>0$还是$f(c)<0$,如果是$f(c)>0$,则根位于左半部分$[a,c]$;如果是$f(c)<0$,则根位于右半部分$[c,b]$。

4. 再次对左半部分$[a,c]$和右半部分$[c,b]$进行二分,不断缩短区间长度,逼近根。

5. 重复执行步骤3和4,直到区间长度小于一定的精度,或者达到迭代的最大次数。

数值分析课程实验报告-二分法和牛顿迭代法

数值分析课程实验报告-二分法和牛顿迭代法
《数值分析》课程实验报告
用二分法和牛顿迭代法求方程的根
算法名称用二分法和牛顿迭代法求方程的根
学科专业机械工程
作者姓名xxxxxx
作者学号xxxBiblioteka xx作者班级xxxxxxxx
xx大学
二〇一五年十二月
《数值分析》课程实验报告
实验名称
用二分法和牛顿迭代法求方程的根
成绩
一、问题背景
在科学研究与工程计算中,常遇到方程(组)求根问题。若干个世纪以来,工程师和数学家花了大量时用于探索求解方程(组),研究各种各样的方程求解方法。对于方程f(x)=0,当f(x)为线性函数时,称f(x)=0为线性方程;当f(x)为非线性函数时,称式f(x)=0为非线性方程。对于线性方程(组)的求解,理论与数值求法的成果丰富;对于非线性方程的求解,由于f(x)的多样性,尚无一般的解析解法。当f(x)为非线性函数时,若f(x)=0无解析解,但如果对任意的精度要求,设计迭代方程,数值计算出方程的近似解,则可以认为求根的计算问题已经解决,至少能够满足实际要求。
fx=subs(ff,x,xk);
fa=subs(ff,x,a);
k=k+1;
iffx==0
y(k)=xk;
break;
elseiffa*fx<0
b=xk;
else
a=xk;
end
y(k)=xk;
end
plot(y,'.-');
gridon
(2)牛顿迭代法程序:
functionx=newton(xx,n)
对二分法和牛顿迭代法的观察和分析我们可以知道,二分法的优点是方法比较简单,编程比较容易,只是二分法只能用于求方程的近似根,不能用于求方程的复根,且收敛速度慢。而牛顿迭代法的收敛速度明显大于二分法的速度。

数值分析实验报告——方程求根

数值分析实验报告——方程求根

《数值分析》实验报告实验一方程求根一、实验目的:掌握二分法、Newton法、不动点迭代法、弦截法求方程的根的各种计算方法、并实施程序调试和运行,学习应用这些算法于实际问题。

二、实验内容:二分法、Newton法、不动点迭代法、弦截法求方程的根、程序的调试和运行,给出实例的计算结果。

观察初值对收敛性的影响。

三、实验步骤:①、二分法:定义:对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。

实现方法:首先我们设一方程400*(x^4)-300*(x^3)+200*(x^2)-10*x-1=0,并求其在区间[0.1,1]上的根,误差限为e=10^-4。

PS:本方法应用的软件为matlab。

disp('二分法')a=0.1;b=1;tol=0.0001;n0=100;fa=400*(a.^4)-300*(a.^3)+200*(a.^2)-10*a-1;for i=1:n0 p=(a+b)/2;fp=400*(p.^4)-300*(p.^3)+200*(p.^2)-10*p-1;if fp==0||(abs((b-a)/2)<tol)disp('用二分法求得方程的根p=')disp(p)disp('二分迭代次数为:')disp(i)break;end;if fa*fp>0 a=p;else b=p;end;end;if i==n0&&~(fp==0||(abs((b-a)/2)<tol)) disp(n0) disp('次二分迭代后没有求出方程的根')end;程序调试:运行结果:用二分法求得方程的根p=0.1108二分迭代次数为:14②Newton法定义:取定初值x0,找到函数对应的点,然后通过该点作函数切线,交x轴,得到新的横坐标值,然后找函数对应的点,做切线,得到新的横坐标值,重复上述步骤,多次迭代,直到收敛到需要的精度。

《数值分析》第六讲方程求根

《数值分析》第六讲方程求根

《数值分析》第六讲方程求根数值分析是研究用数值方法解决数学问题的一门学科,其中方程求根是其中重要的内容之一、方程求根是指找到一个或多个满足方程条件的根。

在实际生活中,方程求根的问题是非常常见的,比如求解物理学中的运动方程、电路中的电流方程等等。

本文将简要介绍几种常用的方程求根方法。

首先介绍最简单的试位法。

试位法是通过选择一个初始值,然后逐步逼近根的位置。

具体来说,首先选择一个初始点x0,然后根据函数的性质来选择一个适当的步长h。

然后计算f(x0)和f(x0+h),如果它们符号相同,则说明根在区间(x0,x0+h)内;如果符号不同,则说明根在区间(x0-h,x0)内。

通过这样的逐步逼近,最终可以找到方程的根。

然而,试位法的精度依赖于所选择的初始值和步长,如果选择不当,可能会导致找不到根。

其次介绍割线法。

割线法也是一种逼近法,它的思路是通过不断连接两个初始点来逼近根的位置。

具体来说,选择两个初始点x0和x1,计算f(x0)和f(x1),然后通过割线的斜率来计算下一个点的位置,即x2=x1-(f(x1)*(x1-x0))/(f(x1)-f(x0))。

重复这个过程,可以逐步逼近根的位置。

割线法相较于试位法的优势是可以更快地逼近根的位置,但同样也依赖于所选择的初始点。

还有一种非常常用的方程求根方法是二分法。

二分法是通过不断将问题划分为两个子问题来逼近根的位置。

具体来说,选择一个初始区间[a,b],计算f(a)和f(b)。

如果f(a)和f(b)符号相同,则说明根不在此区间内,需要重新选择区间。

如果f(a)和f(b)符号不同,则说明根在此区间内。

然后根据区间中点的位置,划分出两个新的子区间,再次进行判断。

通过这样的逐步划分,最终可以找到方程的根。

二分法是一种十分稳定和可靠的方法,但是它的收敛速度相对较慢。

最后介绍牛顿法。

牛顿法是一种迭代法,通过不断进行线性逼近来逼近根的位置。

具体来说,选择一个初始点x0,然后通过计算函数f在该点的斜率来计算下一个点的位置,即x1=x0-f(x0)/f'(x0)。

第二章 数值分析--方程求根

第二章  数值分析--方程求根

第二章 方程求根教学内容:1.二分法 2.基本迭代法 3.牛顿法 4.弦位法5.埃特金法和斯基芬森法 6.重根的情况教学重点:各种算法的思路及迭代公式的构造教学难点:各种算法的收敛性、收敛速度及误差估计计划学时:5-6学时 授课提纲:方程求根就是求函数)(x f 的零点*x ,即求解方程 0)(=x f这里,0)(=x f 可以是代数方程,也可以不是,如超越方程。

方程的根既可以是实数,也可以是复数;既可能是单根,也可能是重根;即可能要求求出给定范围内的某个根,也可能要求求出方程全部的根。

本章介绍的方法对两类方程都适用,但大部分都是要求知道根在什么范围内,且在此范围内只有一个单根。

若有α使得0)(,0)(≠'=ααf f ,则称α是方程0)(=x f 的单根;若有α使得0)(,0)()()()()1(≠==='=-ααααm m f f f f ,则称α是方程0)(=x f 的m 重根。

设)(x f 在区间[a,b]连续,若0)()(<b f a f ,则)(x f 在区间(a,b )内至少有一个实根,若再有)(x f '不变号,则有根区间(a,b )内仅有一个实根。

除特别声明,本章介绍的算法都是求单实根。

2.1 二分法二分法又称区间对分法,是最直观、最简单的一种方法。

2.1.1 二分法原理若 f (x)在[a, b]内单调连续,且f(a) f(b)<0,则f 在(a, b)内必有惟一的实根。

2.1.2 二分法思想区间对分,去同存异 2.1.3 二分法计算步骤步1:令2/)(0b a x +=,计算)(0x f ; 步2:若0)(0=x f ,令0*x x =,计算结束; 步3:若)(0x f *)(a f >0,令0x a =;否则令0x b =;步4:若ε≤-||a b ,令2/)(*b a x +=,计算结束;否则转步1。

2.1.4 二分法误差分析和收敛性记第k 次区间中点为k x ,则有2/)(0*a b x x -≤-,21*2/)(a b x x -≤-,1*2/)(,+-≤-k k a b x x故当∞→k 时,*x x k →。

方程求根的数值计算方法

方程求根的数值计算方法
f ( xk ) − f ( xk −1 ) xk − xk −1
代替牛顿法中的导数有
以下快速弦截法迭代公式:
xk +1 = xk − f ( xk ) − f ( xk −1 ) f ( xk )
( xk − xk −1 )
三、方程求根的弦截法
•弦 截 法 求 根 的 基 本 步 骤 : 1 设 定 初 值 x 0 , x1 ; 2 求 出 f ( x 0 ), f ( x1 ); 3 利 用 弦 截 法 求 根 公 式 求 近 似 根 x; x = x1 − f ( x1 ) × ( x1 − x 0 ) /( f ( x1 ) − f ( x 0 )) 4 将 x1作 为 新 的 初 值 x 0, 新 的 近 似 根 x 作 为 新 的 初 值 x1 , 再 回 到 2;...如 此 循 环 往 复 直 到 x − x1 < ε & & f ( x ) < ε 为 止 。 •注 意 : 对 于 弦 截 法 也 有 可 能 陷 入 死 循 环 。 解 决 的办法与牛顿法一样。
*
*
0
*
k +1
k
*
二、方程求根的牛顿法 对于方程 f ( x) = 0 ,设已知它的近似根 为 xk ,则函数 f ( x) 在点 xk 附近可用一阶 泰勒多项式 p( x) = f ( xk ) + f ′( xk )( x − xk ) 来近似, 若取 p( x) =0 的根作为 f ( x ) = 0 新的近似根, 记为 ,则有如下著名的牛顿公式 牛顿公式: x k +1 牛顿公式 相应的迭代函数是:
迭代法的设计思想
– 迭代法是一种逐次逼近法,这种方法使用某个 迭代法是一种逐次逼近法, 固定公式-即迭代公式反复校正根的近似值, 固定公式-即迭代公式反复校正根的近似值, 使之逐步精确化,直至满足精度要求的结果。 使之逐步精确化,直至满足精度要求的结果。 – 迭代法的求根过程分成两步,第一步先提供根 迭代法的求根过程分成两步, 的某个猜测值,即所谓迭代初值, 的某个猜测值,即所谓迭代初值,然后将迭代 初值逐步加工成满足精度要求的根。 初值逐步加工成满足精度要求的根。

数值分析二分法


二分法的实现步骤
04
确定初始区间
01
确定初始区间
选择一个初始的区间,其中包含要找的根。
02
确定终止条
确定初始中点
选择区间的中点作为初始近似值。
计算中点
计算中点
将区间分成两半,取中间点作为新的近似值。
计算中点处的函数值
代入中点处的x值,计算函数值f(x)。
检查中点处的函数值
检查中点处的函数值
比较f(x)与0的大小,判断中点是否为根 。
VS
确定根所在区间
根据函数值的正负,确定根所在的区间。
更新区间
更新区间
根据根所在的区间,重新确定新的区间长度 和区间端点。
更新近似值
将新的区间端点中的较小值作为新的近似值。
重复步骤,直到满足精度要求
重复步骤
重复上述步骤,直到满足终止条件,即区间长度小于预设的精度要求。
收敛性证明
• 证明:由于f(x)在区间[a, b]上连续,且f(a)和f(b)异 号,根据介值定理,存在至少一个零点c属于(a, b)。 每次迭代将区间[a, b]分成两半,即c = (a + b) / 2, 由于f(c)不为零,所以f(a)和f(c)同号或f(c)和f(b)同 号,即至少有一半的区间满足条件,继续迭代直到 达到精度要求。
二分法的重要性
二分法是数值分析中基础而重要的方 法之一,为解决许多实际问题提供了 有效的数值逼近手段。
二分法在金融、工程、物理等领域都 有广泛的应用,如求解微分方程、优 化问题等。
02 二分法的基本原理
定义与公式
定义
二分法是一种求解实数区间[a, b]上函数f(x)零点的迭代算法。
公式
假设f(x)在区间[a, b]上连续,且f(a)和f(b)异号,即f(a) * f(b) < 0。取c = (a + b) / 2,如果f(c) = 0或f(a) * f(c) < 0,则c就是所求的零点。

数值分析——二分法及迭代法

数值分析——二分法及迭代法数值分析是研究用数值方法解决数学问题的一门学科。

在数值分析中,二分法和迭代法是两种常用的数值求解方法。

本文将对二分法和迭代法进行详细介绍,并比较它们的特点和适用范围。

一、二分法二分法是一种通过将问题分解为两个子问题,并选择其中一个子问题进行求解的方法。

它适用于解决连续函数的求根问题。

二分法的基本思想是利用中值定理,通过不断缩小区间来逼近根的位置。

具体步骤如下:1.选取一个初始的区间[a,b],确保f(a)和f(b)的符号相反。

2.计算区间的中点c=(a+b)/23.判断f(c)的符号,并更新区间。

若f(c)与f(a)符号相反,则更新区间为[a,c];否则更新区间为[c,b]。

4.重复步骤2和步骤3,直到满足停止准则(例如满足一定精度要求,或达到最大迭代次数)。

5.最后得到的近似根为区间的中点c。

二分法的优点是收敛速度快,且能够保证收敛到根的位置。

然而,二分法的缺点是每次迭代只能减少一半的区间长度,所以其收敛速度相对较慢。

此外,二分法需要事先确定区间,并且要求f(a)和f(b)的符号相反,这对于一些问题来说可能并不容易实现。

因此,二分法主要适用于单峰函数求根问题。

二、迭代法迭代法是一种通过迭代逐步逼近解的方法。

它适用于一般的数值求解问题。

迭代法的基本思想是通过不断迭代的过程,将原始问题转化为一个具有相同解的等价问题,并通过逐步逼近来求解。

具体步骤如下:1.选取一个初始的近似解x_0。

2.根据迭代公式x_{k+1}=g(x_k),计算下一个近似解x_{k+1},其中g(x)是一个适当的函数。

3.判断迭代是否达到停止准则(例如满足一定精度要求,或达到最大迭代次数)。

若满足停止准则,则停止迭代;否则返回步骤2继续迭代。

4.最终得到的近似解为迭代过程中的最后一个近似解x_k。

迭代法的优点是适用范围广,可以求解一般的数值问题。

此外,迭代法的迭代公式可以根据具体问题的特点进行选择,使得迭代过程更加高效。

二分法、试位法,牛顿法求方程的根

二分法、试位法,牛顿法求方程的根二分法、试位法和牛顿法是求解方程根的常用数值方法。

一、二分法二分法是一种简单而有效的数值方法,它通过不断将区间一分为二来逼近方程的根。

它的基本思想是,如果在一个闭区间[a, b]内,函数f(x)在a和b两点的函数值f(a)和f(b)异号,那么函数在[a, b]内至少存在一个根。

算法步骤如下:1.初始化区间[a, b]和误差容限ε。

2.计算区间中点c=(a+b)/2。

3.如果f(c)=0或者(b-a)/2<ε,则停止迭代,c即为近似的根。

4.如果f(c)与f(a)异号,则根在[a, c]内,将b=c,否则根在[c,b]内,将a=c。

5.回到步骤2。

二、试位法试位法也是一种通过逼近来求解方程根的方法。

与二分法不同,试位法通过计算函数在两个点之间的插值点来逼近根。

它的基本思想是,如果在一个闭区间[a, b]内,函数f(x)在两个点a和b之间有一个变号点c,则函数在[a, b]内至少存在一个根。

算法步骤如下:1.初始化区间[a, b]和误差容限ε。

2.计算函数在区间[a, b]上的插值点c。

3.如果f(c)=0或者(b-a)/2<ε,则停止迭代,c即为近似的根。

4.如果f(c)与f(a)异号,则根在[a, c]内,将b=c,否则根在[c,b]内,将a=c。

5.回到步骤2。

三、牛顿法牛顿法又称为牛顿-拉弗森方法,它是一种通过不断迭代逼近根的方法。

牛顿法基于函数的局部线性近似,通过求导数来计算函数在当前近似根附近的切线与x轴的交点作为新的近似根。

算法步骤如下:1.初始化初始近似根x0和误差容限ε。

2.计算函数在当前近似根x的导数f'(x)。

3.如果f'(x)为0,则停止迭代,x即为近似的根。

4.计算函数在当前近似根x的函数值f(x)。

5.如果|f(x)|<ε,则停止迭代,x即为近似的根。

6.计算新的近似根x=x-f(x)/f'(x)。

方程求根的数值方法

方程求根的数值方法数值方法是一种求解方程根的近似方法,它通过一系列计算和迭代来逼近方程的根。

这些方法常用于无法通过代数方法求得解析解的复杂方程,或者是当方程没有明确的解析解时。

在这篇文章中,我们将讨论三种常用的数值方法:二分法、牛顿法和割线法。

二分法是一种基于零点定理的根查找方法。

零点定理指出,如果一个函数在区间[a,b]的两个端点处取得正负值,那么这个函数在这个区间内至少存在一个根。

二分法的基本思想是将区间二分,并判断根是否在分割后的子区间内。

具体步骤如下:1.选择一个初始区间[a,b],使得f(a)和f(b)异号。

2.计算区间中点c=(a+b)/23.如果f(c)等于0或者f(c)的绝对值小于给定的误差限,那么c是近似的根。

4.如果f(c)和f(a)异号,那么根在左半区间[a,c]内;否则,根在右半区间[c,b]内。

5.重复步骤2到4,直到找到满足条件的近似根。

二分法的优点是简单易懂,收敛速度较快;缺点是每次迭代只能减少一半的区间长度。

牛顿法是一种迭代法,通过对函数f(x)的一阶导数进行线性逼近,来求得方程f(x)=0的根。

具体步骤如下:1.选择一个初始近似根x0。

2.计算函数f(x)在x=x0处的导数f'(x0)。

3.计算线性逼近方程的解x1=x0-f(x0)/f'(x0)。

4.如果f(x1)的绝对值小于给定的误差限,那么x1是近似的根。

5.否则,令x0=x1,重复步骤2到4,直到找到满足条件的近似根。

牛顿法的优点是收敛速度快,通常是二次收敛;缺点是对于一些特殊的函数,可能会出现发散或者陷入局部最优解的情况。

割线法是对牛顿法的改进,它通过将区间的两个端点连接起来,构建一条割线来逼近方程的根。

具体步骤如下:1.选择两个初始近似根x0和x1,使得f(x0)和f(x1)异号。

2.计算割线的斜率k=(f(x1)-f(x0))/(x1-x0)。

3.计算线性逼近方程的解x2=x1-f(x1)/k。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3/16
例1 计算 In e
1 n 0
1
· · , 20 ) x e dx ( n =0,1,·
n x 0
1
dx e dx e dx x x x
nx n
1
1
e1 1 In n1 n1
0
0
1 1 I e e dx e ( e 1 ) 1 e 0
x 20 15 12.5000 12.5000 11.8750 11.8750 11.8750 11.8750 11.8750 11.8750 11.8628 11.8652 11.8652 16/16
数列的 r 阶收敛概念 设
|x *| n 1 x lim a 则称数列{xn} r 阶收敛. r n | x x *| n
[a3, b3]
把区间[a1, b1] 一分为二,进一步判断根属于哪个更 小的区间[a2, b2],如此不断二分以缩小区间长度 .
11/16
二分法算法 已知f(x)=0在[a,b]内有一根,且f(a)f(b)<0 (1)计算: yaf(a) , x00.5(a+b), y0f(x0)
判断,若y0=0,则x0是根,否则转下一步; (2)判断,若y0· ya<0,则a1a, b1 x0 否则 a1x0, b1b, ya y0 [a , b ]
x0 x 1 x2 · · · x n· · · · · · · · · 只须
lim xn x
n
*
10/16
二分法迭代思路
已知方程 f(x)=0有一隔根 区间[a, b],且f(x)满足 f(a)· f(b)<0,则先将[a , b]等 分为两个小区间,判断根属 于哪个小区间,舍去无根区 [a1, b1] [a2, b2] 间保留有根区间[a1, b1];
有一个点介于0和1之间. 显然f(0)· f(1)< 0,
2
1
0
-1 -1
-0.5
0
0.5
1
1.5
2
14/16
f=inline('exp(-x)-sin(pi*x./2)'); a=0;b=1;er=b-a;ya=f(a);k=0;er0=1/2^5; while er>er0 x0=.5*(a+b); 0 0.5000 y0=f(x0); 0.2500 0.5000 if ya*y0<0 b=x0; 0.3750 0.5000 else 0.4375 0.5000 a=x0; 0.4375 0.4688 ya=y0; end disp([a,b]);er=b-a;k=k+1 15/16 end
2/16
(4)尽量减少计算工作量(乘、除法次数)
例 计算 P(x) = 1+2x+3x2+4x3 + 5x4 的值 秦九韶算法 P(x)=1+x(2+x(3+x(4+5x)))
应用: 2进制数转换为10进制数算法
(1 1 1 0 1 1 1 0)2 = 27+26 +25 +0 +23 +22 +2 +0 =((((((1· 2+1)2+1)2+0)2+1)2+1)2+1)2+0 =238
S0=1-exp(-1); S(1)=1-S0; for n=2:20 |e(S0)|=|S0 –I0|<0.5· 10-14 S(n)=1-n*S(n-1) end error
n=20时,S20= -30.19239488558378 实际计算: Sn=1-nSn-1,S0=0.63212055882856
x0=0.5(a+b)
[a1,b1]=[a,x0]
[a1,b1]=[x0,b]
x1=0.5(a1+b1)
f(a1) f(b1) < 0
12/16
二分法
二分法迭代将得到一系列隔根区间
[ a , b ] [ a , b ] [ a , b ] [ a , b ] 1 1 2 2 n n
7/16
例2.水中浮球问题
有一半径r =10 cm的球体,密 度 =0.638.球体浸入水中后, 浸入水中的深度d 是多少?
r
d
根据阿基米德定律 ,物体排开水的质量就是水 对物体的浮力。
d 4 3 2 2 M r V [ r ( r x )] dx 0 3 整理得: d 3 – 3 r d 2 + 4 r 3 = 0
S(30)=1/31 for n=30:-1:2 S(n-1)=(1-S(n))/n; end S0=1-S(1),S(1:21)
Sn-1 = (1 - Sn)/n Sn-1-In-1= –(Sn - In)/n
6/16
|e(S20)|=|S20-I20|=|(1-S21/21)-(1-I21/21)| =|S21-I21| /21 =· · · · · · · =|S30I30|/(21· 22· 23· · · · · 30) 初始误差在算法执行过程中不断减小 , 这种 算法称为数值稳定算法。 在算法执行过程中,舍入误差对计算结果影 响不大的一类算法被称为数值稳定算法;否 则称为不稳定算法.
水中浮球问题: x 3 – 30 x 2 + 2552 = 0
f=inline('x.^3-30*x.^2+2552'); a=0;b=20;er=b-a;ya=f(a); k=0;er0=.005; 10 while er>er0 10 x0=.5*(a+b); 10.0000 y0=f(x0); 11.2500 11.2500 if ya*y0<0 11.5625 b=x0; 11.7188 else 11.7969 a=x0; 11.8359 ya=y0; 11.8555 end 11.8555 disp([a,b]);er=b-a;k=k+1; 11.8604 end
roots([l -30 0 2552]) ans = 26.3146 11.8615 -8.1761
3000 2000 1000 0 -1000 -2000
0
5法 用数值方法求非线性方程的根,分两步进行:
第一步:对根进行隔离,找出隔根区间,或在隔根 区间内确定一个解的近似值x0; 第二步:逐步逼近,利用近似解x0 (或隔根区间) 通过迭代算法得到更精确的近似解. 设f(x) = 0的根为 x*,通过迭代计算,产生序列:
特别: (1) 收敛阶r=1时,称为线性收敛;
(2) 收敛阶r>1时,称为超收敛;
limxn x* , 若存在 a>0 , r>0 使得 n
(3) 收敛阶r=2 时,称为平方收敛
序列的收敛阶数越高,收敛速度越快
13/16
sin( x / 2 ) 0 例 3 用二分法求方程 e
x
在区间 [0, 1]内的根,要求误差不超过2-5.
( x ) e sin( x / 2 ) 解: 令 f , 绘图如下
x
4 3
x=-1:.5:2; y=exp(-x)-sin(pi*x/2); plot(x,y) grid
5/16
由In=1 - nIn-1 和Sn=1-nSn-1得
Sn- In=- n(Sn-1 - In-1) 则e(Sn)= –ne(Sn-1)=· · · · · · = (n!)(–1)ne(S0) 初值误差在算法执行过程中不断增大 , 这种算 法称为数值不稳定算法。
新算法: In-1 = (1 - In)/n

注意:上式已知物体密度 =0.638, r = 10,水的密度为1.
由 =0.638, r = 10.代入,得d 3 – 30 d 2 + 2552 = 0
令 f (x) = x 3 – 30 x 2 + 2552 ,函数图形如下所示
求解方程 f(x)=0,即 是求函数 f(x)的零 点. f(x) 的零点所 在区间为:[0, 20]
性质:1. f(an)· f(bn)<0; 2. bn – an = (b – a)/ 2n
定理2 设x*是 f(x)=0在[a, b]内的唯一根,且 f(a)· f(b)<0,则二分计算过程中, 各区间的中点数列 1 x a b ) ( n 0 , 1 , 2 , ) n ( n n 2 满足: | xn – x*|≤ (b – a)/ 2n+1
《科学计算方法》2
1.数值计算中的基本原则
2.算法的数值稳定概念 3.方程求根问题引例
4.二分法算法及其应用
数值计算中的基本原则
(1)避免绝对值小的数做除数;
(2)避免两相近数相减;
(3)防止大数“吃”小数现象 a = 109,b = 9,在8位浮点数系统中做加法 a + b =1.0000000 ×109+ 0.000000009 ×109 由于只保留8位有效数,处于第九、十位的数09 被舍去,实际操作是: 将 a 的数据作为加法计算的最终结果.
1 1 x
I e n
1
xedx
n x 0 n x1 1 n 1 x 0 0
0 1
e( xe n ) 1 nI n 1 x edx
1
(分部积分法)
4/16
递推公式: In = 1 – nIn-1 (I0 = 1- e-1)
–1 ≈0.63212055882856 I = 1 – e 初值: 0
相关文档
最新文档