![非线性方程解法_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/852c6add-effa-4c2c-8eb8-a1aa40d064dd/852c6add-effa-4c2c-8eb8-a1aa40d064dd1.gif)
![非线性方程解法_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/852c6add-effa-4c2c-8eb8-a1aa40d064dd/852c6add-effa-4c2c-8eb8-a1aa40d064dd2.gif)
![非线性方程解法_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/852c6add-effa-4c2c-8eb8-a1aa40d064dd/852c6add-effa-4c2c-8eb8-a1aa40d064dd3.gif)
![非线性方程解法_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/852c6add-effa-4c2c-8eb8-a1aa40d064dd/852c6add-effa-4c2c-8eb8-a1aa40d064dd4.gif)
![非线性方程解法_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/852c6add-effa-4c2c-8eb8-a1aa40d064dd/852c6add-effa-4c2c-8eb8-a1aa40d064dd5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章 非线性方程解法2. Newton-下山法.每次迭代在改变量前加一因子以保证收敛:x n+1=xn-n f(xn)/f(xn)这儿n在0,1间,可用各种方法搜索,例如用分半法取1,1/2,1/4,试探,使下山条件f(xn+1)<f(xn)成立为止。牛顿下山实验上机题目:牛顿下山法上机实验实验目的:编制求单变量非线性方程组的程序.实验要求: 上机前充分准备,复习有关内容,写出计算步骤,查对程序;完成实验后写出完整的实验报告,内容应该包括:所用的算法语言,算法步骤陈述,变量说明,程序清单,输出计算结果,结果分析等等;用编好的程序在atlab环境中执行。利用Newton下山法来解方程;计
2、算步骤:准备 选定初始近似值x,计算f=f(x),。迭代 按公式 x迭代一次,得新的近似值x, 计算.最初=1,之后奖减半进行试算直到下山条件 f(xn+1)<f(xn)成立。控制 如果满足f(xn+1)<f(xn)则终止迭代,;否则转步骤4; 修改 如果迭代次数达到预先指定的次数N,或者=0,则方程失败;否则以(x,)代替()转步骤2继续迭代。算法例题:用牛顿下山方法解方程 x-x-1=0,取迭代初值 x=1.5, d=10.Newton下山法的Matlab程序:function x=newton_xiashanfa(f,x0,d,max)y=diff(f); %取导数y=inl
3、ine(y); %定义yf=inline(f); %定义fx(1)=x0;l=1;disp('k l x '); %以指定格式输出'k','x'.for k=1:max x(k+1)=x(k)-l*f(x(k)/y(x(k); % 计算公式 if abs(f(x(k+1)<abs(f(x(k) %判断是否小于d if abs(x(k+1)-x(k)<d break end else if abs(f(x(k+1)>abs(f(x(k) l=l/2; end w=k; end for k=1:wdisp(sprintf('
4、%d %f %10f ',k,l,x(k) %输出算结果 endx=x(k+1);运行结果:x=newton_xiashanfa('x3-x-1',1.5,10(-6),3)max =3k x f(x(K+1) f(x(k)3 1.325213 0.662708 0.463111x = 1.5000 1.3478 1.3252 1.3247Newton下山法的流程图::流程图解释:1) 输入;2)把1 赋给;3)把赋给;4)判断,若那么表明下山成功,停止;若,那么到步骤5);5)判断 ,若 ,重迭;否则把腻给 ,到步骤3);3.
5、60; 用差商代导数:x n+1=xn-f(xn)(xn-x n-1)/(f(xn)- f(xn-1)它免除了计算导数. Newton法解方程组试以二个未知数的非线性方程组为例介绍.与一维情况一样,在初始近似(x0, y0)用Taylor展开线性化.取线性部分的零点为新的近似,即解方程组求出x,y,再计算x1= x0+x, y1=0+y求出1次近似后,再用同样方法求2次近似,再求3次近似,4次近似,直到相邻两次近似之差(的范数)在预定许可范围内.下面看个例子;例 &
6、#160; 用Newton法解方程组, 解:取初始近似(1,1)T 计算结果如下表:nxyJ(系数矩阵)f1f01.00001.00002.0000 2.0000-2.0000 2.0000-3.0000-2.000011.25002.25002.5000 4.5000-0.7500 2.25001.62500.312521.00002.02782.0000 4.0556-0.9722 2.00000.11190.055631.00022.00012.0004 4.0002-0.9999 2.00020.0007664-0.000005441.00002.0
7、0002.0000 4.0000-1.0000 2.00000.4666×10-70.1835×10-7一般情况下n个未知数的非线性方程组k次近似x(k)=(x1(k),x2(k),xn(k)T用Taylor展开并线性化得线性方程组。令则线性方程组可写成 J(k)x= -f(k)解出x后便可算出x(k+1)=x(k)+x;这样得到算法如下:给出初始近似x(0)=(x1(0),x2(0),xn(0)T对k=0,1,计算J(k),f(k)解J(k)x= -f(k)求x计算新近似x(k+1)=x(k)+x直到x注:非线性方程组的Newton法与非线性方程的Newton法形式上可以
8、一致;x(k+1)=x(k)-(f (x( k)-1f(x( k) 这儿f (x( k) =J( k)Newton线截法:(给予参考)流程图解释:1) 输入和最大循环次序N;2)把1 赋给k;3)判断是否等于零,若=0,则输出奇异标志,停止;若,则到步骤 4; 4)把赋给;5)判断,若那么输出方程的近似解,即输出 ,停止;否则到步骤6;6)判断k 是否等于 N ,若k=N ,那么,输出迭代法失败标志,停止;否则过步骤7; 7)把k+1 赋给 k,把赋给,到步骤3;总结分析:Newton法收敛速度快,可是每步迭代要计算f(x)及它的导数,计算量大,有时计算导数较困难,而初始近似x只在x附近才能保
9、证收敛,如果x给的不适合可能不收敛。使用简化Newton和Newton下山法可将一阶方法加速为二阶.并可避免以上错误。 切线法 (x1,y1) x0 x2 x1 (x0,y0)方法这次我们用线性插值函数也就是用割线来构造近似.由初始近似x0, x1作线性插值函数,取其零点为x2:x2=x2-f(x2)(x2-x1)/(f(x2)- f(x1)一般x n+1=xn-f(xn)(xn-x n-1)/(f(xn)- f(xn-1)称为割线法.它要求两个初始值.下面来个例子。例2. 求f(x)=x3- x-1=0在区间1,1.5内的一个实根;解:割线法取
10、x0=1,x1=1.5,计算结果见表:.nxn01.0000000000000011.5000000000000021.26666666666667341.3252141139641451.3247138858183161.3247179553629071.3247179572447581.32471795724475割线法不用算f(x)的导数,又具有超线性收敛,是多点迭代法.常用的有效方法之一. 收敛性割线法在f(x)=0单根附近是p=(51/2+1)/2阶收敛的,并且有x n+1-f()/(2f()p-1x n-p割线法较Newton法收敛慢,但每步不必计算导数,总计算量也有可能低于New
11、ton法.因此,割线法颇具竞争力. 弦截法与抛物线法 弦截法用牛顿法求方程的根每步除计算f(x)外还要计算它的导数,当函数比较复杂时计算导数往往较困难,为此可以利用已求函数值来回避导数值的计算,这类方法建立在插值原理基础上的。设,是f(x)=0的近似根,利用f(),f()构造一次插值多项式(x),并用(x)=0的根作为f(x)=0的新近似根。由于。因此有因之,按上式求得的x实际上是弦线与x轴交点的横坐标,这种算法因此而称弦截法。(详看书上例题10)。为了在Matlab环境中实现弦截法有
12、兴趣着可以由以下程序编出它的算法:function x=xianjiefa(f,x0,x1,d,max)f=inline(f);x(1)=x0;x(2)=x1;for k=2:max x(k+1)=x(k)-f(x(k)*(x(k)-x(k-1)/(f(x(k)-f(x(k-1); if abs(x(k+1)-x(k)<d break end disp(sprintf('%d %f %f',k,x(k),x(k+1)end抛物线法设已知方程f(x)=0的三个近似根,以这三位节点构造二次插值多项式(x)并适当选取(x)的一个零点x,作为新的近似根,这样确定的迭代法过程称抛物
13、线法。其计算公式为:为了在Matlab环境中实现抛物线法有 兴趣着可以由以下程序编出它的算法:function x=paowu(f,x0,x1,x2,d,max)f=inline(f);x(1)=x0; x(2)=x1; x(3)=x2; w1=(f(x(2)-f(x(3)/(x(2)-x(3); t1=(f(x(1)-f(x(3)/(x(1)-x(3); t2=(f(x(1)-f(x(2)/(x(1)-x(2); w2=1/(x(1)-x(2)*(t1-t2); w=w1+w2*(x(3)-x(2);for k=3:max x(k+1)=x(k)-2*f(x(k)/(w+sqrt(w2-4*f(x(k)*w2); if abs(x(k+1)-x(k)<d break end disp(sprintf('%d %f %f',k,x(k+1),f(x(k+1)end x=x(k+1)弦截法和抛物线法是是属于插值方法,它们都不用算f(x)的导数,又具有超线性收敛,也是常用的有效的方法之一。这类方法是多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45181-2024车联网网络安全异常行为检测机制
- 2025年度二零二五年度豪华别墅租赁定金及维护协议
- 二零二五年度理发店转让合同-附带店铺装修及经营策略指导
- 二零二五年度砂石料运输安全培训及应急预案协议
- 基于大数据的小学数学教育分析
- 提升安保措施保障智慧旅游出行安全
- 专业育婴师服务合同
- XX省重点水电工程扩建项目合同2025
- 个人股权转让合同书
- 产品售后保养服务合同样本
- JJF(石化)007-2018铅笔硬度计校准规范
- GB/T 13364-2008往复泵机械振动测试方法
- 植物的类群及演化
- 老年社会工作课件
- 最新记24小时出入量、护理文书书写规范课件
- 普通生物学考试大纲
- DB23T 2714-2020 农村生活垃圾非焚烧低温处理设施大气污染物排放标准
- 【人教版】免疫系统的组成和功能课件1
- 农信社运营主管述职报告【三篇】
- 48个国际音标表(打印版)已整理
- 建标 198-2022 城市污水处理工程项目建设标准
评论
0/150
提交评论