黄金分割搜索算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
黄金分割搜索算法
一.介绍
黄金分割律是公元前六世纪古希腊数学家毕达哥拉斯所发现,后来古希腊美学家柏拉图将此称为黄金分割。这其实是一个数字的比例关系,即把一条线分为两部分,此时长段与短段之比恰恰等于整条线与长段之比,其数值比为1.618 : 1或1 : 0.618,也就是说长段的平方等于全长与短段的乘积。
0.618,以严格的比例性、艺术性、和谐性,蕴藏着丰富的美学价值。
有趣的是,这个数字在自然界和人们生活中到处可见:人们的肚脐是人体总长的黄金分割点,人的膝盖是肚脐到脚跟的黄金分割点。大多数门窗的宽长之比也是0.618…;有些植茎上,两张相邻叶柄的夹角是137°28',这恰好是把圆周分成1:0.618……的两条半径的夹角。据研究发现,这种角度对植物通风和采光效果最佳。
建筑师们对数学0.618…特别偏爱,无论是古埃及的金字塔,还是巴黎圣母院,或者是近世纪的法国埃菲尔铁塔,都有与0.618…有关的数据。人们还发现,一些名画、雕塑、摄影作品的主题,大多在画面的0.618…处。艺术家们认为弦乐器的琴马放在琴弦的0.618…处,能使琴声更加柔和甜美。
在学术界的应用
数字0.618…更为数学家所关注,它的出现,不仅解决了许多数学难题(如:十等分、五等分圆周;求18度、36度角的正弦、余弦值等),而且还使优选法成为可能。优选法是一种求最优化问题的方法。如在炼钢时需要加入某种化学元素来增加钢材的强度,假设已知在每吨钢中需加某化学元素的量在1000—2000克之间,为了求得最恰当的加入量,需要在1000克与2000克这个区间中进行试验。通常是取区间的中点(即1500克)作试验。然后将试验结果分别与1000克和2000克时的实验结果作比较,从中选取强度较高的两点作为新的区间,再取新区间的中点做试验,再比较端点,依次下去,直到取得最理想的结果。这种实验法称为对分法。但这种方法并不是最快的实验方法,如果将实验点取在区间的0.618处,那么实验的次数将大大减少。这种取区间的0.618处作为试验点的方法就是一维的优选法,也称0.618法。实践证明,对于一个因素的问题,用“0.618法”做16次试验就可以完成“对分法”做2500次试验所达到的效果。因此大画家达·芬奇把0.618…称为黄金数。
优选法是一种具有广泛应用价值的数学方法,著名数学家华罗庚曾为普及它作出重要贡献。优选法中有一种0.618法应用了黄金分割法。例如,在一种试验中,温度的变化范围是0℃~10℃,我们要寻找在哪个温度时实验效果最佳。为此,可以先找出温度变化范围的黄金分割点,考察10×0.618=6.18(℃)时的试验效果,再考察10×(1-0.618)=3.82(℃)时的试验效果,比较两者,选优去劣。然后在缩小的变化范围内继续这样寻找,直至选出最佳温度。
黄金分割与植物
有些植茎上,两张相邻叶柄的夹角是137°28',这恰好是把圆周分成1:0.618的两条半径的夹角。据研究发现,这种角度对植物通风和采光效果最佳。植物叶子,千姿百态,生机盎然,给大自然带来了美丽的绿色世界。尽管叶子形态随种而异,但它在茎上的排列顺序(称为叶序),却是极有规律的。有些植物的花瓣及主干上枝条的生长,也是符合这个规律的。你从植物茎的顶端向下看,经细心观察,发现上下层中相邻的两片叶子之间约成137.5°角。如果每层叶子只画一片来代表,第一层和第二层的相邻
两叶之间的角度差约是137.5°,以后二到三层,三到四层,四到五层……两叶之间都成这个角度。植物学家经过计算表明:这个角度对叶子的采光、通风都是最佳的。叶子的排布,多么精巧!叶子间的137.5°角中,藏有什么“密码”呢?我们知道,一周是360°,360°-137.5°=222.5°,而137.5∶222.5≈0.618。瞧,这就是“密码”!叶子的精巧而神奇的排布中,竟然隐藏着0.618的比例。
优选法
数字0.618…更为数学家所关注,它的出现不仅解决了许多数学难题(如:十等分、五等分圆周;求18度、36度角的正弦、余弦值等),而且还使优选法成为可能。优选法是一种求最优化问题的方法。如在炼钢时需要加入某种化学元素来增加钢材的强度,假设已知在每吨钢中需加某化学元素的量在1000—2000克之间,为了求得最恰当的加入量,需要在1000克与2000克这个区间中进行试验。通常是取区间的中点(即1500克)作试验。然后将试验结果分别与1000克和2000克时的实验结果作比较,从中选取强度较高的两点作为新的区间,再取新区间的中点做试验,再比较端点,依次下去,直到取得最理想的结果。这种实验法称为对分法。但这种方法并不是最快的实验方法,如果将实验点取在区间的0.618处,那么实验的次数将大大减少。这种取区间的0.618处作为试验点的方法就是一维的优选法,也称0.618法。实践证明,对于一个因素的问题,用“0.618法”做16次试验就可以完成“对分法”做2500次试验所达到的效果。
其他方面的应用
1、人的体温37度,室温25度是人们感受最舒适的温度,而25÷37=0.676很接近0.618。
2.电脑显示器长与宽比值约为1.6。(1/0.618=1.618)
3.理想体重计算很接近身高×(1-0.618)。
4.普通人一天上班8小时,8×0.618=4.944,上班第5个小时是最需要休息的时候,同时也是开始期待下班的时候。
5.小学生一节课40分钟,而注意力只有40×(1-0.618)=15.28分钟,因此教师必须不断注意学生的学习。
二.实验目的
通过上机实现黄金分割搜索算法,了解并掌握黄金分割搜索算法的内涵。通过动态演示搜索全过程深刻理解该算法。
三. 实验内容与要求
用黄金分割搜索算法求cos(x),x∈[-π/2,π/2]的最大值,设计出具体的程序,使之能够动态演示搜索过程。
四.参考算法
1. Input{a,b,e}
2. x1=a+0.382*(b-a);x2=a+0.618*(b-a)
3. f1=f(x1),f2=f(x2)
4. while(b-a>e)
5. if(f>f1)
5.1 {a=x1;x1=x2;f1=f2;x2=a+0.382*(b-a);f1=f(x1);}
else
5.2 {b=x2;x2=x1;f2=x1;x1=a+0.382*(b-a);f1=f(x1);}
6. x max=(a+b)/2
7. output{ x max }
五.源代码
import java.awt.*;
import java.awt.event.*;