- 5
- 0
- 约小于1千字
- 约 4页
- 2018-03-08 发布于河南
- 举报
机械优化—黄金分割
程序:
#include stdio.h
#include math.h
#define e 0.35//定义精度//
#define bc 1//定义步长//
float f(double x)//函数表达式//
{
float y=x*x-7*x+10;
return(y);
}
finding(float *p1,float*p2)
{
float x1=0,x2,x3,t,f1,f2,f3,h=bc;
int n=0;x2=x1+h;f1=f(x1);f2=f(x2);
if(f2f1)
{
h=-h;t=x2;x2=x1;x1=t;
}
do
{
x3=x2+h;h=2*h;f3=f(x3);n=n+1;
}
while(f3f2);
if(x1x3)
{
t=x1;x1=x3;x3=t;
}
*p1=x1;*p2=x3;
return(n);
}
gold(float *p)//黄金分割法求极小值//
{
float a,b,x1,x2,f1,f2;
int n=0;
finding(a,b);
do
{
x1=b-0.618*(b-a);
x2=a+0.618*(b-a);
f1=f(x1);
f2=f(x2);
n=n+1;
if(f1f2)
a=x1;
else b=x2;
}
while((b-a)e);
*p=(x1+x2)/2;
return(n);
}
main()//主函数入口//
{
float a,b,x,min;
int n1,n2;
n1=finding(a,b);
n2=gold(x);
min=f(x);
printf(\n 单谷区间: %f 到 %f.,a,b);
printf(\n 最优解: x取值为%f 最优解函数值为 %f.,x,min);//极小值点以及极小值//
printf(\n 搜素次数:%d\n,n2);//黄金分割法搜索次数//
}
最后输出结果为:
您可能关注的文档
最近下载
- CECS304-2011 建筑用金属面绝热夹芯板安装及验收规程.docx VIP
- 基于大数据的电池新材料设计.docx VIP
- XF_T 87-2023 防火刨花板XF_T 87-2023 防火刨花板.docx VIP
- 2026年新能源大数据行业数据安全报告.docx VIP
- 春节加班奖励报告通知模板.docx VIP
- T_SXCAS 043-2025 公路路面基层煤矸石细集料应用技术标准.docx VIP
- DB61_T 2005-2025 道路多孔水泥混凝土路面施工技术规范.docx VIP
- DB11_T 1322.81-2025 安全生产等级评定技术规范 第81部分:歌舞娱乐场所.pdf VIP
- DB51_T 3317-2025 高寒草地生态修复碳汇核算技术规范.pdf VIP
- DB51_T 3312-2025 四川省斜坡地质灾害隐患风险详查技术指南.pdf VIP
原创力文档

文档评论(0)