1、t4=0.5*(t1+t3-c1/c2);f4=f(t4);k=0;while(abs(t4-t2)=epsilon)ift2f4f1=f2;t1=t2;t2=t4;f2=f4;elsef3=f4;t3=t4;endf3=f2;t3=t2;f1=f4;k=k+1;%输出最优解t=t4;f=f(t4);t=t2;f=f(t2);fprintf(1,迭代计算k=%3.0fn,k)极小点坐标t=%3.0fn,t)函数值f=%3.4fn,f)运行结果如下:k=7t=2f=0.00012.用黄金分割法求函数()=3t23+1的极小值,精度t(2/3)-(t2+1)(1/3);t1=b-0.618*(b-
2、a);t2=a+0.618*(b-a);k=1;whileabs(b-a)=epsilonf1epson)x=x0;fx=subs(f,x1,x2,x(1,1),x(2,1);x,fx,k=niudunfa(1;1)x=1.99995544760595233814899913778970.99997772380297616907449956889483fx=0.0000000000000000039398907941382470301534502947647k=23(2)用阻尼牛顿法在x,fx,k=zuniniudunfa(x0)%阻尼牛顿法%停机原则%迭代次数a0=-p*g1/(p*G1*p
3、);x0=x0+a0*p;while(norm(a0*p)fx=subs(f,x1,x2,x0(1,1),x0(2,1);x,fx,k=zuniniudunfa(1;x=1.9999554476059523381489991377897fx=0.0000000000000000039398907941382470301534502947647k=23(3)用变尺度法在4.用共轭梯度法求函数f(x1,x2(1)用共轭梯度法在functiony,x,k=CG(A,b,c,x0)%共轭梯度法解minf(x)=0.5*X*A*X+bx+ceps=1e-6;%迭代停机原则%fx=0.5*x0.*A.*x
4、0+b.*x0+c;r0=A*x0+b;norm(r0)epsbeta=(r1*r1)/(r0*r0);p1=-r1+beta*p0;alpha=-(r1*p1)/(p1*A*p1);x1=x1+alpha*p1;r2=A*x1+b;p0=p1;r0=r1;r1=r2;x=x1;y,x,k=CG(3-1;-11,-2;0,0,2;y=-1= 1.00001.00001(2)用变尺度法在x,fx,k=bianchidufa(A,b,c,x0)%用变尺度法求fx=0.5*xg0=A*x0+b;G0=A;H0=eye(2);d0=-H0*g0;a0=-d0*g0/(d0*G0*d0);s0=a0*d
5、0;%x(k+1)-x(k);y0=A*a0*d0;%g(k+1)-g(k);x1=x0+a0*d0;(norm(s0)=epson)switchkcase10x0=x1;breakotherwiseg1=A*x1+b;%H1=H0+s0*s0/(s0*y0)-H0*y0*y0*H0/(y0*H0*y0);H1=H0+(1+y0*H0*y0/(s0*y0)*s0*s0-H0*y0*s0-s0*y0*H0)/(s0*y0);d1=-H1*g1;a1=-d1*g1/(d1*G0*d1);a0=a1;d0=d1;H0=H1;x1=x1+a0*d0;fx=0.5*x1*A*x1+b*x1+c;x,fx
6、,k=bianchidufa(3H1=0.4031 0.25780.2578 0.8945= -1x =k = 1故函数极小点是点(1,1)5.用鲍威尔法求函数+2x24x12x1x2的极小点。用鲍威尔法在x,fx,k=bowell(A,b,c,x0)%鲍威尔法d01=1;0;d02=0;1;x02=0;esp=1e-12;norm(x0-x02)=espg01=A*x0+b;a01=-d01*g01/(d01*A*d01);x01=x0+a01*d01;g02=A*x01+b;a02=-d02*g02/(d02*A*d02);x02=x01+a02*d02;d10=x02-x0;g10=A*x02+b;a10=-d10*g10
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1