实验五-用Newton法计算方程的根_第1页
实验五-用Newton法计算方程的根_第2页
实验五-用Newton法计算方程的根_第3页
实验五-用Newton法计算方程的根_第4页
实验五-用Newton法计算方程的根_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、佛山科学技术学院实 验 报 告课程名称 数值分析 实验项目 用Newton法和steffensen加速法计算方程的根 专业班级 姓名 学号 指导教师 成 绩 日 期 一. 实验目的1、 在计算机上用迭代法求非线性方程的根。二. 实验要求1、按照题目要求完成实验内容;2、写出相应的Matlab 程序;3、给出实验结果(可以用表格展示实验结果);4、分析和讨论实验结果并提出可能的优化实验。5、写出实验报告。三. 实验步骤1、 用Matlab编写Newton法和Steffensen加速法程序2、用Newton法求解书本P229例题4,Steffensen加速法计算P255例题1。3、用调试好的程序解

2、决如下问题求的根,其中控制精度,最大迭代次数。编制计算函数值的程序:四. 实验结果1、用Matlab编写Newton法和Steffensen加速法程序;利用Newton法求方程的根:function x_star, index, it=Newton(fun, x, ep, it_max)% 求解非线性方程的Newton法,其中% fun(x) - 需要求根的函数,% 第一个分量是函数值,第二个分量是导数值% x - 初始点。% ep - 精度,当|(x(k)-x(k-1)|= it_max)。% it - 迭代次数。if nargin 4 it_max=100; endif nargin 3

3、ep=1e-5; endindex=0; k=1;while k=it_max x1=x; f=feval(fun, x); if abs(f(2)ep break; end x=x-f(1)/f(2); if abs(x-x1)ep index=1; break; end k=k+1;endx_star=x; it=k;利用steffensen加速迭代方法:function x_star, index, it=steffensen(phi, x, ep, it_max)% Steffensen 加速方法% phi(x) - 迭代函数% x - 初始点。% ep - 精度,当|(x(k)-x(

4、k-1)|= it_max)。% it - 迭代次数。if nargin 4 it_max=100; endif nargin 3 ep=1e-5; endindex=0; k=1;while k=it_max x1=x; y=feval(phi,x); z=feval(phi,y); x=x-(y-x)2/(z-2*y+x); if abs(x-x1)ep index=1; break; end k=k+1;endx_star=x; it=k;2、用Newton法求解书本P229例题4,Steffensen加速法计算P255例题1。用Newton法计算书本P229例题4。(求方程f(x)=x

5、3-x-1=0在区间1,2内的根)fun=inline(x3-x-1,3*x2-1);x_star,index,it=Newton(fun,1.5)书本P255例题1:求x=x3-1在x0=1.5附近解。phi=inline(x3-1);x_star,index,it=steffensen(phi,1.5)3、用调试好的程序解决如下问题求的根,其中控制精度,最大迭代次数。编制计算函数值的程序:由上面利用Newton法求方程的根的程序知:% ep - 精度,当|(x(k)-x(k-1)|ep时,终止计算。省缺为1e-5% it_max - 最大迭代次数,省缺为100if nargin 4 it_

6、max=100; endif nargin f(x) #这表示在计算机已经完成了函数f(x)的定义。(2)定义f(x)的导函数g(x),在程序工作区中输入:Diff(f(x),x);执行后,返回结果为: 2+1/x #得到了f(x)的导函数。继续输入:g(x)2+1/x;这表示在计算机已经完成了函数g(x)的定义。 (3)在下面输入:NewtonMethod(x0,h) x=x0-f(x0)/g(x0); if(abs(x-x0) NewtonMethod(x0,h) #这表示在计算机已经完成了函数NewtonMethod(x0,h)的定义。(三)设定初值为2、要求误差不大于0.001的近似解

7、 (1)在下面输入: Float(1); 执行后,返回结果为: 计算结果显示浮点数 # (2)在下方继续输入: NewtonMethod(2,0.001); 执行命令最后的返回结果是: (-2*ln(2)*ln(-2*ln(2)+14)/(5)*ln(2*ln(2)*ln(-2*ln(2)+14)/(5)-14*ln(2)-14*ln(-2*ln(2)+14)/(5)+98)/(-4*ln(2)+33)+14*ln(2)*ln(-2*ln(2)+14)/(5)+14*ln(2)*ln(2*ln(2)*ln(-2*ln(2)+14)/(5)-14*ln(2)-14*ln(-2*ln(2)+14)

8、/(5)+98)/(-4*ln(2)+33)-98*ln(2)+14*ln(-2*ln(2)+14)/(5)*ln(2*ln(2)*ln(-2*ln(2)+14)/(5)-14*ln(2)-14*ln(-2*ln(2)+14)/(5)+98)/(-4*ln(2)+33)-98*ln(-2*ln(2)+14)/(5)-98*ln(2*ln(2)*ln(-2*ln(2)+14)/(5)-14*ln(2)-14*ln(-2*ln(2)+14)/(5)+98)/(-4*ln(2)+33)+686)/(4*ln(2)*ln(-2*ln(2)+14)/(5)-32*ln(2)-28*ln(-2*ln(2)+14)/(5)+229)=2.53492 # 其中前半部分是没有处理的精确值,最后是浮点数表示的结果2.53492。观察以上程序,显然比较简单,可以直接计算出函数精确值,这也为我们提供了另外一种方法实现Newton迭代。同理,我们一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论