- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
优化设计-单纯形法
1) 用单纯形法求法min(x12+2x22-4x1-2x1x2),已知α=1,β=0.5,γ=2,ε=0.005。
程序如下:
#include stdio.h
#include math.h
float abs(float);
float max(float,float);
float f(float*);
float remain();
void fs( );
void xs( );
void ss( );
void sx( );
void eh( );
int k=0;
float* xh;
float* xe;
float x0[2]={0,0},x1[2]={0,1},x2[2]={1,0},xn1[2],xn2[2],xn3[2],xn4[2],p[3];
float fh,fe,e=0.005;
float f0,f1,f2,fn1,fn2,fn3,fn4;
void eh( )
{ f0=f(x0);
f1=f(x1);
f2=f(x2);
if(f0f1)
{ if(f0f2)
{ if(f1f2)
{fh=f0; fe=f2; xh=x0; xe=x2; p[0]=0;p[1]=1;p[2]=1;}
else {fh=f0; fe=f1; xh=x0; xe=x1; p[0]=0;p[1]=1;p[2]=1;} }
else { fh=f2; fe=f1; xh=x2; xe=x1; p[0]=1;p[1]=1;p[2]=0;} }
else { if(f0f2)
{ if(f1f2){fh=f2; fe=f0; xh=x2; xe=x0; p[0]=1;p[1]=1;p[2]=0;}
else {fh=f1; fe=f0; xh=x1; xe=x0; p[0]=1;p[1]=0;p[2]=1;} }
else { fh=f1; fe=f2; xh=x1; xe=x2; p[0]=1;p[1]=0;p[2]=1;} }
xn1[0]=(x0[0]*p[0]+x1[0]*p[1]+x2[0]*p[2])/2;
xn1[1]=(x0[1]*p[0]+x1[1]*p[1]+x2[1]*p[2])/2;
fn1=f(xn1);
}
void fs( )
{ xn2[0]=xn1[0]+(xn1[0]-xh[0]);
xn2[1]=xn1[1]+(xn1[1]-xh[1]);
fn2=f(xn2);
}
void xs( )
{ xn3[0]=xn1[0]+2*(xn2[0]-xn1[0]);
xn3[1]=xn1[1]+2*(xn2[1]-xn1[1]);
fn3=f(xn3);
}
void ss( )
{ xn4[0]=xn1[0]+0.5*(xh[0]-xn1[0]);
xn4[1]=xn1[1]+0.5*(xh[1]-xn1[1]);
fn4=f(xn4);
}
void sx( )
{ x0[0]=0.5*(x0[0]+xe[0]);
x0[1]=0.5*(x0[1]+xe[1]);
x1[0]=0.5*(x1[0]+xe[0]);
x1[1]=0.5*(x1[1]+xe[1]);
x2[0]=0.5*(x2[0]+xe[0]);
x2[1]=0.5*(x2[1]+xe[1]);
}
float max(float x,float y)
{if (xy)return x;
else return y;
}
float remain()
{if(p[0]==0)return max(f1,f2);
else if(p[1]==0)return max(f0,f2);
else if(p[2]==0)return max(f0,f1);
else return 0; }
float f(float* x)
{ float r; r=x[0]*x[0]+2*x[1]*x[1]-4*x[0]-2*x[0]*x[1];
return r; }
void main()
{ float i,j,s;printf(\n k x0 x1 x2 f(x(n+1))\n\n);
eh();
printf(%d\t[%.4f%.4f][%.4f%.4f] [%.4f %.4f] %.4f\n,k,x0[0],x0[1],x1[0],x1[1],x2[0],x2[1],fn1);
k++;
do
{step1: fs();
if((fn2fe)(fn2remain())){x
您可能关注的文档
最近下载
- 第一单元龙的传人第1课我的名字 教案(表格式)一年级美术人教版(2024版).docx
- 广州数控GSK988Ti系列 编程操作手册2017年1月.pdf
- 台达伺服ASDA-AB系列应用技术手册.pdf
- (宪法)完整版课件.ppt
- 20241103-高盛-美国经济分析:2025年消费支出展望,回归正常稳健增速(摘要).docx VIP
- 高盛-中国房地产行业2025年展望-触底在望(摘要).pdf VIP
- 张毅—潜在失效模式与效应分析(三)课件.pptx VIP
- 茶文化考核试题及答案.pdf VIP
- 人教版(2024)七年级地理上册4.2《气温的变化与分布》优质课件.pptx
- 教科版科学三年级上册2空气占据空间吗 (说课课件)(共13张PPT).pptx
文档评论(0)