ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:15.34KB ,
资源ID:12512507      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12512507.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(鲍威尔法C++源程序.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

鲍威尔法C++源程序.docx

1、鲍威尔法C+源程序#define n1 2#define tt 0.005#define ad 0.0000001/定义常量/tt初始迭代步长/ad收敛精度float ia;float fny(float *x) float f; f=10*pow(x0+x1-5),2)+pow(x0-x1),2); /目标函数 return(f);float *iterate(float *x,float a, float *s) float *x1; x1=(float *)malloc(n1 * sizeof(float); for (int i=0;in1;i+) x1i=xi+a*si; retur

2、n(x1);float func(float *x,float a,float *s) float *x1; x1=iterate(x,a,s); float f=fny(x1); return(f);void finding(float a3,float f3,float *xk,float *s) float t=tt; float a1,f1; a0=0; f0=func(xk,a0,s); for (int i=0;i+) a1=a0+t; f1=func(xk,a1,s); if (f1=ad) t=-t; a0=a1; f0=f1; else if (ia=1) return; t

3、=t/2; ia=1; for (i=0;i+) a2=a1+t; f2=func(xk,a2,s); if (f2f1) break; t=2*t; a0=a1; f0=f1; a1=a2; f1=f2; if (a0a2) a1=a0; f1=f0; a0=a2; f0=f2; a2=a1; f2=f1; return;/second insertfloat lagrange(float *xk,float *ft,float *s) float a3,f3; float b,c,d,aa; finding (a,f,xk,s); for (int i=0;i+) if (ia=1) aa

4、=a1; *ft=f1; break; d=(pow(a0,2)-pow(a2,2)*(a0-a1)-(pow(a0,2)-pow(a1,2)*(a0-a2); if(fabs(d)=0) break; c=(f0-f2)*(a0-a1)-(f0-f1)*(a0-a2)/d; if(fabs(c)=0) break; b=(f0-f1)-c*(pow(a0,2)-pow(a1,2)/(a0-a1); aa=-b/(2*c); *ft=func(xk,aa,s); if (fabs(aa-a1)f1) aa=a1; break; if (aaa1) if (*ftf1) a2=aa; f2=*f

5、t; else if (*ftf1) a0=aa; f0=*ft; else if (*ftf1) aa=a1; *ft=f1; return (aa);float *powell(float *xk) float hn1n1,sn1=0,0,ffn1+1=0,0,0; float f1,f3,aa; float dkn1,*x0,xk1n1; int m=0,i,j; for (i=0;in1;i+) for(j=0;jn1;j+) hij=0; if (j=i) hij=1; for (int k=0;k+) ff0=fny(xk); x0=xk; for (i=0;in1;i+) for

6、 (j=0;jn1;j+) sj=hij; float aa=lagrange(xk,&ffi+1,s); xk=iterate(xk,aa,s); for (i=0;in1;i+) float a,b; dki=xki-x0i; xk1i=2*xki-x0i; float max=fabs(ff1-ff0); for (i=1;imax) max=fabs(ffi+1-ffi); m=i; f3=fny(xk1); if (f3ff0)&(ff0+f3-2*ff2)*pow(ff0-ffn1-max),2)0.5*max*pow(ff0-f3),2) aa=lagrange(xk,&f1,d

7、k); xk=iterate(xk,aa,dk); for (i=m;in1-1;i+) for (j=0;jn1;j+) hij=hi+1j; for (j=0;j=f3) xk=xk1; float xq=0; for (i=0;in1;i+) xq+=pow(xki-x0i),2); if (xq=ad) break; return(xk);void main() float xkn1=0,0;/取初始点 float *xx; xx=(float *)malloc(n1 *sizeof(float); xx=powell(xk); float ff=fny(xx); cout优化的结果为:endl; printf(nnThe Optimal Design Result Is:n); for (int i=0;in1;i+) printf(nt x%d *=%f,i+1,xxi); printf(nt f*=%f,ff); getch();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1