机械优化设计黄金分割法 外推法(4)

时间:2026-01-17

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

return; }

运行过程及结果: a*=5.000000 y*=11.000000

4.坐标轮换法

源程序:

#include <stdio.h> #include <math.h> #include <conio.h>

float fun1(float x,float a,float b) {float y; y=x+a*b; return y; }

float fun2(float x,float y) {float z;

z=4*(x-5)*(x-5)+(y-6)*(y-6); return z; }

main()

{float d[100][3],x[100][3],xx[3],ax[100][3]; float a1,a2,a3,h,t,y1,y2,y3,e,a,b,l,fi; int i,k;

printf("输入初始点坐标\n"); scanf("%f%f",&x[0][1],&x[0][2]); e=0.000001; l=0.618;

x[2][1]=x[0][1]; x[2][2]=x[0][2]; k=0; k--; do

{x[0][1]=x[2][1]; x[0][2]=x[2][2]; k++;

for(i=1;i<=2;i++) {

if(i==1)

d[i][2]=0; }

else

{d[i][1]=0; d[i][2]=1; }

h=0.1; a1=0; a2=h;

x[i][1]=fun1(x[i-1][1],d[i][1],a1); x[i][2]=fun1(x[i-1][2],d[i][2],a1); y1=fun2(x[i][1],x[i][2]);

x[i][1]=fun1(x[i-1][1],d[i][1],a2); x[i][2]=fun1(x[i-1][2],d[i][2],a2); y2=fun2(x[i][1],x[i][2]);

if(y2>y1) {h=-h; a3=a1; y3=y1; a1=a2; a2=a3; y1=y2; y2=y3; }

a3=a2+h;

x[i][1]=fun1(x[i-1][1],d[i][1],a3); x[i][2]=fun1(x[i-1][2],d[i][2],a3); y3=fun2(x[i][1],x[i][2]); do {a1=a2; y1=y2; a2=a3; y2=y3; a3=a2+h;

x[i][1]=fun1(x[i-1][1],d[i][1],a3); x[i][2]=fun1(x[i-1][2],d[i][2],a3); y3=fun2(x[i][1],x[i][2]); }

while(y3<y2);

for(;a1>a3;) {t=a3; a3=a1; a1=t; t=y1;

机械优化设计黄金分割法 外推法(4).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:4.9 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:19元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219