算法第二章上机实践报告
1. 实践题目名称
二分法求函数的零点
2.问题描述
有函数:f(x)=x5−15x4+85x3−225x2+274x−121 已知f(1.5)>0,f(2.4)<0 且方程f(x)=0 在区间[1.5,2.4] 有且只有一个根,请用二分法求出该根。 提示:判断函数是否为0,使用表达式 fabs(f(x)) < 1e-7
3.算法描述
通过二分不断缩小[1.5,2.4]找到符合精度1e-7的根
4.算法时间及空间复杂度分析(要有分析过程)
时间复杂度:
无输入
不断折半O(log2 n)
空间复杂度:
未开设辅助数据结构O(1)
5.心得体会(对本次实践收获及疑惑进行总结)
该题wa了很多次,后来才发现是初值1.5和2.4的f(x)的大于小于0的情况看错了,一开始对退出循环的l+1e-7<r不是很理解,之后清楚了double类型不断二分下去是不会结束循环,需要一个精度来判断循环结束条件
6.分治法的体会
分治法能将大规模的计算\查找通过拆分成不同的子问题,再将子问题继续划分直到问题规模足够小,这样的方法能大大提高效率,也对我学习生活小有启示,将眼前的大问题拆解成一个个小问题,一个个解决,最终大问题也就迎刃而解了