云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 实验五 用Newton法计算方程的根

实验五 用Newton法计算方程的根

  • 62 次阅读
  • 3 次下载
  • 2025/5/7 20:24:11

佛山科学技术学院 实 验 报 告 课程名称 数值分析 实验项目 用Newton法和steffensen加速法计算方程的根 专业班级 12数学与应用数学 姓 名 何雍晴 学 号 2012214209 指导教师 黄国顺 成 绩 日 期 6月10日

一. 实验目的 1、 在计算机上用迭代法求非线性方程f(x)?0的根。 二. 实验要求 1、按照题目要求完成实验内容; 2、写出相应的Matlab 程序; 3、给出实验结果(可以用表格展示实验结果); 4、分析和讨论实验结果并提出可能的优化实验。 5、写出实验报告。 三. 实验步骤 1、 用Matlab编写Newton法和Steffensen加速法程序 2、用Newton法求解书本P229例题4,Steffensen加速法计算P255例题1。 3、用调试好的程序解决如下问题 求e5x?sinx?x3?20?0的根,其中控制精度eps?10?10,最大迭代次数M?40。 编制计算函数值的程序: 四. 实验结果 x_star = 1.3247 index =1 it = 4 x_star =1.3247 index = 1 it =6 x_star = 0.6026 index = 1 it = 10 fun=inline('[exp(5*x)-sin(x)+x^3-20,5*exp(5*x)-cos(x)+3*x^2]');

[x_star,index,it]= Newton (fun,1.5,1e-10) 五. 讨论分析 (讨论初始值对迭代次数的影响,自己补充) 初始值是通过介值定理求出的,它在一个区间内,如果初始值越接近于解,那么迭代的次数自然会越少,同样的,对于Newton法而言,它需要函数的导数<1,即函数收敛这个条件才能求出近似解.所以必须要函数收敛。 六. 改进实验建议 (对代码如何改进,自己补充) 可以增加小数点的保留位数,使误差减小,还可以使得ep变得更小,使得|(x(k)-x(k-1)|变小,这样的话计算值与实际值更加接近,计算值更加精确。

参考程序和书本例题运行程序

1、利用Newton法求方程的根。

function [x_star, index, it]=Newton(fun, x, ep, it_max) % 求解非线性方程的Newton法,其中 % fun(x) --- 需要求根的函数,

% 第一个分量是函数值,第二个分量是导数值 % x --- 初始点。

% ep --- 精度,当|(x(k)-x(k-1)|

% 当迭代失败时,输出最后的迭代值。 % index --- 当index=1时,表明迭代成功,

% 当index=0时,表明迭代失败(迭代次数 >= it_max)。 % it --- 迭代次数。

if nargin <4 it_max=100; end if nargin <3 ep=1e-5; end index=0; k=1; while k<=it_max

x1=x; f=feval(fun, x);

if abs(f(2))

if abs(x-x1)

x_star=x; it=k;

用Newton法计算书本P229例题4。(求方程f(x)=x^3-x-1=0在区间[1,2]内的根) fun=inline('[x^3-x-1,3*x^2-1]'); [x_star,index,it]=Newton(fun,1.5)

2、 steffensen加速迭代方法

function [x_star, index, it]=steffensen(phi, x, ep, it_max) % Steffensen 加速方法 % phi(x) --- 迭代函数 % x --- 初始点。

% ep --- 精度,当|(x(k)-x(k-1)|

% 当迭代失败时,输出最后的迭代值。 % index --- 当index=1时,表明迭代成功,

% 当index=0时,表明迭代失败(迭代次数 >= it_max)。 % it --- 迭代次数。

if nargin <4 it_max=100; end if nargin <3 ep=1e-5; end index=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)

index=1; break; end k=k+1;

end

x_star=x; it=k;

书本P255例题1:求x=x^3-1在x0=1.5附近解。 phi=inline('x^3-1');

[x_star,index,it]=steffensen(phi,1.5)

K=0;

>> while(k

else if(c2==0) break; end

x1=x-c1/c2; if(abs(x1)<1) res=abs(x1-x); else

res=abs(x1-x)/abs(x1); end k=k+1; x=x1;

if (res

fun=inline('[exp(5*x)-sin(x)+x^3-20,5*exp(5*x)-cos(x)+3*x^2]'); [x_star,index,it]= Newton (fun,1.5,1e-10)

搜索更多关于: 实验五 用Newton法计算方程的根 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

佛山科学技术学院 实 验 报 告 课程名称 数值分析 实验项目 用Newton法和steffensen加速法计算方程的根 专业班级 12数学与应用数学 姓 名 何雍晴 学 号 2012214209 指导教师 黄国顺 成 绩 日 期 6月10日 一. 实验目的 1、 在计算机上用迭代法求非线性方程f(x)?0的根。 二. 实验要求 1、按照题目要求完成实验内容; 2、写出相应的Matlab 程序; 3、给出实验

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com