正定。由于正定,函数q的驻点是q(x)的极小点。为求此极小点,令。
即可解得。对照基本迭代格式(1),可知从点出发沿搜索方向。
并取步长即可得q(x)的最小点通常,把方向叫做从点出发的。
newton 方向。从一初始点开始,每一轮从当前迭代点出发,沿newton 方向并取步长。
为1 的求解方法,称之为newton 法。其具体步骤如下:
1°选取初始数据。选取初始点,给定终止误差,令k :=0.
2°求梯度向量。计算若停止迭代,输出否则,进行3°.
3°构造newton 方向。计算取。
4° 求下一迭代点。令转2°.
例5 用newton 法求解,选取
解:(i)
ii)编写 m 文件 如下:
function [f,df,d2f]=nwfun(x);
f=x(1)^4+25*x(2)^4+x(1)^2*x(2)^2;
df=[4*x(1)^3+2*x(1)*x(2)^2;100*x(2)^3+2*x(1)^2*x(2)];
d2f=[2*x(1)^2+2*x(2)^2,4*x(1)*x(2)
4*x(1)*x(2),300*x(2)^2+2*x(1)^2];
iii)编写主程序文件 如下:
clcx=[2;2];
f0,g1,g2]=nwfun(x);
while norm(g1)>0.00001
p=-inv(g2)*g1;
x=x+p;
f0,g1,g2]=nwfun(x);
endx, f0
如果目标函数是非二次函数,一般地说,用newton 法通过有限轮迭代并不能保证。
可求得其最优解。
为了提高计算精度,我们在迭代时可以采用变步长计算上述问题,编写主程序文件。
example5_2 如下:
clc,clear
x=[2;2];
f0,g1,g2]=nwfun(x);
while norm(g1)>0.00001
p=-inv(g2)*g1;p=p/norm(p);
t=1.0;f=nwfun(x+t*p);
while f>f0
t=t/2;f=nwfun(x+t*p);
endx=x+t*p;
f0,g1,g2]=nwfun(x);
endx,f0
newton 法的优点是收敛速度快;缺点是有时不好用而需采取改进措施,此外,当。
维数较高时,计算的工作量很大。
2.3.1.3 变尺度法。
变尺度法(variable metric algorithm)是近20 多年来发展起来的,它不仅是求解。
无约束极值问题非常有效的算法,而且也已被推广用来求解约束极值问题。由于它既避免计算二阶导数矩阵及其求逆过程,又比梯度法的收敛速度快,特别是对高维问题具有显著的优越性,因而使变尺度法获得了很高的声誉。下面我们就来简要地介绍一种变尺度法—dfp 法的基本原理及其计算过程。
这一方法首先由d**idon 在1959 年提出,后经fletcher 和powell 加以改进。
我们已经知道,牛顿法的搜索方向是为了不计算二阶导数矩阵及其逆阵,我们设法构造另一个矩阵,用它来逼近二阶导数矩阵的逆阵这一类方法也称拟牛顿法(quasi-newton method).
下面研究如何构造这样的近似矩阵,并将它记为我们要求:每一步都能以现有的信息来确定下一个搜索方向;每做一次选代,目标函数值均有所下降;这些近似矩阵最后应收敛于解点处的hesse 阵的逆阵。
当 f (x)是二次函数时,其hesse 阵为常数阵a,任两点和处的梯度之差为。
或 对于非二次函数,仿照二次函数的情形,要求其 hesse 阵的逆阵的第k +1次近似。
矩阵满足关系式。
这就是常说的拟newton 条件。
若令8)则式(7)变为。
现假定已知,用下式求(设和均为对称正定阵);
其中称为第k 次校正矩阵。显然,应满足拟newton 条件(9),即要求。
或11)由此可以设想, 的一种比较简单的形式是。
其中和为两个待定列向量。
将式(12)中的代入(11),得。
这说明,应使。
考虑到应为对称阵,最简单的办法就是取。
由式(13)得。
若和不等于零,则有。
于是,得校正矩阵。
从而得到18)
上述矩阵称为尺度矩阵。通常,我们取第一个尺度矩阵为单位阵,以后的尺度矩阵按式(18)逐步形成。可以证明:
(i)当xk 不是极小点且正定时,式(17)右端两项的分母不为零,从而可按式(18)产生下一个尺度矩阵;
(ii)若为对称正定阵,则由式(18)产生的也是对称正定阵;
(iii)由此推出dfp 法的搜索方向为下降方向。
现将 dfp 变尺度法的计算步骤总结如下。
1°给定初始点及梯度允许误差。
2°若则x0即为近似极小点,停止迭代,否则,转向下一步。
3°令(单位矩阵),在方向进行一维搜索,确定最佳步长:
如此可得下一个近似点。
4°一般地,设已得到近似点算出若。
则即为所求的近似解,停止迭代;否则,计算:
并令在方向上进行一维搜索,得,从而可得下一个近似点
5°若满足精度要求,则即为所求的近似解,否则,转回4°,直到求出某点满足精度要求为止。
2.3.2 直接法。
在无约束非线性规划方法中,遇到问题的目标函数不可导或导函数的解析式难以表示时,人们一般需要使用直接搜索方法。同时,由于这些方法一般都比较直观和易于理解,因而在实际应用中常为人们所采用。下面我们介绍powell 方法。
这个方法主要由所谓基本搜索、加速搜索和调整搜索方向三部分组成,具体步骤如下:
1° 选取初始数据。选取初始点n个线性无关初始方向,组成初搜索方向组。
给定终止误差令k :=0.
2°进行基本搜索。令依次沿{}中的方向进行一维搜。
索。对应地得到辅助迭代点即。
否则进行4°.
4°确定调整方向。按下式。
找出m .若。
成立,进行5°.否则,进行6°.
5°调整搜索方向组。令。
同时,令。k :=k +1,转2°.
6°不调整搜索方向组。令转2°.
2.4 matlab 求无约束极值问题。
在 matlab 工具箱中,用于求解无约束极值问题的函数有fminunc 和fminsearch,用。
法介绍如下。
求函数的极小值
其中 x 可以为标量或向量。
matlab 中fminunc 的基本命令是[x,fval]=fminunc(fun,x0,options,p1,p2, .
其中的返回值x 是所求得的极小点,fval 是函数的极小值,其它返回值的含义参见相。
关的帮助。fun 是一个m 文件,当fun只有一个返回值时,它的返回值是函数f (x);
当fun有两个返回值时,它的第二个返回值是f (x)的梯度向量;当fun有三个返回。
值时,它的第三个返回值是f (x)的二阶导数阵(hessian 阵).x0是向量x的初始值,options 是优化参数,可以使用缺省参数。p1,p2 是可以传递给fun 的一些参数。
例6 求函数的最小值。
解:编写m 文件 如下:
function [f,g]=fun2(x);
f=100*(x(2)-x(1)^2)^2+(1-x(1))^2;
g=[-400*x(1)*(x(2)-x(1)^2)-2*(1-x(1));200*(x(2)-x(1)^2)];
编写主函数文件如下:
options = optimset('gradobj','on');
x,y]=fminunc('fun2',rand(1,2),options)
即可求得函数的极小值。
在求极值时,也可以利用二阶导数,编写 m 文件 如下:
function [f,df,d2f]=fun3(x);
f=100*(x(2)-x(1)^2)^2+(1-x(1))^2;
df=[-400*x(1)*(x(2)-x(1)^2)-2*(1-x(1));200*(x(2)-x(1)^2)];
d2f=[-400*x(2)+1200*x(1)^2+2,-400*x(1)
400*x(1),200];
编写主函数文件如下:
options = optimset('gradobj','on','hessian','on');
x,y]=fminunc('fun3',rand(1,2),options)
即可求得函数的极小值。
求多元函数的极值也可以使用 matlab 的fminsearch 命令,其使用格式为:
x,fval,exitflag,output]=fminsearch(fun,x0,options,p1,p2,..
例7 求函数解编写 f (x)的m 文件如下:
function f=fun4(x);
f=sin(x)+3;
编写主函数文件如下:
x0=2;x,y]=fminsearch(@fun4,x0)
即求得在初值2 附近的极小点及极小值。取最小值时的x值。
科研训练书写格式
扉页格式 科研训练。题目。二号 黑体 加黑 居中 作者姓名。专业。指导教师姓名。专业技术职务。中英文摘要及关键词格式 摘要。摘要 之间空两格,采用三号字 黑体 加黑 居中,与内容空一行 内容采用小四号仿宋体 关键词 小四号 黑体 加黑 顶格 内容采用小四号 仿宋体 接排 各关键词之间有2个空格 ke...
几何题目格式书写训练
几何证明题书写格式训练。1 已知 如图,ab cd,直线ef分别截ab cd于m n,mg nh分别是的平分线。求证 mg nh。证明 ab cd 已知 mg平分 已知 nh平分 已知 2 已知 如图,证明 af与db相交 已知 已知 已知 3 已知 如图,ab ef,求证 bc de 证明 连接b...
数学建模格式
提交一篇 基本内容和格式大致分三大部分 一 标题 摘要部分 1 题目 写出较确切的题目 不能只写a题 b题 2 摘要 200 包括模型的主要特点 建模方法和主要结果。3 内容较多时最好有个目录。二 中心部分 1 问题提出,问题分析。2 模型建立 补充假设条件,明确概念,引进参数 模型形式 可有多个形...