1 / 5
文档名称:

用最速下降法求解无约束非线性规划问题.docx

格式:docx   大小:26KB   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用最速下降法求解无约束非线性规划问题.docx

上传人:xiaobaizhua 2022/3/30 文件大小:26 KB

下载得到文件列表

用最速下降法求解无约束非线性规划问题.docx

相关文档

文档介绍

文档介绍:.



实<br****br/>报


姓名:XXXXXXXXXX
学号:XXXXXXXXXXX专业班级:XXXXXXXXXXXX
2013年7月04日
题目:用最速下降法求解无约束非线性规划问题摘要:
无约束最优化问第3
步;
第3步取pkf(xk);kkkk、
第4步进行一维搜索,求k,使得f(xkP)mnf(xp),令
kkP,k=k+1。转第2步
由以上计算步骤可知,最速下降法迭代终止时,求得的是目标函数驻点的一个近似点。依据以上步骤就可以用C++编程实现最速下降法求解最优解的算法
算法流程图取x(0),


三、程序代码o
#include&lt;&gt;#include&lt;&gt;
[2],doublep[2
],doublea[计算p(k)
doublelamda(doublex
{
doublelam1,lam2
lam1=(pow(a[0],3
lam2=-(pow(a[0]*x[0],2)+pow(a[1]*x[1],2));doubles;
s=-lam2/(2*lam1)
returns;
}
voidmain()
{
求(k)
f(x(k))

)*x[0]*x[0]+pow(a[1],3)*x[1]*x[1]);

最速下降法求解最优解程序运行结果
k:=k+1
@@&quot;&lt;&lt;endl;
cout&lt;&lt;&quot;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&quot;&lt;&lt;endl;cout&lt;&lt;&quot;@***@cout&lt;&lt;&quot;@@@@@@@@@@@@@@@@@***@i@@***@k@@@@@@@@@@@@&quot;&lt;&lt;endl;cout&lt;&lt;endl;
doublelamd,x[3],a[6];
doublep[2],g[2],e,y,m,n;
inti=0;
cout&lt;&lt;&quot;请输入精度e&quot;&lt;&lt;endl;
cin&gt;&gt;e;
cout&lt;&lt;&quot;请输入初始点x[0],x[1]的值:\n&quot;&lt;&lt;endl;
cin&#187;m;
cin&#187;n;
x[0]=m;
x[1]=n;
cout&lt;&lt;&quot;函数通式为f(x)=a[0]x1*x1+a[1]x2*x2+a[2]x1*x2+a[3]x1+a[4]x2+a[5]&quot;&lt;&lt;endl;
cout&lt;&lt;&quot;请依次输入函数的系数:a[0]、a[1]、a[2]、a[3]、a[4]、a[5]:&quot;&lt;&lt;endl;
for(i=0;i&lt;6;i++)
cin&gt;&gt;a[i];
p[0]=(2*a[0]*x[0]+a[2]*x[1]+a[3]);
p[1]=(2*a[1]*x[1]+a[2]*x[0]+a[4]);
g[0]=-p[0];
g[1]=-p[1];
i=0;
cout&lt;&lt;endl;
while(sqrt(g[0]*g[0]+g[1]*g[1])&gt;e&amp;&amp;i&lt;=200)
{lamd=lamda(x,g,a);
x[0]=x[0]+lamd*g[0];x[1]=x[1]+lamd*g[1];p[0]=2*a[0]*x[0];p[1]=2*a[1]*x[1];g[0]=-p[0];g[1]=-p[1];
i++;cout&lt;&lt;&quot;
cout&lt;&lt;&quot;
*************************