请教高手帮忙编程序~~用matlab编写数值优化方法(最速下降法,惩罚函数法),具体题目如下:

请教高手帮忙编程序~~用matlab编写数值优化方法(最速下降法,惩罚函数法),具体题目如下:,第1张

例1 求 f = 2 在0<x<8中的最小值与最大值

主程序为wliti1.m:

f='2*exp(-x).*sin(x)'

fplot(f,[0,8])%作图语句

[xmin,ymin]=fminbnd (f, 0,8)

f1='-2*exp(-x).*sin(x)'

[xmax,ymax]=fminbnd (f1, 0,8)

运行结果:

xmin = 3.9270ymin = -0.0279

xmax = 0.7854 ymax = 0.6448

★(借助课件说明过程、作函数的图形)

例2 对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使卖仿卖水槽的容积最大?

设剪去的正方形的边长为x,则水槽的容积为: ,建立无约束优化模型为:min y=- , 0<x<1.5

先编写M文件fun0.m如下:

function f=fun0(x)

f=-(3-2*x).^2*x

主程序为wliti2.m:

[x,fval]=fminbnd('fun0',0,1.5)

xmax=x

fmax=-fval

运算结果为: xmax = 0.5000,fmax =2.0000.即剪掉的正方形的边长为0.5米时水槽的容积最大,最大容积为2立方米.

★(借助课件说明过程、作函数的图形、并编制计算程序)

例3

1、编写M-文件 fun1.m:

function f = fun1 (x)

f = exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1)

2、输入M文件wliti3.m如下:

x0 = [-1, 1]

x=fminunc(‘fun1’,x0)

y=fun1(x)

3、运行结果:

x= 0.5000 -1.0000

y = 1.3029e-10

★(借助课件说明过程、作函数的图形并编制计算程序)

例4 Rosenbrock 函数 f(x1,x2)=100(x2-x12)2+(1-x1)2 的最优解(极小)为x*=(1,1),极小值为f*=0.试用不同算法(搜索方向和步长搜索)求数值最优解.初值选为x0=(-1.2 , 2).

为获得直观认识,先画出Rosenbrock 函数的三维图形, 输入以下命令:

[x,y]=meshgrid(-2:0.1:2,-1:0.1:3)

z=100*(y-x.^2).^2+(1-x).^2

mesh(x,y,z)

画出Rosenbrock 函数的等高线图,输入命令中逗:

contour(x,y,z,20)

hold on

plot(-1.2,2,' o ')

text(-1.2,2,'start point')

plot(1,1,'o')

text(1,1,'solution')

f='100*(x(2)-x(1)^2)^2+(1-x(1))^2'

[x,fval,exitflag,output]=fminsearch(f, [-1.2 2])

运行结果:

x =1.00001.0000

fval =1.9151e-010

exitflag = 1

output =

iterations: 108

funcCount: 202

algorithm: 'Nelder-Mead simplex direct search'

★(借助课件说明过程、作函数的图形并编制计算程序)

(五)、 作业

陈酒出售的最佳时机问题

某酒厂有批新酿的好酒,如果现在就出售,可得总收入R0=50万元(人民币),如果窖藏起来待来日(第n年)按陈酒价格出售,第n年末可得总收入 (万元),而银行利率为r=0.05,试分析这批好酒窖藏多少年后出售可使总收入的现值最大. (假设现有资金X万元,将大掘其存入银行,到第n年时增值为R(n)万元,则称X为R(n)的现值.)并填下表:

一、作用不同:

惩罚函数法在M越来越大的情况下,函数F趋近于病态,乘子法克服这个缺点根据拉格朗日分解加了一个uih(x)M变为了c/2。

主要思想是引入一个新的参数λ(即拉格朗日乘子),将约束条件函数与原函数联系到一起,使能配芦并成与变量数量相等的等式方程。

二、定义不同:

基本的拉格朗日乘子法(又称为拉格朗日乘数法),就是求函数f(x1,x2,)在g(x1,x2,)=0的约束条件下的极值方法

罚函数法是从非可行解出发逐渐移动到可行区域的方法。罚函数法在理论上是可行的,在实际计算中的缺点是罚因子M的取值难于把握,太小起不到惩罚作用太大则由于误差的影响会导致错误。

三、使用方法不同:

在进化计算中,研究者选择外部罚函数法的原因主要是该方法不需轮和要提供初始可行解。需要提供初始可行解则是内部罚函数法的主要缺点。由于进化算法应用到实际问题中可能存在搜索可行解就是NP难问题,因此陪桐迹这个缺点是非常致命的。

基本的拉格朗日乘子法就bai是求函数f(x1,x2,...)在约束条件g(x1,x2,...)=0下的极值的方法。其主要思想是将约束条件函数与原函数联立,从而求出使原函数取得极值的各个变量的解。

扩展资料:

如果这个实际问题的最大或最小值存在,一般说来驻点只有一个,于是最值可求。

条件极值问题也可以化为无条件极值求解,但有些条件关系比较复杂,代换和运算很繁,而相对来说“拉格朗日乘数法”不需代换,运算简单一点,这就是优势。

条件φ(x,y,z)一定是个等式,不妨设为φ(x,y,z)=m

则再建一个函数g(x,y,z)=φ(x,y,z)-m

g(x,y,z)=0以g(x,y,z)代替φ(x,y,z)

在许多极值问题中,函数的自变量往往要受到一些条件的限制,比如,要设计一个容积为 V的长方体形开口水箱,确定长、宽和高,使水箱的表面积最小.。设水箱的长、宽、高分别为 x,y,z, 则水箱容积V=xyz。

参考资料来源:百度百科-拉格朗日乘数法

有两种情况:

1、内点惩罚函数法:求解时的探索点始终保持在可行域内。

2、外点惩罚函数法:对磨宏初始点没有要求,可以任意取定义域内任意一点。

惩罚函数可以分为外点法和内点法,其中外点法更通用,可解决念坦约束为等式和不等式混合的情形,外点法对初始点也没有要求,可以任意取定义域内任意一点。而内点法初始点必须为可行区内一点,在约束比较复杂时,这个选择内点法的初始点是有难度的,并且内点法只能解决约束为不等式情形。

罚函数的应用

1、电机优化设计

在电机优化设计中应用广义罚函数法优化方法,既可以避免罚函数内点法因罚因子取得不当而造成的寻优困难,又保留了寻优逼近边界的优点,通过目标函数调整和罚函数的容差迭代,可以达到快速收敛的目的。同时,广义罚函数优化方法,还具有边界附近进一步搜索最优点的特性。在应用中,该方法是一种实用性很强而有效的内点寻优方法。

在机械领域,利用广义罚函数优化方法编制的计算机寻优模块与各类外点法或可行方案寻求方法结合,具有显著的优化效果。

2、广义指数因子预测

该模型实施的关键在于预报方程的变量选择和系数估计,在线性回归模型的拟合过程中引入罚函数能够压缩回归方程系数估计,将方程中一部分自变量的系数压缩为0,从而达到自变量选择、降低误差方差的目的,并保证预报方程的稳定性,从而提高预测精度。因此,应用罚函数方法来实现广义指数因仔游桐子预报方程的拟合是合理的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8278800.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存