牛顿迭代、割线法、二分法算法实验报告
更新时间:2023-03-20 03:15:01 阅读量: 实用文档 文档下载
- 二分法推荐度:
- 相关推荐
MATLAB实现的用二分法,割线法,牛顿迭代法求解方程的根的实验报告
20123789 黄佳诚 2014/11/25 数值分析作业 [键入文档副标题]
MATLAB实现的用二分法,割线法,牛顿迭代法求解方程的根的实验报告
摘要
本文分别采用了“二分法”、“牛顿法”、 “割线法”、3种方法讨论如何求解方程“x3 9=0”,描述了每个算法的算法思想,给出了计算结果与迭代时间以及每一步迭代结果和解的精度,并且用多项式拟合了不同算法的时间复杂度函数进行收敛性和时间复杂度分析比较了的优劣。在最后报告给出了其他可供使用的求根方法例如,“简易牛顿算法”、Steffensenf迭代法并对它的思想和计算流程进行了简单的介绍。
关键词:二分法 牛顿法 割线法 简易牛顿法 Steffensenf迭代法
一、计算机配置
操作系统:windows7旗舰版
处理器:Intel(R) Core(TM) i5-3210M CPU@2.50GHz
安装内存(RAM):4.00GB(2.91GB可用)
系统类型:32位操作系统
二、二分法计算实验
2.1 二分法算法思想和简要描述
若f是区间[a,b]上的连续函数,且f(a)f(b)<0,根据连续函数闭区间零点定
理,f在[a,b]内必有一零点。
利用这一思想:若f(a)f(b)<0,则计算c=(a+b)/2,并检验f(a)f(c)<0是否是
真的,若是把c改为b重新开始;若不是真的,则f(c)f(b)<0,把c改为a;反复重复上述过程。
2.2 MATLAB运行二分法程序
二分法求解f=x^3-9的根
参数设置:a,b设置为估计零点所在区间的上确界和下确界。 n设置为二分法for语句迭代次数。
alpha设置为最后结果f(x)的精度。
delta设置为最后结果x的精度。
(若alpha,delta都符合设置的计算精度时,结束迭代并得
出计算结果,否则一直迭代到n次)
设置初始值:设置参数a,b分别为为2,3;迭代次数n为50次;alpha
和delta都设置为0.001。
列出计算结果:>> erfen(f,2,3,50,0.001,0.001)
n a b delta alpha 1.0000 2.0000 2.5000 0.5000 19.0000
2.0000 2.0000 2.2500 0.2500 7.6250
3.0000 2.0000 2.1250 0.1250 3.3906
MATLAB实现的用二分法,割线法,牛顿迭代法求解方程的根的实验报告
4.0000 2.0625 2.1250 0.0625 1.5957
5.0000 2.0625 2.0938 0.0313 0.8220
6.0000 2.0781 2.0938 0.0156 0.4049
7.0000 2.0781 2.0859 0.0078 0.2040
8.0000 2.0781 2.0820 0.0039 0.1016
9.0000 2.0801 2.0820 0.0020 0.0507
10.0000 2.0801 2.0811 0.0010 0.0254
11.0000 2.0801 2.0806 0.0005 0.0127
12.0000 2.0801 2.0803 0.0002 0.0063
13.0000 2.0801 2.0802 0.0001 0.0032
14.0000 2.0801 2.0801 0.0001 0.0016
elapsed time is 0.316426 seconds.
三、牛顿法计算实验
3.1 牛顿法算法思想和简要描述
我们有一个函数f,其零点由数值计算得出,设r是f的一个零点,x
是r的一个近似。若f的二阶导数存在并且连续,则有泰勒定理,得
0=f(r)=f(x+h)=f(x)+hf’(x)+o(h^2)
其中h=r-x。若h较小(即x在r附近),则有理由略去o(h^2)项并且
在余下方程中求h。即得到h=-f(x)/f’(x)。故x-f(x)/f’(x)是比x更好的一个近似。牛顿法从r的一个估计x0开始,得到更加准确的近似值xn。递推式定义为:
f(xn)xn+1=xn n3.2 MATLAB运行牛顿法程序
牛顿法求解f=x^3-9的根
参数设置:x0设置为函数f零点的近似。
n设置为牛顿法for语句迭代次数。
alpha设置为最后结果f(x)的精度。
delta设置为最后结果x的精度。
(若alpha,delta都符合设置的计算精度时,结束迭代并得
出计算结果,否则一直迭代到n次)
设置初始值:设置参数x0分别为为3;迭代次数n为50次;alpha和
delta都设置为0.001。
列出计算结果:
>> newton(f,50,3,0.001,0.001)
n x f(x) delta alpha
1.0000 2.3333 3.7037 0.6667 3.7037
2.0000 2.1066 0.3483 0.2268 0.3483
3.0000 2.0804 0.0043 0.0262 0.0043
Elapsed time is 0.166680 seconds.
四、割线法计算实验
MATLAB实现的用二分法,割线法,牛顿迭代法求解方程的根的实验报告
4.1 割线法算法思想和简要描述
割线法思路总体上与牛顿法一致,但是为了避免牛顿法中求函数导数所带来的困难,用差商来近似的代替导数得到了割线法近似值的递推式: xn xn 1xn+1=xn nn 1因为xn+1的计算需要xn和xn 1,所以开始时需要两个初始点。
4.2 MATLAB运行割线法程序
割线法求解f=x^3-9的根
参数设置:a,b设置为函数f零点的两个近似值。
n设置为牛顿法for语句迭代次数。
alpha设置为最后结果f(x)的精度。
delta设置为最后结果x的精度。
(若alpha,delta都符合设置的计算精度时,结束迭代并得
出计算结果,否则一直迭代到n次)
设置初始值:设置参数a,b分别为为3,4;迭代次数n为50次;alpha
和delta都设置为0.001。
列出计算结果:
>> gexian(f,3,4,50,0.001,0.001)
n x0 delta alpha
1 3 1 37
2.0000 2.5135 0.4865 11.1202
3.0000 2.2125 0.3010 5.0486
4.0000 2.1034 0.1092 1.5254
5.0000 2.0815 0.0219 0.2874
6.0000 2.0801 0.0014 0.0181
Elapsed time is 0.080747 seconds.
五、收敛性和时间复杂度分析
5.1 三种算法的收敛性分析
从理论上来看,二分法每次估计的范围都是前一次迭代时(a,b)区间的1/2,所以要达到千分位的精度至少应该进行10次左右的迭代;而牛顿法的收敛速度是最快的;割线法把牛顿算法中的导函数用插商代替造成了一定的误差,故收敛速度稍慢于牛顿迭代。
从实验结果来看,结果也与理论上的判断相符,在实验精度取0.001的情况下,二分法迭代次数最多,进行了14次迭代;牛顿迭代算法的次数最少,只进行了3次迭代就到达了0.001位的精度要求;割线迭代法相对于牛顿算法的迭代次数要稍多一点,进行了6次迭代。
5.2 三种算法的时间复杂度分析
我们用迭代次数n来反映算法的要解决问题的规模并作为自变量,用tic toc函数记录每次迭代所花费的时间,记录随着n的不断增大,各算法所耗费时间的变化趋势,得到如下函数图像:
二分法的渐进时间复杂度函数图像
MATLAB实现的用二分法,割线法,牛顿迭代法求解方程的根的实验报告
牛顿法的渐进时间复杂度函数图像
割线法的渐进时间复杂度的函数图像
MATLAB实现的用二分法,割线法,牛顿迭代法求解方程的根的实验报告
从三种算法的渐进时间复杂度函数图像容易看出,随着n的不断增大是图像大致呈线性变化,说明了每次迭代所进行的计算量都是大致相当的,可以认为是三种算法都是稳定的。
图像也反映出二分法的计算时间明显大于另外两种算法,这是由于二分法每一个循环语句内都要进行求f(a),f(b),f(a)*f(b),(a+b)/2四次计算计算量大于其他两种算法;牛顿法相较于割线法虽然收敛速得更快,但每次迭代都要重新计算f(x和f’(x),相比于割线法每次只需计算一个f(x),计算量要稍大一些,所以每次迭代耗时更多。
六、其他可供使用的算法
6.1 简易牛顿法算法思想简述
简易牛顿法即将
xk 1 xk f(xk) f (xk)
中的f (xk)换成一个常数M,迭代公式为
xk 1 xk
6.2 Steffensenf迭代法算法思想简述 f(xk)M
假设我们要解方程x g(x),这个方法的迭代公式是
yk g(xk),zk g(yk),
(yk xk)2
xk 1 xk ,k 0,1,2,3,....
zk 2yk xk
正在阅读:
牛顿迭代、割线法、二分法算法实验报告03-20
监控信息存在的问题及解决方法04-11
公司法形成性考核册及参考答案05-27
研究论文:中医护理临床路径在四肢骨折患者围手术期的应用06-02
2016高考化学(人教)大一轮全程复习构想 课时检测 4-104-26
计算机办公软件应用操作员(中级)练习题08-09
论文致谢词范文03-08
新疆冰川移动原因02-15
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 割线
- 二分法
- 迭代
- 算法
- 实验
- 报告
- 牛顿
- 牛津英语 7B Unit 8 单词词汇练习
- 1.2.4 绝对值(第一课时)(新人教版七年级上洋思教案)
- 3.3旅游业对地理环境的影响
- 第三章国际私法的历史发展
- 虞园小学课改实验方案
- 军训活动开幕致辞2021年5篇
- 《科技英语》课后习题答桉完整版
- 中国各省市名称大全
- 桥面系及附属工程施工方案
- 言多必失,沉默是金
- 2011年工作总结暨2012年工作安排(改)
- 1 什么是水的pH值?它有什么意义?
- 无线传感网络和体系结构介绍
- 避雷器参数及选型原则
- 2010年6月大学生党课培训班思想汇报5篇作者
- 小学科学苏教版四年级上册《22 热的传递》练习
- 广州娃哈哈机房群控方案
- C网用户感知提升方案
- 智能立体停车库系统设计与应用研究
- 2.3.1平面向量基本定理