金融数量分析第20章 非线性优化理论与方法_第1页
金融数量分析第20章 非线性优化理论与方法_第2页
金融数量分析第20章 非线性优化理论与方法_第3页
金融数量分析第20章 非线性优化理论与方法_第4页
金融数量分析第20章 非线性优化理论与方法_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第20章非线性优化理论与方法20.1理论背景对于非线性的理解,可以借助于对线性概念的掌握。线性是指两个量之间所存在的正比关系,在直角坐标系上呈直线;而非线性是指两个量不成正比关系,在直角坐标系中呈曲线。最简单的非线性函数是一元二次函数,其图像是抛物线。可以说,一切含有二次项以上的多项式函数都是非线性的。线性函数关系描述的系统叫线性系统,非线性函数描述的系统称为非线性系统。在非线性科学大规模涌现之前,人们普遍认为自然界的任何问题都可以线性地加以解决。现在看来,线性只是局部的,非线性才是普遍存在的,因而直接面对非线性是不可避免的。然而,非线性科学并非是包罗万象的科学。20.1.1

非线性问题20.1.2非线性优化非线性优化的一个重要理论是1951年KuhnTucker最优条件(简称KT条件)的建立。此后的50年代主要是对梯度法和牛顿法的研究。以Davidon(1959)、Fletcher和Powell(1963)提出的DFP方法为起点,60年代是研究拟牛顿方法的活跃时期,同时对共轭梯度法也有较好的研究。在1970年由Broyden、Fletcher、Goldfarb和Shanno从不同的角度共同提出的BFGS方法是目前为止最有效的拟牛顿方法。Broyden、Dennis和More的工作使得拟牛顿方法的理论变得很完善。

70年代是非线性优化飞速发展时期,约束变尺度(SQP)方法(Han和Powell为代表)和Lagrange乘子法(代表人物是Powell和Hestenes)是这一时期的主要研究成果。80年代开始研究信赖域法、稀疏拟牛顿法、大规模问题的方法和并行计算,90年代研究解非线性优化问题的内点法和有限储存法。可以毫不夸张地说,这半个世纪是最优化发展的黄金时期。20.2理论模型20.2.1

无约束非线性优化无约束优化的一般形式为其中,f为非线性函数。优化形式转换,无约束非线性最大化可以通过转换,将其转化为标准的无约束非线性优化的一般形式:例如,常用的BenchMark函数Bananafunction20.2.2

约束非线性优化约束非线性优化的一般形式为f,gi,hj:Rn其中有一个为非线性函数,gi(x)≤0为不等式约束,hj(x)=0为等式约束。优化形式可以转换。约束非线性最大化可以通过转换,将其转化为标准的约束非线性优化的一般形式:例如,非线性约束优化问题实例:20.3

MATLAB实现20.3.1

fminunc函数(无约束优化)fminunc函数是MATLAB求解无约束优化问题的主要函数,函数主要使用BFGS拟牛顿算法(BFGSQuas

Newtonmethod)、DFP拟牛顿算法(DFPQuasi

Newtonmethod)、最速下降法等。函数语法:x=fminunc(fun,x0)x=fminunc(fun,x0,options)[x,fval]=fminunc(...)[x,fval,exitflag]=fminunc(...)[x,fval,exitflag,output]=fminunc(...)[x,fval,exitflag,output,grad]=fminunc(...)[x,fval,exitflag,output,grad,hessian]=fminunc(...)输入参数:fun:目标函数一般用M文件形式给出;x0:优化算法初始迭代点;options:参数设置。输出参数:x:最优点输出(或最后迭代点);fval:最优点(或最后迭代点)对应的函数值;exitflag:函数结束信息(具体参见MATLABhelp);output:函数基本信息,包括迭代次数、目标函数最大计算次数、使用的算法名称、计算规模;grad:最优点(或最后迭代点)的导数;hessian:最优点(或最后迭代点)的二阶导数。20.3.2

fminsearch函数fminsearch是MATLAB中求解无约束的函数之一,其使用的算法为可变多面体算法(Neldero-MeadSimplex)函数语法:x=fminsearch(fun,x0)x=fminsearch(fun,x0,options)[x,fval]=fminsearch(...)[x,fval,exitflag]=fminsearch(...)[x,fval,exitflag,output]=fminsearch(...)输入参数:fun:目标函数;x0:迭代初始点;options:函数参数设置。输出参数:x:最优点(算法停止点);fval:最优点对应的函数值;exitflag:函数停止信息。1函数收敛正常停止;0迭代次数,目标函数计算次数达到最大数;-1算法被输出函数停止(output)。Output:函数运算信息。20.3.3

fmincon函数fmincon是MATLAB最主要内置的求解约束最优化的函数,该函数的优化问题的标准形式为这里x、b、beq、lb、ub为向量,A与Aeq为矩阵,f(x)为目标函数,c(x)、ceq(x)为非线性约束,A·x≤b、Aeq·x=beq为线性约束,lb≤x≤ub为可行解的区间约束。fmincon函数使用的约束优化算法都是目前比较普适的有效算法。函数语法:x=fmincon(fun,x0,A,b)x=fmincon(fun,x0,A,b,Aeq,beq)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)[x,fval]=fmincon(...)[x,fval,exitflag]=fmincon(...)[x,fval,exitflag,output]=fmincon(...)[x,fval,exitflag,output,lambda]=fmincon(...)[x,fval,exitflag,output,lambda,grad]=fmincon(...)[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(...)

输入参数:fun:目标函数名称;x0:初始迭代点;A:线性不等式约束系数矩阵;b:线性不等式约束的常数向量;Aeq:线性等式约束系数矩阵;beq:线性等式约束的常数向量;lb:可行区域下界;ub:可行区域上界;nonlcon:非线性约束;options:优化参数设置。输出参数:x:最优点(或者结束迭代点);fval:最优点(或者结束迭代点对应的函数值);exitflag:迭代停止标识;output:算法输出(算法计算信息等);lambda:拉格朗日乘子;grad:一阶导数向量;hessian:二阶导数矩阵。20.4扩展问题20.4.1

大规模优化问题现在计算大规模的无约束问题时候,都会对原有算法采用一些有效的数值处理技术,由于该类数值计算比较复杂,这里不再详述,仅仅介绍具体的使用方法。测试函数(含100个变量)为应用MATLAB大规模算法的方法如下:20.4.2

含参数优化问题在实际问题种,优化常常在一定参数给定的情况下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论