您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 共轭梯度法matlab实例
clearall;closeall;clc;symsx1x2t;f=2*x1^2+x2^2-x1*x2;f_grad=[diff(f,x1);diff(f,x2)];X0=[1;1];n=10;epsonal=0.01;fx=inline(f);fx_grad=inline(f_grad);X=X0;fx0=fx(X(1),X(2));fx0_grad=fx_grad(X(1),X(2));while1iffx0_grad.'*fx0_grad=epsonalbreak;endP0=-fx0_grad;k=0;while1Xk=X+t*P0;fx1=fx(Xk(1),Xk(2));[tk,y]=equation_extremum(fx1,t,-1,5,epsonal);Xk=X+tk*P0;fx0_k=fx(Xk(1),Xk(2));fx0_grad_k=fx_grad(Xk(1),Xk(2));iffx0_grad_k.'*fx0_grad_k=epsonalfx0_grad=fx0_grad_k;break;endifk+1==nX=X;elselamdak=fx0_grad_k.'*fx0_grad_k/(fx_grad(X(1),X(2)).'*fx_grad(X(1),X(2)));P0=-fx0_grad_k+lamdak*P0;X=Xk;k=k+1;endendendXkfx0_k运行结果:Xk=1.0e-03*0.04860.5350fx0_k=2.6495e-07
本文标题:共轭梯度法matlab实例
链接地址:https://www.777doc.com/doc-6586856 .html