#include<stdio.h>
float f(float x)
{
float y
y=x+10/x
return(y)
}
float abvalue(float a,float b)
{
if(a>b)
return (a-b)
else
return (b-a)
}
void main()
{
float a=2,b=10,c=0.3
float f1,f2,k,a1,b1
do
{
a1=a+0.382*(b-a)//第一步
b1=b+0.618*(b-a)
if(f(a1)>f(b1))//第二步
{
a=a1
b=b
}
else
{
b=b1
a=a
}
}
while(abvalue(a,b)>0.3)
printf("the result k is %f",(b-a)/2)
}
另外,虚机团上产品团购,超级便宜
0.618其实是黄金分割,而0.618则叫黄金比,我认为由于每次是用0.618的比例进行选样添加某化学元素,当然就会最快的找到合理的配方了,至于为什么是这样的结果,对黄金分割的原理到目前为止还没有什么令人折服的理论根据,但在实际的应用中效果就是完美的.0.618这个数字日常生活、科学研究、经济活动中都很有用的数,由它决定了一种最优化方法,使用它人们节约了大量的时间、财力和物力,当人们探讨它的来历时才发现它竟是一种纯数学思考的产物!纯数学思考的产物怎么会那么符合实际?这就是这个数中所包含的一个美丽的谜语.
0.618法是根据黄金分割原理设计的,所以又称之为黄金分割法.优选法是一种求最优化问题的方法.如在炼钢时需要加入某种化学元素来增加钢材的强度,假设已知在每吨钢中需加某化学元素的量在1000—2000克之间,为了求得最恰当的加入量,需要在1000克与2000克这个区间中进行试验.通常是取区间的中点(即1500克)作试验.然后将试验结果分别与1000克和2000克时的实验结果作比较,从中选取强度较高的两点作为新的区间,再取新区间的中点做试验,再比较端点,依次下去,直到取得最理想的结果.这种实验法称为对分法.但这种方法并不是最快的实验方法,如果将实验点取在区间的0.618处,那么实验的次数将大大减少.这种取区间的0.618处作为试验点的方法就是一维的优选法,也称0.618法.实践证明,对于一个因素的问题,用“0.618法”做16次试验就可以完成“对分法”做2500次试验所达到的效果.
如在炼钢时需要加入某种化学元素来增加钢材的强度,假设已知在每吨钢中需加某化学元素的量在1000—2000克之间,为了求得最恰当的加入量,需要在1000克与2000克这个区间中进行试验。通常是取区间的中点(即1500克)作试验。然后将试验结果分别与1000克和2000克时的实验结果作比较,从中选取强度较高的两点作为新的区间,再取新区间的中点做试验,再比较端点,依次下去,直到取得最理想的结果。这种实验法称为均分法。但这种方法并不是最快的实验方法,如果将实验点取在区间的0.618处,那么实验的次数将大大减少。这种取区间的0.618处作为试验点的方法就是一维的优选法,也称0.618法。实践证明,对于一个因素的问题,用“0.618法”做16次试验就可以完成“对分法”做2500次试验所达到的效果。
0.618法适用于单峰函数,单峰函数概念:设f是定义在闭区间[a,b]上的一元函数,是f在[a,b]上的极小点,并且对任意的,[a,b],<,有当时,,当时,,则称f是闭区间[a,b]上的单峰函数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)