计算机数值方法第3章.ppt
(45页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
9.90 积分
* 定义:设f(x)为一元连续函数,称方程f(x)=0为函数方程。特别地,当f(x)不是 x 的线性函数时,称对应的函数方程为非线性方程。 在非线性方程中,当f(x)为多项式函数时,称为代数方程,其一般形式如下: 此即为n次代数方程。若存在一点x*,使f(x*)=0,则x*称为方程f(x)=0的根。* 当f(x)不是多项式函数时,如f(x)=ex-sinx,则f(x)=0称为超越方程。 在非线性方程中,绝大部分没有求根公式,就必须借助于数值计算方法—逐次逼近法来完成。对分法及区间迭代法 利用连续函数f(x)的零点定理,将f(x)=0的含根区间逐次减半缩小,构造出收敛的点列{xk},来逐步逼近f(x)=0的根x*的数值计算方法称为对分法。* 零点定理指出: 若f(x)[a , b],且满足f(a)f(b)<0,则在区间[a , b]上至少有一点,使f()=0。 a x0 x* x1 b 将含根区间对分为两个子区间后,在其上又可利用零点定理确定根在哪个子区间上。如此继续下去就得到各子区间的中点构成点列{xk}中,它将收敛于f(x)=0的根x*处。* [例2.1] 用对分法求下面方程在区间[1,2]内的根,要求绝对误差不超过10-3。 解 因为f(1)= -5,f(2)=14,所以在区间[1 , 2]内有根,故可以使用对分法。 c=(1+2)/2=1.5,f(c)=2.375,含根区间为 [a1 , b1]= [1 , 1.5] c1=(1+1.5)/2=1.25,f(c1)=-1.79687,含根区间为 [a2 , b2]= [1.25 , 1.5],………… c9=(1.36128125+1.365234375)/2=1.364257813,* f(c9)= -0.01605,含根区间为 [a10 , b10]=[ 1.364257813 , 1.365234375] 因误差 故可停止计算,得准确根x*的近似值为 c9=1.365234375。* 1、二分法的收敛性 二分法又称区间迭代法。在求根区间[a , b]上,只要满足f(a)f(b)<0,则此种迭代是收敛的。 2、如何控制迭代(一般而言)? (1)给定精度控制量EPS,如二分法以长度 |ak-bk|0,可知f(x)=0在[0,2]上有唯一的根,按牛顿迭代法构造迭代式:* 取初值x0=2时显然有f(x0)f”(x0)>0,故牛顿迭代收敛。 [例] 用牛顿迭代法求 解: 令 则方程f(x)=x2-3=0的根即为所求,取含根区间[1 , 2]时有所以方程有唯一的根。构造牛顿迭代格式: 取初值x0=2,显然有故迭代数列收敛于函数方程的根。* 牛顿迭代法为平方收敛(收敛阶为2)。 证明: 由f(x)在xk处的泰勒展开式 将x=x*代入上式,并由f(x*)=0可得:故有:因而:所以由收敛阶的定义可知,牛顿迭代法具有2阶收敛。* 弦截法又称割线法。如下图所示,函数方程f(x)=0有根为,为求出:弦截法y=f(x)x1x0x2x3x4*(1)过点(x0,y0)和点(x1,y1)作曲线y=f(x)的割线,该割线与x轴交于x2;该割线的点斜式方程为令y=0,得该割线与x轴的交点x2 :(2)过点(x0,y0)和(x2,y2)再作割线则与x轴交于x3,可得:如此继续下去,即构成了迭代格式:*每次所作割线与x轴的交点将逐步逼近所求根。此种弦割法称为单点弦割法。 双点弦截法:如下图所示,过点(x0,y0)和点(x1,y1)作曲线y=f(x)的割线,该割线与x轴交于x2;过点(x1,y1)和(x2,y2)再作割线则与x轴交于x3,……。oy=f(x)xyx1x0x2x3x4双点弦截法迭代格式为:*一)数据说明: (1)精度控制量EPS,最大迭代次数MAXREPT; (2)迭代初值x0,x1; (3)x_k0、x_k1、x_k2,用于进行迭代计算; (4)自定义函数f(x)二)操作说明: step1 输入迭代初值x0和x1; step2 x_k0=x0 ; x_k1=x1 ; x_k2 ; k=0 ; p=1.0; step3 While p>EPS And k<=MAXREPT Do step4 x_k2=x_k1-f(x_k1)*(x_k1-x_k0)/(f(x_k1)-f(x_k0)); step5 p= fabs(x_k2-x_k1); step6 x_k0=x_k1 ; x_k1=x_k2; step7 k=k+1; step8 输出x_k2即为所求根。*一、问题描述 以二阶非线性方程组为例:非线性方程组求解 其中至少有一个方程为非线性方程,求其根,即一组数据(x* , y*)二、基本思想(牛顿迭代法) 将非线性方程组作向量化处理,即: 令,则原方程组为 所求根即:,使* 如此则可用迭代法求根,即用u0,u1,……,uk,uk+1序列逐次逼近根u*。三、构造方法 将f1(x , y),f2(x , y)在(xk , yk)处作泰勒展开,并取其线性部分,得到方程组: 令,则有* 将u=uk+1代入上式得牛顿迭代格式:,即 令,得 上式左右两边同乘,得 从初值u0开始,逐次计算,及,直到* 取初值四、实例 求解非线性方程组: 解:* 由 按此种方法继续做下去,直到…… 关 键 词: 数值 方法 计算机
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。