网站大量收购独家精品文档,联系QQ:2885784924

项目三 与基本算法 .ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
项目三 与基本算法

课程回顾 课程回顾 课程回顾 编写一个C程序,利用如下的格里高利公式求π的值。直到最后一项的值小于10-5为止。 编写一个C程序,计算y的值,n由键盘输入。 编写一个C程序,把下列数列延长到第50项: 1,2,5,10,21,42,85,170,341,682,… 切饼问题。一张大饼放在板上,如果不许将饼移动,问切n刀时,最多可以切成几块。 制定进货方案。某商店经营红旗牌小车。需求量的历史统计数据如表5.1所示。 进货量要与需求量有关。但是需求是不能控制的,只能 根据历史数据推测。为此,该商店提出了两种进货方案:(1)按照上月的需求量Dt,决定本月的进货量Qt。即 Qt = Dt-1 (2)按照前两个月的需求量的平均数,决定本月的进 货量。 即 Qt = (Dt-1 + Dt-2)/2 若每兽一辆车,可获利2万元,问哪种方案获利大? 5.2.2 猴子吃桃子 题目 一天一只小猴子摘下一堆桃子,当即吃去一半,还觉得不过瘾,又多吃了一个。第二天接着吃了前一天剩下的一半,馋不忍罢又多吃了一个。以后每天如此。到第十天小猴子去吃时,只剩下一个桃子了。问小猴子共摘了多少桃子。 分析 设小猴子当初共摘了x个桃子。则根据题意,有: 第1天: 吃掉x/2 + 1个, 剩下x/2 – 1 = (x – 2)/2个; 第2天: 吃掉((x – 2)/2)/2 + 1个, 剩下(x – 2)/2 – (((x – 2)/2 + 1) = (x – 2)/2 -(x – 2 + 22)/22 =(x – 2 – 22)/22 个; …… 第i天: 剩下:(x – 2 – 22 - … - 2i)/2i个; …… 第9天: 剩下:(x – 2 – 22 - … - 29)/29 = 1 (第10天小猴子看到的那1个桃子)。 这就是本题的方程式。 解之,得 x = 29 + 29 + 28 + … + 22 + 2 这种求解方法有如下缺点: (1)人的干预太多,不适合计算机直接求解; (2)需要进行的计算比较复杂。假设,是到了第100天 才看到剩下的1个桃子,则要进行 299 + 299 + 298 + … + 22 + 2的计算。 用递推法,即从第10天看到的那个桃子开始往前推: 第9天的桃子数为 peach9 = (peach10 +1)*2; 第8天的桃子数为 peach8 = (peach9 +1)*2; …… 第i天的桃子数为 peachi = (peachi+1 +1)*2; …… 于是,就建立起了递推式或迭带式。从初始值开始,迭代9次,就得到第1天的桃子数。 这类问题称为倒退问题。 程序 四、运行结果 第1天的桃子数为:1534个。 5.2.3 用二分法求一元二次方程的根 一、题目 给定一元二次方程x2 – x – 2 = 0,用二分法求它在区间(0,3)之间的一个根。 二、分析 1. 基本思路分析 一般说来,方程f(x) = 0的根的分布是非常复杂的,要找出它们的解析表达式也是非常困难的。已经有人证明,像x – ex = 0以及5 次以上的f(x) = 0,都找不出用初等函数表示的根的解析表达式。在这种情形下,只能借助数值分析的方法,得到近似的解。二分法就是一种求解多项式方程时常用的一种方法。其基本原理如图5.1所示。 x y x1 x2 r2 r1 图5.1 数值分析法解方程 若方程f(x)在区间[x1,x2]上有f(x1)与f(x2)符号相反,则它至少在次区间内有一个根。若取root为x1和x2的中点,如果root不是f(x)的根,则在分隔成的两个子区间中,必有一个子区间两端的函数值仍然符号相反。该子区间中也必然至少有一个根。使用root虽然不一定能直接找到根,但却把含根的区间缩小了一半。这样,不断对两端函数值异号的子区间进行二分,要么正好碰上一个根,要么最后可以把子区间缩小到非常接近根的地方。若已经符合精度要求,也就算是找到根了。 还需要进一步解决如下两个问题: (1)如何判断根在哪个子区间 可以肯定地说,在一个区间中点放上一个root,必然有一个端点处的函数值与root处的函数值同号,另一个端点处的函数值与root处的函数值异号。显然,当root不是函数的根时,根一定存在于root与函数值异号的端点之间。 为此,还要进一步判断两个函数值异好号。这个问题非常简单,对于f(

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档