好文档 - 专业文书写作范文服务资料分享网站

机械优化设计实验报告 - 图文 

天下 分享 时间: 加入收藏 我要投稿 点赞

由图可知最优解为4.711130,函数值为-0.999999.这和精确最优值-1已十分接近。可见二次插值法效果很好。

实验三DFP变尺度法

一、实验目的

1、掌握无约束优化问题DFP算法的数值求解思路;

2、训练分析DFP算法的运算存储量及收敛速度的能力,了解算法的优缺点; 3、通过运用DFP算法求解实际无约束优化问题的意义; 4、熟悉应用C语言求解无约束最优化问题的编程方法.

二、实验内容

编写DFP计算程序,并计算书上例4-5

三、实验原理

四、程序编制

#include #include #include #include #define tt 0.01 #define ff 1.0e-6 #define ac 1.0e-6 #define ad 1.0e-6 #define n 2 double ia;

double fny(double *x) { }

double * iterate(double *x,double a,double *s) {

double *x1; int i;

double x1=x[0],x2=x[1]; double f;

f=x1*x1+2*x2*x2-4*x1-2*x1*x2; return f;

}

x1=(double *)malloc(n*sizeof(double)); for(i=0;i

x1[i]=x[i]+a*s[i]; }

return x1;

double func(double *x,double a,double *s) { }

void finding(double a[3],double f[3],double *xk,double *s) {

double t=tt; int i; double a1,f1;

a[0]=0;f[0]=func(xk,a[0],s); for(i=0;;i++) {

double *x1; double f; x1=iterate(x,a,s); f=fny(x1); return f;

a[1]=a[0]+t; f[1]=func(xk,a[1],s); if(f[1]=ad) {

t=-t;

a[0]=a[1];f[0]=f[1];

} else {

if(ia==1) return; t=t/2;ia=1;

} }

for(i=0;;i++) {

a[2]=a[1]+t; f[2]=func(xk,a[2],s);

if(f[2]>f[1]) break; t=2*t;

a[0]=a[1];f[0]=f[1]; a[1]=a[2];f[1]=f[2]; }

if(a[0]>a[2])

机械优化设计实验报告 - 图文 

由图可知最优解为4.711130,函数值为-0.999999.这和精确最优值-1已十分接近。可见二次插值法效果很好。实验三DFP变尺度法一、实验目的1、掌握无约束优化问题DFP算法的数值求解思路;2、训练分析DFP算法的运算存储量及收敛速度的能力,了解算法的优缺点;3、通过运用
推荐度:
点击下载文档文档为doc格式
2cnrx7or360zdc523xwm17c19373ml00go5
领取福利

微信扫码领取福利

微信扫码分享