MATLAB算法精粹:100个实例解析与MATLAB程序优化策略分享

MATLAB算法精粹:100个实例解析与MATLAB程序优化策略分享

程序设计之优化 MATLAB

最速下降法求解无约束优化的程序

首先建立一维搜索的m文件:minWP.m如下

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [x,minf]=minWP(f,XMAX,c1,c2,alpha,tol)

%一维搜索的Wolfe-Powell法

%作者:龚纯王正林<<精通 Matlab最优化计算>>

%f:目标函数

%XMAX:搜索最大值

%c1:可接受系数1

%c2:可接受系数2

%alpha:增大步长倍数

%tol:精度

%x:极小值点

%minf:极小值点处的函数值

format long;

if nargin==5

tol=1.0e-6;

end

if~(c1>0)||~(c1<c2)||~(c2<1)||~(XMAX>0)||~(alpha>1)

error('参数错误');

end

var=findsym(f);

df=diff(f);

f0=subs(f,var,0);

df0=subs(df,var,0);

a=0;

b=XMAX;

if b<inf

t=(a+b)/2;

else

t=10;

end

while 1

ft=subs(f,var,t);

fu=f0+c1tdf0;

if ft<=fu

dft=subs(df,var,t);

dfl=c2tdf0;

if dft>dfl

x=t;

break;

else

a=t;

if b==inf

t=t*alpha;

else

t=(a+b)/2;

end

continue;

end

else

b=t;

t=(a+b)/2;

continue;

end

end

minf=subs(f,var,t);

format short;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

然后建立最速下降法的m文件如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%minFD.m

function [x,minf]=minFD(f,x0,var,tol)

%最速下降法

%作者:龚纯王正林《精通Matlab最优化计算》

%目标函数:f

%初始点:x0

%自变量向量:var

%精度:tol

%所求的驻点:x

%驻点处的函数值

format long;

if nargin==3

tol=1.0e-6;

end

gradf=jacobian(f,var);%f的梯度

wucha=1;

syms lamda;

while wucha>tol

d=-subs(gradf,var,x0);

wucha=norm(d);

y=x0+lamda*d;

yf=subs(f,var,y);

%l=minHJ(yf,0,100);

l=minWP(yf,10,0.2,0.6,2);

x1=x0+l*d;

x0=x1;

end

x=x1;

minf=subs(f,var,x);

format short;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

保存后即可调用:

clear

syms x1 x2

f=1.5x1^2+0.5x2^2-x1x2-2x1

f=

3/2x1^2+1/2x2^2-x1x2-2x1

[x,mf]=minFD(f,[-2 4],[x1,x2])

x=

1.0000 1.0000

mf=

-1.0000

最优化方法及其Matlab程序设计的内容简介

设计的Matlab程序包含精确线搜索的黄金分割法和抛物线法、非精确线搜索的Armijo准则、最速下降法、牛顿法、再开始共轭梯度法、BFGS算法、DFP算法、Broyden族方法、信赖域方法、求解非线性最小二乘问题的L.M算法、解约束优化问题的乘子法、求解二次规划的有效集法、SQP子问题的光滑牛顿法以及求解约束优化问题的SQP方法等,此外,《最优化方法及其Matlab程序设计》配有丰富的例题和习题,并在附录介绍了Matlab优化工具箱的使用方法。《最优化方法及其Matlab程序设计》既注重计算方法的实用性,又注意保持理论分析的严谨性,强调数值方法的思想和原理在计算机上的实现,读者只需具备微积分、线性代数和Matlab程序设计方面的初步知识即可学习《最优化方法及其Matlab程序设计》,《最优化方法及其Matlab程序设计》可供数学与应用数学、信息与计算科学专业的本科生,应用数学、计算数学、运筹学与控制论专业的研究生,理工科相关专业的研究生,对最优化理论与算法感兴趣的教师及科技工作者阅读。

以上所转载内容均来自于网络,不为其真实性负责,只为传播网络信息为目的,非商业用途,如有异议请及时联系btr2020@163.com,本人将予以删除。
THE END
分享
二维码
< <上一篇
下一篇>>