优化设计-鲍威尔法程序(c语言)
更新时间:2023-05-16 08:42:01 阅读量: 实用文档 文档下载
- 鲍威尔法matlab程序推荐度:
- 相关推荐
#include <stdio.h>
#include <math.h>
#define m 10 /*数组长度m >= 维数n */
float f(float x[]);
void mjtf(int n,float x0[],float h,float s[],float a[],float b[]);
void mhjfgf(int n,float a[],float b[],float flag,float x[]);
void mbwef(int n,float x0[],float h,float flag,float a[],float b[],float x[]);
float f(float x[])
{
float result;
result=60-10*x[0]-4*x[1]+x[0]*x[0]+x[1]*x[1]-x[0]*x[1];
return result;
}
/*多维进退法子程序*/
void mjtf(int n,float x0[],float h,float s[],float a[],float b[])
{
int i;
float x1[m],x2[m],x3[m],f1,f2,f3;
for(i=0;i<n;i++) /*计算初始两试点*/
{
x1[i]=x0[i];
x2[i]=x0[i]+h*s[i];
}
f1=f(x1);
f2=f(x2);
if(f2>=f1) /*判断搜索方向*/
{ /*搜索方向为反向,转身*/
h=(-1)*h;
for(i=0;i<n;i++)
x3[i]=x1[i];
f3=f1;
for(i=0;i<n;i++)
x1[i]=x2[i];
f1=f2;
for(i=0;i<n;i++)
x2[i]=x3[i];
f2=f3;
} /*搜索方向为正向*/
for(i=0;i<n;i++) /*计算第三试点*/
x3[i]=x2[i]+h*s[i];
f3=f(x3);
while(f3<f2) /*判断是否未完成搜索*/
{ /*未完成,继续搜索*/
h=2*h;
for(i=0;i<n;i++)
x1[i]=x2[i];
f1=f2;
for(i=0;i<n;i++)
x2[i]=x3[i];
f2=f3;
for(i=0;i<n;i++)
x3[i]=x2[i]+h*s[i];
f3=f(x3);
} /*已完成*/
for(i=0;i<n;i++) /*输出初始搜索区间*/
{
if(x1[i]<x3[i])
{
a[i]=x1[i];
b[i]=x3[i];
}
else
{
a[i]=x3[i];
b[i]=x1[i];
}
}
}
/*多维黄金分割法子程序*/
void mhjfgf(int n,float a[],float b[],float flag,float x[])
{
int i;
float x1[m],x2[m],f1,f2,sum;
for(i=0;i<n;i++) /*计算初始两试点*/
x1[i]=b[i]-(float)0.618*(b[i]-a[i]);
f1=f(x1);
for(i=0;i<n;i++)
x2[i]=a[i]+(float)0.618*(b[i]-a[i]);
f2=f(x2);
do
{
if(f1<=f2) /*判断消去区间*/
{ /*消去右*/
for(i=0;i<n;i++)
b[i]=x2[i];
for(i=0;i<n;i++)
x2[i]=x1[i];
f2=f1;
for(i=0;i<n;i++)
x1[i]=b[i]-(float)0.618*(b[i]-a[i]);
f1=f(x1);
}
else
{ /*消去左*/
for(i=0;i<n;i++)
a[i]=x1[i];
for(i=0;i<n;i++)
x1[i]=x2[i];
f1=f2;
for(i=0;i<n;i++)
x2[i]=a[i]+(float)0.618*(b[i]-a[i]);
f2=f(x2);
}
sum=0;
for(i=0;i<n;i++)
sum+=(b[i]-a[i])*(b[i]-a[i]);
}while(sqrt(sum)>flag*0.1);
for(i=0;i<n;i++)
x[i]=(float)0.5*(b[i]+a[i]);
}
/*鲍威尔法子程序*/
void mbwef(int n,float x0[],float h,float flag,float a[],float b[],float x[]) {
int i,j,k,r;
float x1[m],x2[m],f0,f1,f2,fn[m],s[m][m],sum;
for(i=0;i<n;i++)
for(k=0;k<n;k++)
if(i==k)
s[i][k]=1;
else
s[i][k]=0;
k=1;
while(1)
{
for(i=0;i<n;i++)
x1[i]=x0[i];
for(i=0;i<n;i++)
mjtf(n,x1,h,s[i],a,b);
mhjfgf(n,a,b,flag,x1);
fn[i]=f(x0)-f(x1);
}
for(i=0;i<n;i++)
x2[i]=2*x1[i]-x0[i];
for(i=1;i<n;i++)
if(fn[0]<fn[i])
{
fn[0]=fn[i];
r=i;
}
else
r=0;
f0=f(x0);
f1=f(x1);
f2=f(x2);
if(f2>=f0||(f0-2*f1+f2)*(f0-f1-fn[0])*(f0-f1-fn[0])>=0.5*fn[0]*(f0-f2)*(f0-f2)) {
sum=0;
for(i=0;i<n;i++)
sum+=(x1[i]-x0[i])*(x1[i]-x0[i]);
if(f1<=f2)
for(i=1;i<n;i++)
x0[i]=x1[i];
else
for(i=1;i<n;i++)
x0[i]=x2[i];
}
else
{
for(i=r;i<n;i++)
for(j=0;j<n;j++)
s[i][j]=s[i+1][j];
for(i=0;i<n;i++)
s[n][i]=x1[i]-x0[i];
mjtf(n,x1,h,s[n],a,b);
mhjfgf(n,a,b,flag,x1);
sum=0;
for(i=0;i<n;i++)
sum+=(x1[i]-x0[i])*(x1[i]-x0[i]);
for(i=0;i<n;i++)
x0[i]=x1[i];
if(sqrt(sum)<=flag) break;
else
k+=1;
}
for(i=0;i<n;i++) x[i]=x1[i];
}
/*鲍威尔法主程序*/
void main()
{
int i,n;
float h,flag,x0[m],a[m],b[m],x[m]; printf("\n<鲍威尔法>\n"); printf("请输入维数:\n"); scanf("%d",&n);
printf("请输入初始点:"); for(i=0;i<n;i++)
{
printf("\nx0[%d]=",i); scanf("%f",&x0[i]); }
printf("\n请输入初始步长:\n"); scanf("%f",&h);
printf("\n请输入精度:\n"); scanf("%f",&flag);
mbwef(n,x0,h,flag,a,b,x); printf("\n极小点坐标为:\n"); for(i=0;i<n;i++)
printf("x[%d]=%f\n",i,x[i]);
printf("\n极小值为:\n%f\n",f(x)); }
正在阅读:
优化设计-鲍威尔法程序(c语言)05-16
2015年甘肃省选调生考试历年真题10-17
甘肃省武威第五中学2016-2017学年高一下学期期末考试政治试题09-11
《物种起源》导言教案(篇二)12-27
小学一年级数学上册期末试卷集 - 图文06-18
最新部编版 一年级语文上册《b p m f》 优质教学设计(两课时)03-09
2019年元宵节作文300字06-13
保护小动物的优秀作文04-01
美食节作文500字07-11
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 尔法
- 鲍威
- 优化
- 语言
- 程序
- 设计
- 制冷原理与装置第二章(郑贤德主编)
- 高中数学_多面体和棱柱的结构特征教学设计学情分析教材分析课后反思
- 商业融资实务与案例
- CASIO卡西欧GShockGWM56101男款腕表
- 资本资产定价模型WACC
- 2021年临床输血应急演练
- 小学六年级数学教案12
- 2021年临床输血指征参考标准
- 2013年第一次月考初三数学试题
- 信仰改变国家命运——观看《国家命运》心得体会
- 2016年日历(完美排版可记事,A4打印版)
- 2021年凝血四项的临床意义
- 2021年临床路径实施小组职责、分工
- 2021年《临床输血技术规范》
- 广东省海珠区2014届高三上学期综合测试(二)文综试题答案
- 汽车常用塑料的标识和选用
- 2021年临床输血标本采集要求和流程
- 防汛安全教育培训
- 大学生创业计划书版之销售计划、现金流量计划等自动生成模板(通用版)20150513
- 2013年08月25日温州龙湾万达广场营销策划方案