大学数学实验七_无约束优化

合集下载

7(10)无约束最优化问题

7(10)无约束最优化问题
6
无约束最优化问题
三,极值的充分条件
定理2 充分条件) 定理2 (充分条件) 设函数 z = f ( x , y )在点( x0 , y0 ) 的某邻域内连续, 有一阶及二阶连续偏导数, 的某邻域内连续 有一阶及二阶连续偏导数 又 f x ( x0 , y0 ) = 0, f y ( x0 , y0 ) = 0, 令 fxx ( x0 , y0 ) = A, fxy ( x0 , y0 ) = B, f yy ( x0 , y0 ) = C,
18
无约束最优化问题
作业
习题7.10 (112页 习题7.10 (112页) (A)2. 3.(2) 6. (B) 1. 2. 6.
19

一元函数 f ( x , y0 ) 在点 x0 处取得有极小值 处取得有极小值, 表示动点 P ( x , y ) ∈ U ( P0 , δ ),且 P ( x , y )沿直线
17
无约束最优化问题
y = y0上, 并沿该直线 即沿平行于 轴的正负 并沿该直线(即沿平行于 即沿平行于Ox轴的正负
方向)趋向于 方向 趋向于P0 ( x0 , y0 )时, f ( x, y) > f ( x0 , y0 ). 它们的关系是: 它们的关系是 取得极大(小 值 f ( x , y ) 在点 ( x0 , y0 ) 取得极大 小)值 f ( x0 , y )和f ( x , y0 )分别在 y0点和x0点 取得极大(小 值 取得极大 小)值.
下半个圆锥面
x
点取极大值. 也是最大值). 在(0,0)点取极大值 (也是最大值 点取极大值 也是最大值 马鞍面
z
O
y
O
x
y
4
无约束最优化问题

数学实验——无约束优化

数学实验——无约束优化

实验6无约束优化分1黄浩43实验目的1. 掌握用MATLAB优化工具箱的基本用法,对不同算法进行初步分析、比较2. 练习用无约束优化方法建立和求解实际问题模型(包括非线性最小二乘拟合)。

二、实验内容1. 《数学实验》第二版(问题2.1)问题叙述:取不同的初值计算非线性规划:尽可能求出所有局部极小点,进而找出全局极小点,并对不同算法(搜索方向、步长搜索、数值梯度与分析梯度等)的结果进行分析、比较。

实验过程:首先绘制这个函数的三维图形以及等高线(程序见四.1),结果如下:s M tn0-”19 A8 A1G \ 5 -14 -13 \ 2 A1通过观察这两幅图,可以得到,x2确定时,x1越负,函数值越大,x1确定时,x2绝对值越大,函数值越大。

但对于x1正向偏离0的情况,并没有很好的反映,于是扩大绘图范围,做出下图(程序见四.2):-1 -10由上面两幅图可见,方程像是一个四角被捏起的花布,而且z的最小值为0< 因此只要求解该方程的零点,即得到了方程的局部极小点,且若将原方程变形为:我们容易发现,该方程的零点为:x2=0或x1=0或x1=1或在求解零点之前,先针对一个零点,不妨用x1=1, x2=1,分析不同算法的优劣。

在matlab的无约束优化中,可以使用fminumc和fminsearch两种函数,搜索方向的算法有BFGS 公式、DFP公式和最速下降法三种(书中还提到的Gill-Murray 公式在matlab中已经不再使用),步长的一维搜索有混合二次三次多项式插值和三次多项式插值两种方法,另外,在求解函数梯度是也有数值方法和分析方法两种。

在对上述四类算法因素进行分析时,我们采用控制变量法,每次只保持一种或两种算法因素改变,分析它的精度及效率。

(一)分析fminumc与fminsearch两种方法的精度及效率选择初值为x1=0.8,x2=0.8,使用fminunc和fminsearch的默认算法及控制参数,输出结果如下(程序见四.3、四.4):因为精确解为x1=1, z=0,我们便可以比较出不同算法的精度。

无约束优化

无约束优化

无约束优化一、实验目的1、了解无约束优化的基本算法;2、掌握Matlab优化工具箱的基本用法;3、掌握用Matlab求解无约束优化实际问题。

二、实验要求能够掌握Matlab优化工具箱中fminunc,fminearch,lqnonlin,lqcurvefit的基本用法,能够对控制参数进行设置,能够对不同算法进行选择和比较。

fminunc为无约束优化提供了大型优化和中型优化算法.由option中的参数LargeScale控制:LargeScale=’on’(默认值),使用大型算法LargeScale=’off’,使用中型算法fminunc为中型优化算法的搜索方向提供了3种算法,由option中的参数HeUpdate控制:HeUpdate=’bfg’(默认值),拟牛顿法的BFGS公式;HeUpdate=’dfp’,拟牛顿法的DFP公式;HeUpdate=’teepdec’,最速下降法fminunc为中型优化算法的步长一维搜索提供了两种算法,由option 中参数LineSearchType控制:LineSearchType=’quadcubic’(缺省值),混合的二次和三次多项式插值;LineSearchType=’cubicpoly’,三次多项式插搜索步长的算法选择(lqnonlin,lqcurvefit)LevenbergMarquardt=‘off’(GN法)LevenbergMarquardt=‘on’(LM法,缺省值)22+2某2+4某1某2+2某2+1)e某1例minf(某)=(4某11、编写M-文件fun1.m:functionf=fun1(某)f=e某p(某(1))某(4某某(1)^2+2某某(2)^2+4某某(1)某某(2)+2某某(2)+1);2、输入M文件myprg3.m如下:某0=[-1,1];某=fminunc('fun1',某0)y=fun1(某)三、实验内容1.求下列函数的极小值点:222f(某)=某1+4某2+9某3-2某1+18某22g(某)=某1+32某2-2某1某2+某1-2某22某2y22、求解min(+)对(a,b)的不同取值如(1,1)和(9,1),及不同算法(搜索方ab向、步长搜索、数值梯度与分析梯度等)的结果进行分析、比较。

无约束常用优化方法

无约束常用优化方法

步长 ,作前进(或后退)试探.如试探成功(目
标函数值有所减小),则按步长序列
,加
大步长(注意每次加大步长都是由初始点算起),直
至试探失败(目标函数值比前一次的有所增加)时,
则取其前一次的步长作为沿这个坐标轴方向搜索的最
优步长,并计算出该方向上的终止点,而后以这个终
止点为始点再进行下一坐标轴方向的搜索,并重复上

显然 是二次函数,并且还是正定二次函数,所以 是凸函数且存在唯一全局极小点.为求此极小点,令
即可解得

(5.9)
对照基本迭代公式,易知,式(5.9)中的搜索方向
步长因子
方向
是直指点 处近似二次函数
的极小点的方向.此时称此方向为从点 出发的
Newton方向.从初始点开始,每一轮从当前迭代点出发,
沿Newton方向并取步长 的算法称为Newton法.
另外,共轭梯度法不要求精确的直线搜 索.但是,不精确的直线搜索可能导致迭代 出来的向量不再共轭,从而降低方法的效 能.克服的办法是,重设初始点,即把经过 n次迭代得到的Xn作为初始点重新迭代.
五、坐标轮换法
在坐标轮换法中,沿各个坐标轴方向进行一维搜索
时,常选用最优步长法或加速步长法.加速步长法从
初始点出发,沿搜索(坐标轴)方向先取一个较小的
三、共轭方向法
1、概念
通常,我们把从任意点
出发,依次沿某组共轭
方向进行一维搜索的求解最优化问题的方法,叫做共
轭方向法.
2、特点
• 一般地,在n维空间中可以找出n个互相共轭的方向,对于n元正 定二次函数,从任意初始点出发,顺次沿这n个共轭方向最多作n 次直线搜索就可以求得目标函数的极小点.这就是共轭方向法的 算法形成的基本思想.

实验7 无约束优化

实验7 无约束优化

数学实验作业(第八周)郭明钊 2012011880 化21一、原子位置问题1、 问题分析:题目中给出了各个原子之间的距离关系,所要求的就是每个原子在平面直角坐标系之中的具体位置。

则可以假设第i 个原子的坐标为(,)i i x y ,且假设第一个原子的位置为坐标原点,即(0,0),则问题所求就转化为了使得2222[()()]i ji j ij ij x x y y d -+--∑达到最小值时的解。

这样问题就转化为了无约束优化:2222min [()()]i j i j ij ij x x y y d -+--∑,在这里,建立数组x ,其中有50个数,()i x i 为奇数为第i 个原子的横坐标,()i x i 为偶数为第i 个原子的纵坐标。

2、 使用matlab 中的lsqnonlin 函数实现:首先建立函数m 文件function y=distance(x,d)y(1)=(x(2*4-1))^2+(x(2*4))^2-d(1)^2;y(2)=(x(2*12-1))^2+(x(2*12))^2-d(2)^2;y(3)=(x(2*13-1))^2+(x(2*13))^2-d(3)^2;y(4)=(x(2*17-1))^2+(x(2*17))^2-d(4)^2;y(5)=(x(2*21-1))^2+(x(2*21))^2-d(5)^2;y(6)=(x(2*5-1)-x(2*2-1))^2+(x(2*5)-x(2*2))^2-d(6)^2;y(7)=(x(2*16-1)-x(2*2-1))^2+(x(2*16)-x(2*2))^2-d(7)^2;y(8)=(x(2*17-1)-x(2*2-1))^2+(x(2*17)-x(2*2))^2-d(8)^2;y(9)=(x(2*25-1)-x(2*2-1))^2+(x(2*25)-x(2*2))^2-d(9)^2;y(10)=(x(2*5-1)-x(2*3-1))^2+(x(2*5)-x(2*3))^2-d(10)^2;y(11)=(x(2*20-1)-x(2*3-1))^2+(x(2*20)-x(2*3))^2-d(11)^2;y(12)=(x(2*21-1)-x(2*3-1))^2+(x(2*21)-x(2*3))^2-d(12)^2;y(13)=(x(2*24-1)-x(2*3-1))^2+(x(2*24)-x(2*3))^2-d(13)^2;y(14)=(x(2*5-1)-x(2*4-1))^2+(x(2*5)-x(2*4))^2-d(14)^2;y(15)=(x(2*12-1)-x(2*4-1))^2+(x(2*12)-x(2*4))^2-d(15)^2;y(16)=(x(2*24-1)-x(2*4-1))^2+(x(2*24)-x(2*4))^2-d(16)^2;y(17)=(x(2*8-1)-x(2*6-1))^2+(x(2*8)-x(2*6))^2-d(17)^2;y(18)=(x(2*13-1)-x(2*6-1))^2+(x(2*13)-x(2*6))^2-d(18)^2;y(19)=(x(2*19-1)-x(2*6-1))^2+(x(2*19)-x(2*6))^2-d(19)^2;y(20)=(x(2*25-1)-x(2*6-1))^2+(x(2*25)-x(2*6))^2-d(20)^2;y(21)=(x(2*8-1)-x(2*7-1))^2+(x(2*8)-x(2*7))^2-d(21)^2;y(22)=(x(2*14-1)-x(2*7-1))^2+(x(2*14)-x(2*7))^2-d(22)^2;y(23)=(x(2*16-1)-x(2*7-1))^2+(x(2*16)-x(2*7))^2-d(23)^2;y(24)=(x(2*20-1)-x(2*7-1))^2+(x(2*20)-x(2*7))^2-d(24)^2;y(25)=(x(2*21-1)-x(2*7-1))^2+(x(2*21)-x(2*7))^2-d(25)^2;y(26)=(x(2*14-1)-x(2*8-1))^2+(x(2*14)-x(2*8))^2-d(26)^2;y(27)=(x(2*18-1)-x(2*8-1))^2+(x(2*18)-x(2*8))^2-d(27)^2;y(28)=(x(2*13-1)-x(2*9-1))^2+(x(2*13)-x(2*9))^2-d(28)^2;y(29)=(x(2*15-1)-x(2*9-1))^2+(x(2*15)-x(2*9))^2-d(29)^2;y(30)=(x(2*22-1)-x(2*9-1))^2+(x(2*22)-x(2*9))^2-d(30)^2;y(31)=(x(2*11-1)-x(2*10-1))^2+(x(2*11)-x(2*10))^2-d(31)^2;y(32)=(x(2*13-1)-x(2*10-1))^2+(x(2*13)-x(2*10))^2-d(32)^2;y(33)=(x(2*19-1)-x(2*10-1))^2+(x(2*19)-x(2*10))^2-d(33)^2;y(34)=(x(2*20-1)-x(2*10-1))^2+(x(2*20)-x(2*10))^2-d(34)^2;y(35)=(x(2*22-1)-x(2*10-1))^2+(x(2*22)-x(2*10))^2-d(35)^2;y(36)=(x(2*18-1)-x(2*11-1))^2+(x(2*18)-x(2*11))^2-d(36)^2;y(37)=(x(2*25-1)-x(2*11-1))^2+(x(2*25)-x(2*11))^2-d(37)^2;y(38)=(x(2*15-1)-x(2*12-1))^2+(x(2*15)-x(2*12))^2-d(38)^2;y(39)=(x(2*17-1)-x(2*12-1))^2+(x(2*17)-x(2*12))^2-d(39)^2;y(40)=(x(2*15-1)-x(2*13-1))^2+(x(2*15)-x(2*13))^2-d(40)^2;y(41)=(x(2*19-1)-x(2*13-1))^2+(x(2*19)-x(2*13))^2-d(41)^2;y(42)=(x(2*15-1)-x(2*14-1))^2+(x(2*15)-x(2*14))^2-d(42)^2;y(43)=(x(2*16-1)-x(2*14-1))^2+(x(2*16)-x(2*14))^2-d(43)^2;y(44)=(x(2*20-1)-x(2*16-1))^2+(x(2*20)-x(2*16))^2-d(44)^2;y(45)=(x(2*23-1)-x(2*16-1))^2+(x(2*23)-x(2*16))^2-d(45)^2;y(46)=(x(2*18-1)-x(2*17-1))^2+(x(2*18)-x(2*17))^2-d(46)^2;y(47)=(x(2*19-1)-x(2*17-1))^2+(x(2*19)-x(2*17))^2-d(47)^2;y(48)=(x(2*20-1)-x(2*19-1))^2+(x(2*20)-x(2*19))^2-d(48)^2;y(49)=(x(2*23-1)-x(2*19-1))^2+(x(2*23)-x(2*19))^2-d(49)^2;y(50)=(x(2*24-1)-x(2*19-1))^2+(x(2*24)-x(2*19))^2-d(50)^2;y(51)=(x(2*23-1)-x(2*21-1))^2+(x(2*23)-x(2*21))^2-d(51)^2;y(52)=(x(2*23-1)-x(2*22-1))^2+(x(2*23)-x(2*22))^2-d(52)^2;运行实现d=[0.9607 0.4399 0.8143 1.3765 1.2722 0.5294 0.6144 0.3766 0.6893 0.9488...0.8000 1.1090 1.1432 0.4758 1.3402 0.7006 0.4945 1.0559 0.6810 0.3587...0.3351 0.2878 1.3746 0.3870 0.7511 0.4439 0.8363 0.3208 0.1574 1.2736...0.5781 0.9254 0.6401 0.2467 0.4727 1.3840 0.4366 1.0307 1.3904 0.5725...0.7660 0.4394 1.0952 1.0422 1.8255 1.4325 1.0851 0.4995 1.2277 1.1271...0.7060 0.8052]';x0=[zeros(1,3),ones(1,47)]; %设初值[x,norms,res]=lsqnonlin(@distance,x0,[],[],[],d)a=reshape(x,2,25)'b=a(:,1)';c=a(:,2)';plot(b,c,'*') %在坐标系中显示出各个原子的位置3、结果如下:误差平方和:norms = 0.1625误差向量res =8.4224e-002 -5.6716e-002 5.4597e-0025.6860e-003 -1.1847e-001 5.8619e-0023.8879e-002 1.1819e-001 2.2805e-0023.8320e-002 -3.4772e-003 -3.9762e-0021.1452e-002 5.3897e-002 -4.3139e-0022.1071e-002 -4.4450e-002 9.6968e-003-5.6455e-002 4.0990e-002 2.7157e-0021.4843e-001 1.5864e-002 -3.7006e-003-1.3585e-001 2.6711e-002 -3.8390e-0039.0472e-003 2.9573e-002 -4.3175e-003-2.5224e-003 -4.7600e-004 1.2934e-002-2.4690e-002 7.6172e-003 2.5536e-003-5.2482e-003 7.3814e-002 -3.1225e-003-6.2153e-002 4.1666e-002 1.3685e-0016.4955e-002 2.3253e-003 -6.2132e-002-1.5985e-003 -5.7399e-002 -1.5199e-0021.3400e-002 -1.8521e-002 1.2003e-0013.1653e-003各个原子的坐标数值(第一列为横坐标,第二列为纵坐标)ans =0 00.2496 1.37301.6630 1.60100.7720 0.64120.7953 1.17011.2807 0.94921.4662 0.83651.2996 0.50230.3616 0.50871.1538 0.82271.1655 1.3985-0.3685 -0.03120.2287 0.81570.9857 0.85610.5856 0.44400.6025 1.9132-0.2599 1.35380.5372 0.16430.7983 1.36701.1261 1.01080.8162 0.91311.6189 0.70121.0248 0.15481.4666 0.46970.8870 1.0702 显示在坐标系中:当改变初值时x0=[zeros(1,2),ones(1,48)]; %设初值得norms =0.2298ans =0 00.7773 1.54251.2131 1.73990.8442 0.52390.6526 0.98631.4017 1.14390.7255 0.70991.0215 0.8220-0.0902 0.93201.2946 1.03960.7993 1.3167-0.4498 0.26080.4560 0.67820.6244 1.06130.1326 1.11251.2374 1.98050.5434 1.25021.2808 0.02161.3079 0.47031.0750 0.94510.2150 1.25031.0575 0.51940.1391 0.52860.3273 1.01521.0902 0.9464当换成其他初值时,答案也会明显不同。

matlab实验7 无约束优化

matlab实验7 无约束优化

热动71 马千里 970669实验七 无约束优化实验目的1. 掌握MATLAB 优化工具箱的基本用法,对不同算法进行初步分析、比较。

2. 练习实际问题的非线性最小二乘拟合。

实验内容3. 求解)12424(min 22122211++++x x x x x e x ,初值(-1,1),对不同算法的结果进行分析、比较。

解:编制函数fun.mfunction y=fun(x)y=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);经过实验,用不同的算法fminu 得到的结果都是(0.5, -1),所不同的是迭代的次数有不同。

以上结果表明,MA TLAB 的缺省值对于此题优化效果较好,迭代次数最少。

6.《中国统计年鉴(1995)》给出表8的数据,试据此拟合生产函数中的参数,如何看待用线性最小二乘法和非线性最小二乘法拟合的结果。

解:根据Gobb-Douglas 生产函数,用Q, K, L 分别表示产值、资金、劳动力。

βαL aK L)Q(K,=a. 考虑线性最小二乘拟合。

对生产函数取对数L K a Q ln ln ln ln βα++=设R=[1 lnK lnL] x=[lna α β]’ y=[lnQ]R=1.0000 -1.3988 1.57231.0000 -1.0829 1.60691.0000 -0.9556 1.63481.0000 -0.8389 1.66361.0000 -0.5987 1.69261.0000 -0.4951 1.71071.0000 -0.4394 1.73591.0000 -0.2854 1.76401.0000 -0.0371 1.78221.0000 0.4053 1.7954 1.0000 0.6389 1.8160则Rx=y 代表一组超定方程组。

在MATLAB 下用x=R\y 得到最小二乘意义下的解 x=-3.23600.62082.3728即a=exp(-3.2360)=0.0393 α=0.6208 β=2.3728b.非线性模型function f=pp1(c)Q=[0.7171 0.8964 1.0202 1.1962 1.4928 1.6909 1.8531 2.1618 2.6635 3.45154.5006];K=[0.2469 0.3386 0.3846 0.4322 0.5495 0.6095 0.6444 0.7517 0.9636 1.49981.8944];L=[4.8179 4.9873 5.1282 5.2783 5.4334 5.5329 5.6740 5.8360 5.9432 6.02206.1470];f=Q-c(1)*k.^c(2).*L.^c(3);c0=[1 1 1]c=leastsq(‘pp1’, c0)y=sum(pp1(c).*pp1(c)) 计算误差平方和得到c= 0.0357 0.6300 2.4290y= 0.0394即a=0.0357 α=0.6300 β=2.4290再对线性模型计算误差平方和以做比较y=sum(pp1([0.0393 0.6208 2.3728]).* pp1([0.0393 0.6208 2.3728]))得到y=0.0441将以上结果列表如下是在不同意义下的最小二乘解。

无约束优化

无约束优化

数学实验七无约束优化化21 张冶5.某分子由25个原子组成,并且已经通过实验测量得到了其中某些原子对之间的距离(假设在平面结构上讨论),确定每个原子的位置关系。

解:由已知得,找到25个原子的相对坐标,使其满足题中所给数据,使其误差最小。

令第一个点的坐标为(0,0),其余点的坐标为(x i,y j), 则只需找出余下24个点的坐标使∑[(x i−x j)2+(y i−y j)2−d ij2]2i,j最小即可。

设x=[x2 y2 x3 y3 x4 y4 ······x12 y12······x24 y24]编写M文件如下:function y=yuanzi(x,d)y(1)=(x(2*4-3))^2+(x(2*4-2))^2-d(1)^2;y(2)=(x(2*12-3))^2+(x(2*12-2))^2-d(2)^2;y(3)=(x(2*13-3))^2+(x(2*13-2))^2-d(3)^2;y(4)=(x(2*17-3))^2+(x(2*17-2))^2-d(4)^2;y(5)=(x(2*21-3))^2+(x(2*21-2))^2-d(5)^2;y(6)=(x(2*5-3)-x(2*2-3))^2+(x(2*5-2)-x(2*2-2))^2-d(6)^2;y(7)=(x(2*16-3)-x(2*2-3))^2+(x(2*16-2)-x(2*2-2))^2-d(7)^2;y(8)=(x(2*17-3)-x(2*2-3))^2+(x(2*17-2)-x(2*2-2))^2-d(8)^2;y(9)=(x(2*25-3)-x(2*2-3))^2+(x(2*25-2)-x(2*2-2))^2-d(9)^2;y(10)=(x(2*5-3)-x(2*3-3))^2+(x(2*5-2)-x(2*3-2))^2-d(10)^2;y(11)=(x(2*20-3)-x(2*3-3))^2+(x(2*20-2)-x(2*3-2))^2-d(11)^2;y(12)=(x(2*21-3)-x(2*3-3))^2+(x(2*21-2)-x(2*3-2))^2-d(12)^2;y(13)=(x(2*24-3)-x(2*3-3))^2+(x(2*24-2)-x(2*3-2))^2-d(13)^2;y(14)=(x(2*5-3)-x(2*4-3))^2+(x(2*5-2)-x(2*4-2))^2-d(14)^2;y(15)=(x(2*12-3)-x(2*4-3))^2+(x(2*12-2)-x(2*4-2))^2-d(15)^2;y(16)=(x(2*24-3)-x(2*4-3))^2+(x(2*24-2)-x(2*4-2))^2-d(16)^2;y(17)=(x(2*8-3)-x(2*6-3))^2+(x(2*8-2)-x(2*6-2))^2-d(17)^2;y(18)=(x(2*13-3)-x(2*6-3))^2+(x(2*13-2)-x(2*6-2))^2-d(18)^2;y(19)=(x(2*19-3)-x(2*6-3))^2+(x(2*19-2)-x(2*6-2))^2-d(19)^2;y(20)=(x(2*25-3)-x(2*6-3))^2+(x(2*25-2)-x(2*6-2))^2-d(20)^2;y(21)=(x(2*8-3)-x(2*7-3))^2+(x(2*8-2)-x(2*7-2))^2-d(21)^2;y(22)=(x(2*14-3)-x(2*7-3))^2+(x(2*14-2)-x(2*7-2))^2-d(22)^2;y(23)=(x(2*16-3)-x(2*7-3))^2+(x(2*16-2)-x(2*7-2))^2-d(23)^2;y(24)=(x(2*20-3)-x(2*7-3))^2+(x(2*20-2)-x(2*7-2))^2-d(24)^2;y(25)=(x(2*21-3)-x(2*7-3))^2+(x(2*21-2)-x(2*7-2))^2-d(25)^2;y(26)=(x(2*14-3)-x(2*8-3))^2+(x(2*14-2)-x(2*8-2))^2-d(26)^2;y(27)=(x(2*18-3)-x(2*8-3))^2+(x(2*18-2)-x(2*8-2))^2-d(27)^2;y(28)=(x(2*13-3)-x(2*9-3))^2+(x(2*13-2)-x(2*9-2))^2-d(28)^2;y(29)=(x(2*15-3)-x(2*9-3))^2+(x(2*15-2)-x(2*9-2))^2-d(29)^2;y(30)=(x(2*22-3)-x(2*9-3))^2+(x(2*22-2)-x(2*9-2))^2-d(30)^2;y(31)=(x(2*11-3)-x(2*10-3))^2+(x(2*11-2)-x(2*10-2))^2-d(31)^2;y(32)=(x(2*13-3)-x(2*10-3))^2+(x(2*13-2)-x(2*10-2))^2-d(32)^2;y(33)=(x(2*19-3)-x(2*10-3))^2+(x(2*19-2)-x(2*10-2))^2-d(33)^2;y(34)=(x(2*20-3)-x(2*10-3))^2+(x(2*20-2)-x(2*10-2))^2-d(34)^2;y(35)=(x(2*22-3)-x(2*10-3))^2+(x(2*22-2)-x(2*10-2))^2-d(35)^2;y(36)=(x(2*18-3)-x(2*11-3))^2+(x(2*18-2)-x(2*11-2))^2-d(36)^2;y(37)=(x(2*25-3)-x(2*11-3))^2+(x(2*25-2)-x(2*11-2))^2-d(37)^2;y(38)=(x(2*15-3)-x(2*12-3))^2+(x(2*15-2)-x(2*12-2))^2-d(38)^2;y(39)=(x(2*17-3)-x(2*12-3))^2+(x(2*17-2)-x(2*12-2))^2-d(39)^2;y(40)=(x(2*15-3)-x(2*13-3))^2+(x(2*15-2)-x(2*13-2))^2-d(40)^2;y(41)=(x(2*19-3)-x(2*13-3))^2+(x(2*19-2)-x(2*13-2))^2-d(41)^2;y(42)=(x(2*15-3)-x(2*14-3))^2+(x(2*15-2)-x(2*14-2))^2-d(42)^2;y(43)=(x(2*16-3)-x(2*14-3))^2+(x(2*16-2)-x(2*14-2))^2-d(43)^2;y(44)=(x(2*20-3)-x(2*16-3))^2+(x(2*20-2)-x(2*16-2))^2-d(44)^2;y(45)=(x(2*23-3)-x(2*16-3))^2+(x(2*23-2)-x(2*16-2))^2-d(45)^2;y(46)=(x(2*18-3)-x(2*17-3))^2+(x(2*18-2)-x(2*17-2))^2-d(46)^2;y(47)=(x(2*19-3)-x(2*17-3))^2+(x(2*19-2)-x(2*17-2))^2-d(47)^2;y(48)=(x(2*20-3)-x(2*19-3))^2+(x(2*20-2)-x(2*19-2))^2-d(48)^2;y(49)=(x(2*23-3)-x(2*19-3))^2+(x(2*23-2)-x(2*19-2))^2-d(49)^2;y(50)=(x(2*24-3)-x(2*19-3))^2+(x(2*24-2)-x(2*19-2))^2-d(50)^2;y(51)=(x(2*23-3)-x(2*21-3))^2+(x(2*23-2)-x(2*21-2))^2-d(51)^2;y(52)=(x(2*23-3)-x(2*22-3))^2+(x(2*23-2)-x(2*22-2))^2-d(52)^2;运行程序如下:d=[0.9607 0.4399 0.8143 1.3765 1.2722 0.5294 0.6144 0.3766 0.6893 0.9488 0.8000 1.1090 1.1432 0.4758 1.3402 0.7006 0.4945 1.0559 0.6810 0.3587 0.3351 0.2878 1.1346 0.3870 0.75110.4439 0.8363 0.3208 0.1574 1.2736 0.5781 0.9254 0.6401 0.2467 0.4727 1.3840 0.4366 1.03071.3904 0.5725 0.7660 0.4394 1.0952 1.0422 1.8255 1.4325 1.0851 0.4995 1.2277 1.1271 0.70600.8052];x0=ones(1,48);[x,norms]=lsqnonlin(@yuanzi,x0,[],[],[],d); x=[0,0,x] ;D=reshape(x,2,25)'normsfor i=1:25plot(D(i,1),D(i,2),'*')hold on;end得到如下结果:D =0 01.7141 -0.04411.8719 -1.06420.8171 -0.55351.2606 -0.33781.5533 -0.56431.0677 -0.34581.0960 -0.73060.1433 -0.25541.4056 -0.53960.8949 -0.23200.0899 0.55620.5029 -0.70131.1012 -0.28760.5994 -0.29362.1994 -0.41771.3519 -0.07831.4262 -1.50811.2498 -1.17381.1860 -0.67640.7593 -1.02011.1465 -0.92950.3792 -0.40761.3248 -0.05561.2114 -0.5142norms =0.3008画出分布图:并且经过检验,发现当初值x0不同时,可能得到不同的结果。

Exp07_实验7_无约束优化

Exp07_实验7_无约束优化
k T k k k k
k k T k k k k
T
(x ) f
k T
k
3.2 Broyden-Fletcher-Goldfarb-Shanno(BFGS)公式
G
k

f
k
(f
k T
k T
)
(f
) x
k T
k
k

G x (x ) G (x ) G x
k
k
k
k T k
k
k T
k
k
H
k
(1
(f ) H f (x ) f
x
k 1
x [ F ( x )]
k
k
1
F (x )
k
F ( x) f ( x)
3 拟Newton方法 目的 思路
x
k 1 k
不计算Hessian阵,克服病态、不正定、计 算复杂等缺陷,同时保持收敛较快的优点 回顾解方程组 F(x)=0的拟牛顿法
k 1
x [ F ( x )]
2 Newton方法 将f(xk+1)在xk点作泰勒展开至二阶项,用d替代dk
f (x
k 1
) f (x d ) f (x ) f
k k
T
( x )d
k
1 2
d f ( x )d
T 2 k
求d使f(xk+1)极小右端对d导数为0 f ( x k ) 2 f ( x k ) d 0 牛顿方程 牛顿方向 迭代格式
k 1
x
x d
k k
k
f (x
k 1
) f (x )
k
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 表示收敛
迭代次数:4 目标函数调用次数:18
5、搜索方向:DFP;搜索步长:三次插值
输出结果如下 6
x5 =
0.4185 0.0000
v5 =
5.9198e-015
exit5 =
1
out5 =
iterations: 4
funcCount: 18
stepsize: 1
firstorderopt: 2.2075e-008
funcCount: 18
stepsize: 1
firstorderopt: 2.2209e-008
algorithm:
'medium-scale:
Quasi-Newton line search'
message: [1x468 char]
最优解 x1=0.4185 最优解 x2=0.0000
最优值=5.9926e-015
输出结果如下。
x6 =
0.4189 0.0000
v6 =
9.6391e-012
exit6 =
1
out6 =
iterations: 18
funcCount: 111
stepsize: 10
firstorderopt: 8.7861e-007
algorithm:
'medium-scale:
Quasi-Newton line search'
i
i
i
1
0.844
12
0.718
23
0.478
2
0.908
13
0.685
24
0.467
3
0.932
14
0.658
25
0.457
4
0.936
15
0.628
26
0.448
5
0.925
16
0.603
27
0.438
6
0.908
17
0.580
28
0.431
7
0.881
18
0.558
29
0.424
8
0.850
19
大学数学实验七 无约束优化 实验报告
【实验目的】 1、掌握 MATLAB 优化工具箱的基本用法,对不同算法进行初步分析、比较。 2、练习用无约束优化方法建立和求解实际问题的模型(包括非线性最小二
乘拟合)。 【实验内容】
2 取不同的初值计算下列非线性规划,尽可能求出所有局部极小点,进而找出全局极小点, 并对不同算法(搜索方向、搜索步长、数值梯度与分析梯度等)的结果进行分析、比较。 (1)
-0.8468
0.08596
1.9026e-010
3
-0.7043
0.1185
2.9597e-009
4
-0.5373
0.179
3.4633e-009
5
-0.4258
0.242
5.7723e-010
6
-0.3158
0.3336
3.6726e-011
7
-0.2145
0.4596
1.0024e-010
8
-0.1114
上面的程序中,x 和 y 分别表示 和 ,z 表示 f(x1, x2)的值。自变量的范围均取在[-2, 2] 上,根据输出的图像进一步缩小范围。
输出的三维图像如下。
1
图 1.1 三维图像
图 1.2 等高线
第一幅图中,最大的函数值的数量级已到 107,说明画图范围取得过大,函数值为 0 的 电在该图中均呈现一平面,故需要缩小自变量的范围再绘图。修改程序如下。
ቤተ መጻሕፍቲ ባይዱ
表 1.1 数值方法计算梯度得到的结果
迭代 次数
4 4 18 4 4 18
目标函数引 用次数
18 18 111 18 18 111
从上表可以看出,无论选择什么搜索方向和搜索步长,都能得到比较准确的结果(x2=0)。 但是从最优值、迭代次数和目标函数引用次数 4 个参数来看,BFGS 和 DFP 明显比最速下 降得到的结果要好。搜索步长的选择对这个问题没有影响。
message: [1x468 char]
最优解 x1=0.4189 最优解 x2=0.0000
最优值=9.6391e-012
1 表示收敛
迭代次数:18 目标函数调用次数:111
7
程序运行结果整理在下表中。
情况
1 2 3 4 5 6
搜索方向
BFGS DFP 最速下降 BFGS DFP 最速下降
最优解 步长搜索
v3 =
9.6391e-012
exit3 =
1
out3 =
iterations: 18
funcCount: 111
stepsize: 10
firstorderopt: 8.7861e-007
algorithm:
'medium-scale:
Quasi-Newton line search'
message: [1x468 char]
Quasi-Newton line search' message: [1x468 char]
最优解 x1=0.4185 最优解 x2=0.0000
最优值=5.9198e-015
1 表示收敛
迭代次数:4 目标函数调用次数:18
3、搜索方向:最速下降法;搜索步长:混合二三次插值
输出结果如下。
x3 =
0.4189 0.0000
10
牛顿法的迭代公式如下:
初值依旧取

编写计算程序如下。
11
这个程序中设置的停止迭代的条件也是
,认为此时得到的解是局部
极小点。输出的结果是(1.0000, 0.0000)。虽然根据理论分析可知这点是全局极小点,可是由
于初值给的是(0.4, 0.2),输出的结果和用其他方法得到的结果非常不同,可能是由于 f(x)的
最优解 x1=0.4185 最优解 x2=0.0000
最优值=5.9926e-015
1 表示收敛
迭代次数:4 目标函数调用次数:18
2、搜索方向:DFP;搜索步长:混合二三次插值
4
输出结果如下。
x2 = 0.4185 0.0000
v2 = 5.9198e-015
exit2 = 1
out2 = iterations: 4 funcCount: 18 stepsize: 1 firstorderopt: 2.2075e-008 algorithm: 'medium-scale:
x1
最优解 x2
最优值
混合二三 次插值
0.4185 0.4185 0.4189
0.0000 0.0000 0.0000
5.9926e-015 5.9198e-015 9.6391e-012
0.4185 三次插值 0.4185
0.0000 5.9926e-015 0.0000 5.9198e-015
0.4189 0.0000 9.6391e-012
输出结果如下。
x1 = 0.4185 0.0000
v1 = 5.9926e-015
exit1 = 1
out1 = iterations: 4 funcCount: 18 stepsize: 1 firstorderopt: 2.2209e-008 algorithm: 'medium-scale:
Quasi-Newton line search' message: [1x468 char]

函数 是一个二变量的、乘积形式的函数,而且可以预见,其梯度向量和 Hessian 矩
阵的表达式比较复杂,故若通过求梯度的方法求解本题会十分麻烦。
从这个函数表达式可以看出

故若某个 能使
,应该就是最优解。从表达式容易观察得,当


时,

下面用 MATLAB 求解这个问题。 一、输出三维图像和等高线,直观观察最优解所在位置 首先,先让 MATLAB 输出 的三维图像,直观地观察最优解的大致范围。程序如下。
四、自编程序实现用最速下降法和牛顿法进行计算
最速下降法的迭代公式如下:
初值依旧取
。之前也已经求出了 。编写计算程序如下。
9
上面的程序中设置的停止迭代的条件是
,认为此时得到的解是局部
极小点。输出的结果是(0.4194, 0.0000),和用 MATLAB 自带命令求解出来的结果很接近。
观察其收敛过程(部分):
利用之前绘三维图像和等高线的程序,在

上画出三
维图像和等高线。
输出结果如下。
图 1.6 部分局部极小点分布三维图
图 1.7 部分局部极小点分布等高线
从上图可以看出,在第二象限的确存在一条由局部极小点构成的线。根据 f(x)的表达式: 当
时, 也=0。故上式也是本题的一个最优解。 14
下面在图 1.5 的基础上,绘出 输出图像如下。
0.6555
1.2704e-010
9
-0.04218
0.8477
1.3768e-012
10
-0.02059
0.9218
3.6449e-012
表 1.3 第二象限中形似双曲线一支的曲线上的局部最小点对应的函数值
13
观察上表数据,发现这些点的最优解都已经十分靠近 0,很有可能也是全局极小点。需
要利用 MATLAB 进行进一步判断。
0.4228 0.0000 1.1436e-011
表 1.2 分析方法计算梯度得到的结果
迭代 次数
相关文档
最新文档