最优化-刘志斌-课后习题3-5参考答案(5)

2020-05-23 15:30

%输入: x0是初始点, fun, gfun, Hess 分别是求 % 目标函数,梯度,Hesse 阵的函数

%输出: x, val分别是近似最优点和最优值, k是迭代次数. maxk=100; %给出最大迭代次数 sigma=0.4; k=0; epsilon=1e-5; while(k

gk=feval(gfun,x0); %计算梯度 Gk=feval(Hess,x0); %计算Hesse阵

dk=-Gk\\gk'; %解方程组Gk*dk=-gk, 计算搜索方向 if(norm(gk)

val=feval(fun,x);

5、frcg.m

function [x,val,k]=frcg(fun,gfun,x0)

% 功能: 用FR共轭梯度法求解无约束问题: min f(x) %输入: x0是初始点, fun, gfun分别是目标函数和梯度

%输出: x, val分别是近似最优点和最优值, k是迭代次数. maxk=5000; %最大迭代次数 rho=0.6;sigma=0.4; k=0; epsilon=1e-6; n=length(x0); while(k

g=feval(gfun,x0); %计算梯度 itern=k-(n+1)*floor(k/(n+1)); itern=itern+1; %计算搜索方向 if(itern==1) d=-g; else

beta=(g'*g)/(g0'*g0); d=-g+beta*d0; gd=g'*d; if(gd>=0.0) d=-g; end end

if(norm(g)

while(m<20) %Armijo搜索

if(feval(fun,x0+rho^m*d)

x0=x0+rho^mk*d; val=feval(fun,x0); g0=g; d0=d;

k=k+1; end x=x0;

val=feval(fun,x);

6、waidianfa.m close all clear all clc

syms x1 x2 M; %M为罚因子。

m(1)=1;

c=8; %c为递增系数。赋初值。 a(1)=20;

b(1)=20; f=(x1-2)^2+x2^2+M*(x1-1)^2; %外点罚函数 f0(1)=500;

%求偏导、Hessian元素 fx1=diff(f,'x1'); fx2=diff(f,'x2'); fx1x1=diff(fx1,'x1'); fx1x2=diff(fx1,'x2'); fx2x1=diff(fx2,'x1'); fx2x2=diff(fx2,'x2'); %外点法M迭代循环

for k=1:100 x1=a(k); x2=b(k);

M=m(k); %牛顿法求最优值

for n=1:100 f1=subs(fx1); %求解梯度值和Hessian矩阵 f2=subs(fx2); f11=subs(fx1x1); f12=subs(fx1x2); f21=subs(fx2x1); f22=subs(fx2x2);

if(double(sqrt(f1^2+f2^2))<=1e-6) %最优值收敛条件 a(k+1)=double(x1);b(k+1)=double(x2);f0(k+1)=double(subs(f)); break; else

X=[x1 x2]'-inv([f11 f12;f21 f22])*[f1 f2]';

x1=X(1,1);x2=X(2,1); end end

if(double(sqrt((a(k+1)-a(k))^2+(b(k+1)-b(k))^2))<=1e-6)&&(double(abs((f0(k+1)-f0(k))/f0(k)))<=1e-6) %罚因子迭代收敛条件

%输出最优点坐标,罚因子迭代次数,最优值 X=[a(k+1) b(k+1)] step=k F=f0(k+1) break; else

m(k+1)=c*m(k); end end


最优化-刘志斌-课后习题3-5参考答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版初二数学下册期末测试题及答案-(1)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: