机械优化设计黄金分割法 外推法(7)
时间:2026-01-17
时间:2026-01-17
{
x[0]=x[0]-h*d[0]; x[1]=x[1]-h*d[1]; h=0.7*h; if(h<c) break;
x[0]=x[0]+h*d[0]; x[1]=x[1]+h*d[1];
if(g1(x[0],x[1])>0||g2(x[0],x[1])>0) continue; fx=f(x[0],x[1]); } while(fx>=fl);
if(fabs((f0-fx)/f0)>=c) {
x0[0]=x[0]; x0[1]=x[1]; fl=fx; f0=fx; } else break; } printf("输出最优解为\nx1*=%f,x2*=%f, y*=%f\n",x[0],x[1],fx); }
运行过程及结果: 输出最优解为
x1*=0.995421,x2*=1.004521,y*=1.009200
6.四杆机构优化设计
源程序:
#include<math.h> #include<stdio.h> #include<stdlib.h> #define Pai 3.1415926 int g(float l1,float l2) {
if((-l1<=0) &&(-l2<=0) &&(6-l1-l2<=0) &&(1-l2-4<=0) &&(l2-l1-4<=0)
&&(l1*l1+l2*l2-1.414*l1*l2-16<=0)
&&(36-l1*l1-l2*l2-1.414*l1*l2<=0)) return (1); else return (0); }
float fun(float x0[2]) { floatf,
a[31],b[31],r[31],p[31],q[31],w[31],x1[2]; int i; p[0]=acos(((1+x0[0])*(1+x0[0])-x0[1]*x0[1]+25)/(10+10*x0[0])); q[0]=acos(((1+x0[0])*(1+x0[0])-x0[1]*x0[1]-25)/(10*x0[1])); f=0; for(i=1;i<=30;i++) { p[i]=p[0]+(Pai/60)*i; r[i]=sqrt(26-10*cos(p[i])); a[i]=acos((r[i]*r[i]+x0[1]*x0[1]-x0[0]*x0[0])/(2*r[i]*x0[1])); b[i]=acos((r[i]*r[i]+24)/(10*r[i])); q[i]=Pai-a[i]-b[i]; w[i]=q[0]+(2*(p[i]-p[0])*(p[i]-p[0]))/(3*Pai); f=f+(Pai/60)*(q[i]-w[i])*(q[i]-w[i])*(p[i]-p[i-1]); } return f; }
void main() { float
a,q,f,fl,f0,l[2],z[2],d0[100],d1[100],x[2],xi[2],fx,m0,m1,e; int i,j,n,k;
printf("输入精度");
scanf("%f",&e); do{z[0]=0+5*(rand()/32767.00); z[1]=0+5*(rand()/32767.00); } while(g(z[0],z[1])==0); for(i=0;i<=99;i++) {
上一篇:平翘舌音练习材料大全
下一篇:电化学理论(李狄)课后答案解析