第一范文网 - 专业文章范例文档资料分享平台

最优化实验报告

来源:用户分享 时间:2025/11/21 14:13:34 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

void Cnewton(float &x1,float &x2,float e){

while(sqrt((8*x1+9)*(8*x1+9)+(4*x2-3)*(4*x2-3))>=e) x1=x1-(x1+9/8.0);x2=x2-(x2-3/4.0); }

Void main(){

float x1,x2,e;

cout<<\请输入初始点(x1,x2):\

cout<<\请输入精确度:\cout<<\极小点为:(\

cout<<\

项目四 (1)

//共轭梯度法算min(x1^2+4x2^2)

void Tidu1(double &a,double &b,double e){ int k=0; double g=4*a*a+8*b*b; double s=-2*a,q=-8*b; again1:

double m=-(s*a+4*q*b)/(s*s+4*q*q); a=a+s*m; b=b+q*m; double g1=4*a*a+8*b*b; if(sqrt(g1)

double n=g1/g; s=-2*a+n*s; q=-8*b+n*q; k=k+1;

goto again1;}

else Tidu1(a,b,e); } } //主函数

void main(){

double x1,x2,e;

cout<<\请输入初始点(x1,x2):\cout<<\请输入精确度:\Tidu1(x1,x2,e);

cout<<\极小点为x=(\cout<<\

(2)

//共轭梯度法算minf(x)=2x1^2+x2^2-x1*x2 void Tidu2(double &a,double &b,double e){

int k=0; double g=(4*a-b)*(4*a-b)+(2*b-a)*(2*b-a); double s=b-4*a,q=a-2*b; again2:

double m=(a*q+s*b-4*a*s-2*b*q)/(4*s*s+2*q*q-2*s*q); a=a+s*m; b=b+q*m;

double g1=(4*a-b)*(4*a-b)+(2*b-a)*(2*b-a); if(sqrt(g1)

double n=g1/g; s=b-4*a+n*s; q=a-2*b+n*q; k=k+1;

goto again2;}else Tidu2(a,b,e);} }

//主函数

void main(){

double x1,x2,e;cout<<\请输入初始点(x1,x2):\cout<<\请输入精确度:\Tidu2(x1,x2,e);

cout<<\极小点为x=(\cout<<\ } (3) //DEP法

void DEP(double &a,double &b,double e){ int k=0; double s=40-8*a,q=12-2*b;

again:

double m=(6*q+20*s-b*q)/(4*s*s+q*q); double a1=a+m*s,b1=b+m*q;

double g=(8*a1-40)*(8*a1-40)+(2*b-12)*(2*b-12); if(sqrt(g)

b=b1;return; } else{if(k<1){

double x=a1-a,y=b1-b;

double c=8*(a1-a),d=2*(b1-b);

double h1=1+x*x/(x*c+y*d)-c*c/(c*c+d*d); double h2=x*y/(x*c+y*d)+c*d/(c*c+d*d); double h3=h2;

double h4=1+y*y/(x*c+y*d)-d*d/(c*c+d*d); double g1=8*a1-40,g2=2*b1-12; s=-h1*g1-h2*g2; q=-h3*g1-h4*g2; k=k+1;

goto again;}else DEP(a1,b1,e);} }

//主函数

void main(){

double x1,x2,e;cout<<\请输入初始点(x1,x2):\cout<<\请输入精确度:\cout<<\极小点为x=(\

cout<<\ }

项目五 (1)

void waidian(double &a,double &b,double e){ int M=4; do{

a=1/2*M; b=M/(M-1); M=100*M;

}while(fabs(a+b-1)>=e); }

void main(){ double x1,x2,e;

cout<<\请输入精确度:\waidian(x1,x2,e);

cout<<\极小点为x=(\cout<<\ } (2)

void neidian(double &a,double &b,double e){ double u1=10; double c=0.1; do{

a=(1+sqrt(1+2*u1))/2; b=u1;u1=u1*c;

}while(a-1>=e&&b>=e); }

void main(){

double x1,x2,e;

cout<<\请输入精确度:\neidian(x1,x2,e);

cout<<\极小点为x=(\

cout<<\ }

搜索更多关于: 最优化实验报告 的文档
最优化实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5y1uh84r1o0daes3y3831emx02sb8q00vnb_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top