分享
分享赚钱 收藏 举报 版权申诉 / 27

类型数值分析作业1new.doc

  • 上传人:dreamzhangning
  • 文档编号:2278062
  • 上传时间:2018-09-09
  • 格式:DOC
  • 页数:27
  • 大小:958.99KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数值分析作业1new.doc
    资源描述:

    1、数值分析作业非线性方程的求解方法与分析学院:电气工程学院学号:13031290姓名:王雨晨摘 要本文主要阐述了五种非线性方程的求解方法,分别为二分法、简易牛顿法、牛顿迭代法、牛顿下山法与弦截法。并分别对五种求解方法的计算结果进行了相应地分析。二分法运用函数有根区间中点与端点的函数值,缩小根区间,从而得到较快的收敛速度。牛顿迭代法,是一种常见的求解具有单重零点的非线性方程的数值方法,具有局部二阶收敛性。简易牛顿法便是简化的牛顿迭代法,将迭代点的导数值固定为初始值点的导数值,从而简化计算次数。牛顿下山法,为避免初值选取不当而使得迭代不收敛而在牛顿迭代法改进的方法。弦截法,克服了牛顿迭代法需求零点处

    2、函数导数的缺点,使用两次迭代点的差商替代了函数的导数值。本文非线性方程的求解方法均运用 MATLAB 编程及实现。关键词:非线性方程;二分法;牛顿迭代法;牛顿下山法;弦截法数值分析目 录第一章 非线性方程 11.1 非线性方程简介 .11.2 非线性方程求解方法简介 .11.2.1 二分法 11.2.2 牛顿迭代法 21.2.3 牛顿下山法 41.2.4 简易牛顿法 41.2.5 弦截法 5第二章 计算机配置 72.1 处理器 .72.2 存储设备 .72.3 显卡 .82.4 显示屏 .82.5 操作系统 .8第三章 算法的 MATLAB 实现及结果分析 93.1 二分法 .93.2 牛顿迭

    3、代法 .123.3 简易牛顿法 .143.4 牛顿下山法 .173.5 弦截法 .20结 论 24数值分析 第 0 页第一章 非线性方程1.1 非线性方程简介非线性方程,就是因变量与自变量之间的关系不是线性关系。在永恒变化发展的自然界与人类社会中,在研究其内部规律的各个科学领域中,更深刻、更精确地描述其内部规律的数学工具之一,就是非线性方程。非线性代数是研究大规模离散数据的运算处理与内在性状的数学科学。科学技术离不开数据处理与数据分析,因此非线性代数具有非常广泛的应用,在力学、化学、生命科学、控制理论等众多科学领域中,非线性方程早已屡见不鲜。因此,非线性方程的求解就显得愈加重要。然而求解非线性

    4、方程有很多种方法,每种方法都有自己的优缺点。1.2 非线性方程求解方法简介求函数零解作为数学研究领域的一个热点已经延续了几百余年,所以已经建立了许多种方法,拥有比较完备的求解体系。本文中,主要介绍非线性方程求解方法中最常用也是比较简单的几种方法。在解决实际问题的中,大都会遇到非线性方程或非线性方程组的数学模型,这类方程的求解用一般的代数方法求解是不可能实现的。所以,在解决这类问题的时候,多是将求零解转化为求近似解。1.2.1 二分法若 是区间 上的连续函数,且 ,则 在 内必有)(xfba, 0)(bfa)(xf,ba一个零点。因为 ,所以函数 在区间 上改变符号,因此它0)(f x,在这个区

    5、间内至少存在一个零点。二分法就是利用这一中值定理来求解非线性方程零解。二分法求解的具体方法:若 ,则计算区间 中点0)(bfaba,,并且检验 是否为真。若为真,则 在 内有零2/)(bac)(cf )(xfc,数值分析 第 1 页点。因而把中点 设为 作为区间新的右极点。若检验 为假,则cb 0)(cfa在区间 内有零点,因而把中点 设为 作为区间新的左极点。这样新)(xf, c的区间 的宽度就为原区间宽度的二分之一。并在此区间中重复上述操作。ba,当然,若 ,则 从而求出一个零点。然而由于舍入误差0)(cfa0)(cf的存在,在计算机计算的过程中, 精确为 0 是完全不可能存在的。因此,主

    6、卧室算法循环的停止判断准则不应该是 是否成立,而必须提供一个)(cf合理的允许误差。当计算结果 的值在误差范围内,便可停止运算。)(cf1.2.2 牛顿迭代法牛顿法迭代法是一种能在许多不同情况下应用的通用过程。特别地,当用牛顿法来求实值变量函数零点时,常常被称为牛顿-拉弗森迭代。通常,牛顿迭代法比二分法与弦截法获取答案的速度要快,这是因为它的收敛是二次的而不是线性或者超线性的。一旦二次收敛变得有效时,即牛顿法序列的值充分地接近根时,其收敛是如此之快以致于仅仅再需要几个数值即可。但是,牛顿迭代法并无法保证总是收敛的。所以牛顿法经常与其他较慢的方法结合形成一种数值上整体收敛的混合方法。若存在一个函

    7、数 ,其零点由数值方法计算得出。设 是 的零点,)(xf r)(xf而 是 的一个近似,若 的 阶导数存在并且连续,则由泰勒定理将函数xrn在零点处进行展开可得: )()()0 2hxffhxfr其中 。若 较小(即 在 附近) ,则可以略去 项,并且在余下的xrhh方程中求 。由此可得到结果是 。若 使 的一个近似,则)(/xfr数值分析 第 2 页应该是 的一个更好的近似。牛顿迭代法从 的一个估计 开始,)(/xfxr r0x则归纳出迭代的格式为)(1nnxfx0下面叙述一下牛顿迭代法的几何意义。是 的根,选取 作为 的初始近似值,经过 上的点r0)(xf 0xr)(xf做 的切线方程 :

    8、 ,求出 与横轴焦(0, fyL)(00fxfyL点的横坐标 ,则称 为 的一次近似值。将 作为下一次)(001xfx1r1x迭代的初值,重复上述过程可得到 的二次近似值 。如此r )(12fx循环,可以获取 的近似值序列。r下述三个定理分别讨论了牛顿法的收敛性质:定理 1:对于方程 ,设 在 上有二阶连续导数且满足下述0)(xf)(xf,ba条件:(1) ;0)(bfa(2) , ,对任意的 ;xxf ,bax(3)选取 ,满足,00)(0f则牛顿法产生的序列 收敛于 在 内的唯一根 。Kxx,*x定理 2:对于方程 ,设 在 上连续可导。若 ,)(f)(fba,)(baCf的根 ,且 ,则

    9、存在 的一个邻域 ,0)(xf ,*ba0*x*x*|xR使任意初值 ,牛顿迭代收敛于 ,且满足 。R0 * )(2)(*1limfxk定理 3:设 是方程 的根,在 的某个开区间内 连续且*x0)(xf*x,则存在 ,当 时,由牛顿迭代法产生的近似值0)(xf,*序列 是以不低于二阶的收敛速度收敛到 。n *x数值分析 第 3 页1.2.3 牛顿下山法牛顿下山法是牛顿迭代法的一种变形。它是为了减弱牛顿迭代法对初始近似 的限制而提出的一种算法。牛顿迭代法的收敛速度快,但初值不容易确定,0x往往由于初值选取不得当而使迭代不收敛。但是,若能保证(下山条件) ,则有可能保证收敛。把新求得的近似值看做

    10、初始)()(1kkff值,会比最先取得的初始值 ,更有可能落入局部收敛的邻域内。0x下面简单叙述牛顿下山法的算法。设下山因子为 ,则kkkkxxf)1(1是以 与 的加权平均作为新的近似解的。 先取 1,若已经满足kx1,实质上是原来的牛顿迭代法。若不满足下山条件,取下山因)()(kff子 ,带入并判断是否满足下山条件。若满足,则可以把 作为第 次2 1kx近似值。若仍不满足条件,则将 的值再进行对分,知道找到满足下山条件的初始值为止。最后,再将得到的 带入到牛顿迭代法的公式10kx中,最终求得方程的零解。)(1xfxn1.2.4 简易牛顿法简易牛顿法,又称平行弦法,就是将牛顿迭代法进行简化而

    11、得到的简易求解非线性方程零解的方法。使用牛顿迭代法求解非线性方程根时,每一步的迭代都需要计算一次上次迭代点的一阶导数值。为了避免在计算导数值的复杂性,选择使用初始值点的导数值代替迭代的导数值,则 ,于是牛顿迭)(0xffk代公式转化为 )(01xfxnn数值分析 第 4 页很大程度上减少了计算机的计算量。1.2.5 弦截法弦截法是在牛顿迭代法的基础上得出的求解非线性方程 的一种十0)(xf分重要的插值方法。用牛顿迭代法求解非线性方程的根时,每一步迭代都要计算一次导数值。当函数 较为复杂时,计算导数往往较为困难,并且,在计)(xf算机上,计算一次导数的近似值比计算函数的近似值要麻烦的多。因此,为

    12、了避免求解函数的导数,选择使用差商近似代替微商: 1)()(kkxffxf于是,牛顿迭代公式转化为: )()(111 kkkk xfxfx下面研究弦截法的几何意义:经过点 及点 亮点做函数的割线,其点斜式方程为:)(,kxf )(,1kkf,其零点为 。)(1kkk xxfy )()(11kkkk xfxfX把 X 用 表示即得到迭代格式。它又成为割线法,需要两个初始值,割线与1kX 轴交点的横坐标就是新的近似值 。如图所示:1kx下面两个定理为弦割法收敛定理:定理 1:设 在其零点 的邻域 内有二阶)(xf*x,),(*xxU)0(连续导数, ,则当 时,由弦截法迭代公式产生的序列0* ,0

    13、数值分析 第 5 页收敛于 ,且收敛的阶为 1.618。nx*定理 2:设函数 在区间 上二阶连续可导,且满足下述三点:)(xf,ba(1) ;0)(bfa(2)对任意的 , , ;,x0)(xf)(xf(3) ,abf)(abf)(则对于任意初始 、 ,由弦截法产生的迭代序列 收敛于0x,1 nx的唯一的根 。)(xf *数值分析 第 6 页第二章 计算机配置所用的计算机型号为 acer(宏碁)Aspire V5-471G 33214G50Mabb。下面对本款笔记本电脑的配置进行简单介绍。2.1 处理器CPU 系列: 英特尔 酷睿 i3 3 代系列CPU 型号: Intel 酷睿 i3 32

    14、17UCPU 主频:1.8GHz总线规格:DMI 5 GT/s三级缓存:3MB核心类型: Ivy Bridge核心/线程数: 双核心/四线程制程工艺:22nm指令集:AVX,64bit功耗:17W2.2 存储设备内存容量:4GB内存类型:DDR3插槽数量:2xSO-DIMM最大内存容量:32GB硬盘容量:500GB硬盘描述: 5400 转光驱类型: DVD 刻录机设计类型:光驱内置光驱描述:支持 DVD SuperMulti 双层刻录数值分析 第 7 页2.3 显卡显卡类型:入门级独立显卡显卡芯片:NVIDIA GeForce GT 620M显存容量:1GB显存类型:DDR3显存位宽:128b

    15、it流处理器数量:96DirectX:112.4 显示屏屏幕尺寸: 14 英寸屏幕比例:16:9屏幕分辨率:1366x768背光技术: LED 背光2.5 操作系统操作系统:Windows 7 旗舰版系统类型:32 位操作系统数值分析 第 8 页第三章 算法的 MATLAB 实现及结果分析本章主要阐述了利用数学软件 MATLAB 编写第一章所叙述的五种求解非线性方程的方法,并求解 的零解。4log3)(xxf3.1 二分法根据第一章对二分法的叙述,可以得到二分法的算法流程图如下所示:数值分析 第 9 页二分法的 matlab 程序代码:function k,c,err,yc=erfen(f,a

    16、,b,emg1,emg2) %二分法求解非 线性方程%f为所需求解的函数%a和b分别为所求解的区间左右极限值%emg1,emg2为所允许的误差界限%k为求解的循 环次数%c为所求解的近似值%err为近似解c的 误差估计%yc为函数f在c的函数 值if nargin0 disp(a,b)区间无法使用二分法进行求解,请更换a、b的值);return;end %若两极限值符号相同,无法用二分法进行求解if ya=0c=a;returnendif yb=0c=b;return;end %函数f在右端点b取得零解k=0; c=(a+b)/2; %取a 、b 区间中值yc=feval(f,c);数值分析

    17、第 10 页while abs(b-a)emg1 %取a、b区间中值yc=feval(f,c);if yc=0a=c;b=c;return; %函数在区间中值处取得零解elseif ya*ycemg1x=x0-feval(f,x0)/feval(df,x0);k=k+1;y=feval(f,x);endif k=N warning(已达到最大迭代次数 ); enderr=abs(x0-x);数值分析 第 13 页在 matlab 的 command window 内执行以下命令:-f=inline(x-4+3*log(x);-df=inline(3/x + 1);-x,k,err,y=Newt

    18、on(f,df,1)运行后,得到的计算结果:x =1.9684k =4err =9.7235e-006y =-3.6604e-011由此得到,经过4次的牛顿法迭代计算,即可得到符合误差界限要求的方程零解,且解为1.9684。3.3 简易牛顿法根据第一章对简易牛顿法的叙述,可以得到简易牛顿法的算法流程图如下所示:数值分析 第 14 页简易牛顿法的matlba程序代码:function x,k,err,y=Easynewton(f,df,x0,emg1,emg2)%用途:使用简易的牛顿迭代法解非线性方程的零解%f为所需求解的函数%df为所需求解函数的导函数%x0为迭代运算设置的初值%emg1、 e

    19、mg2表示误差界限%x表示所求方程的近似解%k表示迭代的次数数值分析 第 15 页%err表示x的误差估 计if narginemg1x=x0-feval(f,x0)/feval(df,a);k=k+1;y=feval(f,x);endif k=N warning(已达到最大迭代次数 ); enderr=abs(x0-x);在 matlab 的 command window 内执行以下命令:-f=inline(x-4+3*log(x);-df=inline(3/x + 1);-x,k,err,y=Easynewton(f,df,1)运行后,得到计算结果:x =1.9684k =12err =数

    20、值分析 第 16 页5.8556e-006y =-8.6423e-006由计算结果,可以得到从选定的初始值1开始,使用简易牛顿法迭代12次,能够得到符合误差界限要求的3.4 牛顿下山法根据第一章对牛顿下山法的叙述,可以得到牛顿下山法的算法流程图如下所示:数值分析 第 17 页牛顿下山法的matlba程序代码:主函数代码function x1,k,n,err=Mendnewton(x0,emg1,emg2)%用途:使用牛顿下山法求解非线性方程的零解%x0表示输入的初始值%emg1、 emg2表示误差界限数值分析 第 18 页%x1表示所求方程的近似解%k表示迭代的次数%n表示初始 值下山的次数%

    21、err表示x1的误差估计if narginemg1 n=n+1;x1=x0-u*(f0/d0);f1,d1=fun0(x1);endk=k+1;x0=x1; %将满足下山条件的值定为迭代的初始值f1,d1=fun0(x0); %进行牛顿迭代法求解非线性方程x1=x0-f1/d1; end err=abs(x1-x0);函数 fun0()代码:function f,df=fun0(x)f=x-4+3*log(x); %f表示需要求解的原函数数值分析 第 19 页df=3/x + 1; %df表示需要求解函数的导函数在 matlab 的 command window 内执行以下命令:-x1,k,e

    22、rr=Mendnewton(1)运行后,得到计算结果:x1 =1.9684k =3n =0err =9.7235e-006由计算结果,可以得到从选定的初始值1开始,使用牛顿下山法迭代3次,初始值下山次数0次,就能够得到符合误差界限要求的零解。3.5 弦截法根据第一章对弦截法的叙述,可以得到弦截法的算法流程图如下所示:数值分析 第 20 页弦截法的matlba程序代码:function x,err,y,k=xianjie(f,a,b,emg1,emg2)%用途:使用弦截法求解非线性方程的零解%f表示需要求解的函数%a、b均为初始的迭代值%emg1、 emg2表示允许的误差界限%x为求得的近似解%

    23、err为x的误差估 计%k为弦截法迭代的次数x1=a;x2=b;数值分析 第 21 页k=0;if narginemg1x2=x;else breakendk=k+1;enderr=abs(x-x2);在 matlab 的 command window 内执行以下命令:-f=inline(x-4+3*log(x);-x,err,y,k=xianjie(f,1,3)运行后,得到计算结果:x =1.9684err =4.3802e-006y =5.2487e-004数值分析 第 22 页k =3由计算结果,可以得到从选定的初始值两点1、3开始,使用弦截法迭代3次,就能够得到符合误差界限要求的零解。

    24、 (注:初始迭代点的选择,是通过事先通过matlab对求解函数进行了描绘,得到零解在 1、3 之间。 )数值分析 第 23 页结 论二分法的优点是计算简单、方法可靠、误差容易估计,只要求求解函数连续,且总是收敛的,因此对函数的性质要求较低。二分法的缺点是不能求偶数重根,也不能求复根,并且相较其他求解方法,收敛较慢。故一般不单独将其用于求解根,只用其为根求得一个较好的近似值。 牛顿迭代法是多项式求根的一种效率很高的算法,收敛速度快(对于单根),算法简单是迭代法中较好者。但是,牛顿迭代法有三个缺点:第一,每次只能求出一个误差值个根,求其它根时若采用降次处理又会产生精度降低的问题;第二,有时会遇到由

    25、于初始点选择不当、函数局部不收敛导致算法失效;第三,因为牛顿迭代法需求解每个迭代点处的导数值,因此对于计算机来讲计算量较大并且计算较困难。牛顿下山法是基于牛顿迭代法的改进,为摒除初始值点选取不当而造成的算法失效问题。如方法名称所示,牛顿下山法就是将牛顿法与下山法结合起来使用,即在下山法保证函数值稳定下降的前提下,用牛顿法加快收敛速度。简易牛顿法,即简化的牛顿迭代法,通过初始值点得导数值替代各个迭代点的导数值进行迭代计算,不需要牛顿法中求各迭代点的导数值,因此极大程度上减少了计算量。但相较上述两种算法,收敛速度明显减慢,需要进行更多次迭代才能获取符合误差要求的根。弦截法和牛顿迭代法都是先将求解的函数进行线性化,然后再求根。但是,两者线性化的方式并不同。弦截法使用前两次迭代值的差商取代了求解一阶导数值,减少了系统的计算量。其迭代的收敛速度比牛顿迭代法要慢。

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数值分析作业1new.doc
    链接地址:https://www.docduoduo.com/p-2278062.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开