资源描述:
《最优化大作业西电大作业!》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、牛顿法:functionNewton()X0=[1,1,1,1]';k=0;f0=fun(X0);g0=grad(X0);while(1)H=hesse(X0);P=inv(H)*g0;X=X0-P;F=fun(X);G=grad(X);if(norm(G)<0.000001)XFkbreak;elseX0=X;f0=F;g0=G;k=k+1;endendendfunctionf=fun(x)x1=x(1,1);x2=x(2,1);x3=x(3,1);x4=x(4,1);f=(x1+10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4;endfunct
2、iong=grad(x)x1=x(1,1);x2=x(2,1);x3=x(3,1);x4=x(4,1);g=[2*x1+20*x2+40*(x1-x4)^3;20*x1+200*x2+4*(x2-2*x3)^3;10*x3-10*x4-8*(x2-2*x3)^3;-10*x3+10*x4-40*(x1-x4)^3];endfunctionh=hesse(x)x1=x(1,1);x2=x(2,1);x3=x(3,1);x4=x(4,1);h=[2+120*(x1-x4)^2,20,0,-120*(x1-x4)^2;20,200+12*(x2-2*x3)^2,-24*(x2-2*x3)^2,0
3、;0,-24*(x2-2*x3)^2,10+48*(x2-2*x3)^2,-10;-120*(x1-x4)^2,0,-10,10+120*(x1-x4)^2];end运行结果如下:梯度下降法:functionmin=grads()symsx1x2x3x4pf=(x1+10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4;e=0.05;k=0;x=[-0.5,-2.5,0.5,-1.5];df=[diff(f,x1)diff(f,x2)diff(f,x3)diff(f,x4)];dk=-subs(df,[x1,x2,x3,x4],x);while(nor
4、m(dk))>=e&(k<=100)f=(x1+10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4;df=[diff(f,x1)diff(f,x2)diff(f,x3)diff(f,x4)];dk=-subs(df,[x1,x2,x3,x4],x);dk=subs(dk);x=yiwei(x,dk);k=k+1;endf=subs(f,[x1,x2,x3,x4],x);disp('×îСµãÊÇ')disp(x)disp('×îСֵÊÇ')disp(f)returnfunctionm=yiwei(x,dk)e=0.01;symsx1x2x3x4
5、f=(x1+10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4;a=x;b=x+dk;whilenorm(b-a)>eq1=a+0.328*(b-a);q2=a+0.618*(b-a);f1=subs(f,[x1,x2,x3,x4],q1);f2=subs(f,[x1,x2,x3,x4],q2);iff1>f2a=q1;elseb=q2;endf=(x1+10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4;endm=(a+b)/2;运行结果如下: