第10章MATLAB优化设计jspWord格式文档下载.docx

上传人:b****1 文档编号:3011063 上传时间:2023-05-01 格式:DOCX 页数:16 大小:49.73KB
下载 相关 举报
第10章MATLAB优化设计jspWord格式文档下载.docx_第1页
第1页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第2页
第2页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第3页
第3页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第4页
第4页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第5页
第5页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第6页
第6页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第7页
第7页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第8页
第8页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第9页
第9页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第10页
第10页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第11页
第11页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第12页
第12页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第13页
第13页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第14页
第14页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第15页
第15页 / 共16页
第10章MATLAB优化设计jspWord格式文档下载.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第10章MATLAB优化设计jspWord格式文档下载.docx

《第10章MATLAB优化设计jspWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《第10章MATLAB优化设计jspWord格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。

第10章MATLAB优化设计jspWord格式文档下载.docx

x=lp(f,A,b,vlb,vub,x0,N)指出由A、b定义的约束中前N个为等式约束。

x=lp(f,A,b,vlb,vub,x0,N,DISPLAY)控制警告信息显示,当时DISPLAY=-1不显示警告信息。

[x,LAMBDA]=lp(f,A,b)返回解的一组拉格朗日积。

[x,LAMBDA,HOW]=lp(f,A,b)返回信息,指出最终迭代的错误条件。

注意当解为无边界或非真实时,lp产生警告信息。

2.应用举例

求下面的优化问题。

Min-5x1+4x2+2x3

Sub.to6x1-x2+x3≤8

X1+2x2+4x3≤10

3≥x1≥-1

2≥x2≥0

x3≥0

此问题即为线性优化的标准型问题。

解:

●MATLAB实现

>

c=[-5,4,2];

a=[6,-1,1;

1,2,4,];

b=[8,10];

vlb=[-1,0,0];

vub=[3,2];

[x,lam]=lp(c,a,b,vlb,vub)

x=

1.3333

0

lam=

0.8333

3.1667

2.8333

说明x解为最优解;

lam说明条件6x1-x2+x3≤8和x2≥0及x3≥0发挥了作用。

下成再看一个实际中的应用问题。

例10.2某车间生产A和B两种产品。

为了生产A和B,所需的原料分别为2个和3个单位,而所需的工时分别为4个和2个单位,现在可以应用的原料为100个单位,工时为120个单位,每生产一台A和B分别可获得利润6元和4元,应当安排生产A、B各多少台,才能获得最大的利润?

●分析:

此问题的数学表达式为,设该车间应安排生产的A、B的数量分别为x1台,x2台,那么问题是求解最大值函数z=6x1+4x2.

x1,x2应满足如下条件:

原材料方面2x1+3x2≤100

工时方面4x1+2x2≤120

非负条件x1,x2≥0

即:

maxz=6x1+4x2minz=-6x1-4x2

Sub.to2x1+3x2≤100Sub.to2x1+3x2≤100

4x1+2x2≤1204x1+2x2≤120

x1,x2≥0x1,x2≥0

经过此变换化为标准型。

c=[-6,-4];

a=[2,3;

4,2];

b=[100,120];

vlb=[0,0];

vub=[];

[x,lam]=lp(c,a,b,vib,vub)

(二)二次优化

二次优化问题简称为QP(QuadraticProgramming)问题。

标准形式如下:

Minq(x)=xTGx+qTx

Sub.toA1x1=b1

A2x2≥b2

[B.C.]

其中x∈Rn,GRn×

n为对称阵,q∈Rn,下标1表不等式约束,下标2表示不等式约束。

若G正定,则问题为凸二次规划问题,它有惟一的全局解。

在实际问题中遇到的绝大多数都是此类问题。

在MATLAB中,二次优化问题可由函数qp求解。

●qp二次规划函数

x=qp(H,f,A,b)解决如下形式的二次规划问题

min0.5x'

Hx+f'

Sub.to:

Ax≤b

x=qp(H,f,A,b,vlb,vub)参数vlb、vub给出设计变量的上下边界约束,

即vlb≤x≤vub

x=qp(H,f,A,b,vlb,vub,x0)设置初值x0.

X=qp(H,f,A,b,vlb,vub,x0,n)指出由A、b定义的约束中前n个为等式约束。

X=qp(H,f,A,b,vlb,vub,x0,n,DISPLAY)控制警告信息显示,当DISPLAY=-1时不显示警告信息。

[x,LAMBDA]qp(H,f,A,b)返回解的一组拉格朗日积LAMBDA.

[x,LAMBDA,HOW]=qp(H,f,A,b)返回信息,指出最终迭代的错误条件。

注意当解为无边界或非真实时,产生警告信息。

2.应用举例

【例10.3】求解如下二次优化问题。

解:

此即为二次优化的标准型。

Sub.tox1+x2≤2

-x1+2x2≤2

2x1+x2≤3

x1,,x2≥0

h=[1,-1;

-1,2];

c=[-2;

-6]

a=[11;

-12;

21]

b=[2;

2;

3]

[x,l]=qp(h,c,a,b,zreros(2,1))

当所给函数并非标准确性型时,需要作一些变换,看下面的例子。

【例10.4】求解如下二次优化问题。

minf(x)=x12+x22-4x1+4

Sub.tox1-x2+2≥0

-x1+x2-1≥0

x1,x2≥0

可以看出目标函数并非标准型,需要作以下变换

其中常数项与优化计算无关。

●MATLAB实现

h=[2,0;

0,1];

c=[-4,0];

a=[-1,1;

1,-1];

-1];

x=qp(h,c,a,b,zeros(2,1))

1.5000

2.5000

(三)非线性无约束优化问题

1、fmin单变量的最小函数值

格式1:

fmin(’F’,x1,x2)

功能:

返回自变量x在区间(x1,x2)上函数F取最小值时的x值。

F为目标函数的函数名。

格式2:

fmin(’F’,x1,x2,options)

其中:

options为控制参数向量,可查foptions得到具体的值。

如:

options

(1)为负值时,则显示计算过程,默认值options

(1)为0

options

(2)为结果x的误差范围,默认值1.e-4

options(3)为优化函数精度控制,默认值1.e-4

options(4)为违反约束的结束标准,默认值1.e-6

options(5)策略选择,不常用

options(6)优化程序方法选择,值为0时为BFGS算法,值为1时为DFP算法。

options(7)线性查值算法选择,值为0时为混合插值算法,值为1时为立方查找算法。

options(8)函数值显示(目标达到问题中的Labmda)

options(9)若需要检测用户提供的导数,则设为1

options(10)函数和约束求值的数目

options(11)函数导数求值的个数

options(12)约束求值的数目

options(13)约束求值的数目

options(14)函数求值的最大次数

options(15)用于目标-达到问题的特殊目标

options(16)优化过程变量的最小梯度值

options(17)优化过程变量的最小梯度值

options(18)步长设置(默认为1或更小)

例1:

求п的近似值

fmin(‘cos’,3,4)

例2:

计算函数

在(0,1)范围内的最小值点

fmin(‘(x^3+cos(x)+x*log(x))/exp(x))’,0,1)

2、fmins多变量最小函数值

x=fmins(’F’,x0)

x=fmins(’F’,x0,options)

例3:

计算

的最小值点。

x=fmins(’2*x

(1)^3+4*x

(1)*x

(2)^3-10*x

(1)*x

(2)^2’,[0,0])

3、fminu多变量最小值时函数的变量值

格式1:

x=fminu(’F’,x0),以矩阵x0为初值,求函数F的最小值

x=fminu(’F’,x0,options)

格式3:

x=fminu(’F’,x0,options,‘gradfun’),gradfun为点x的偏导函数Df/dx

注意:

默认的算法为二次三次混合线搜索过程的BFGSQuasi-Newton方法

例:

求函数

的最小值

fun=‘exp(x

(1)*(4*x

(1)^2+2*x

(2)^2+4(x

(1)*x

(2)+2*x

(2)+1)’

x0=[-11]

options=[]

[x,options]=fminu(fun,x0,options)

x%最优解

options(8)%解处的函数值

options(10)%函数的调用次数

例分别用BFGS方法和DFP方法求解如下函数的最小值点

pfun.m

functionf=pfun(x)

f=(x

(1)+x

(2)^2+5*(x(3)-x(4))^2+(x

(2)-2*x(3))^4+10*(x

(1)-x(4))^4)

x0=[3,-1,0,1]

●BFGS方法:

BFGS方法是一个著名的解无约束最优化问题的拟牛顿方法。

采用混合插值法:

options(6)=0

options(7)=0

fminu(‘pfun’,x0,options)

采用立方插值法:

options(7)=1

●DFP方法:

options(6)=1

 

(四)最小二乘优化问题

非线性最小二乘问事处题材,简称LS(LeastSqaures)问题,它的标准形式如下:

minF(x)=∑ri(x)=r’'

r,x∈Rn,mn

其中r=r(x)=(r1(x)r2(x)…,rm(x))'

称为剩余量,某些ri(x)为非线性函数。

最小二乘问题大量应用实际拟合问题中,它固然可以用无约束优化的方法解,然而,由于此问题目标函数的特殊结构,因此可以对某些方法进行改造,使之更简单或更有效。

另外,也可由此构造一些针对此问题的特殊方法。

在MATLAB中,最小二乘问题的求解可由函数leastsq进行。

1、leastsq

(1)函数介绍

●leastsq解决非线性最小二乘问题。

●leastsq可解决以下形式的问题:

minsum{fun(x)2}函数fun和x可以为向量或矩阵。

(2)使用说明

x=leastsq('

fun'

x0)以x0为初值,寻找M文件中fun(x)返回的函数值的平方和的最小值,fun返回目标函数的向量。

注意,fun返回fun(x),而非平方和。

x0,options)函数输入选择参数由向量options定义。

●options

(2)为解x的精度要求参数。

●options(3)为求解过程的目标函数的精度要求参数,参见helpfoptions。

x,options,'

gradfun'

)输入参数函数gradfun可以返回在点x(以列保存)的偏导数函数dF/dx,gf=gradrun(x).

X=leastsp('

p1,p2…)输入参数p1,p2…并直接输给函数run和gradfun,形式为fun(x,xdata,p1,p2…)和gradfun(x,xdata,p1,p2…)。

使用options和gradfun默放值时输入空矩阵。

[x,options,F,J]=ieastsp('

x0…)返回F在解x处函数fun(x)的值和在解点处的Jacobi矩阵J。

2、curvefit

(1)函数介绍

curvefit解非线性小二乘问题。

curvefit解决形如下式的问题:

minsum{(fun(x,xdata)-ydata)2}

其中fun.xdata和ydata为向量。

(2)函数说明

x=xurvefit('

x0,xdata,ydata)以x0为初值寻找非线性方程fun(x,xdata)对数据ydata的小二乘最佳系数x。

run为计算以x和xdata为参数的函数,返回目标函数值向量F=fun(x,xdata)。

x=curvefit('

x0,xdata,ydata,options)函数输入选择参数由向量options定义。

options

(2)为解x的精度要求参数。

options(3)为求解过程的目标函数的精度要求参数,参见helpfoptions.

x=curvefit('

x,xdata,ydata,options,'

)函数gradfun是返回在解点x处(以列保存)的编导数函数dF/dx,即gf=gradfun(x,xdata,ydata).

X=curvefit('

gradfun’,p1,p2,…)参数p1、p2,…直接输出给函数fun和gradfun,即fun(x,xdata,p1,p2,…)和gradfun(x,xdata,p1,p2…)。

使用options和gradfun默认值时输入空矩阵。

[x,options,F,J]=curvefit('

x0,xdata,ydata,…)返回F在解x处函数fun(x,xdata)-ydata的值、Jacobi矩阵J和在解点处的fun值。

(五)强制约束问题

除了自由约束外,还有一种带有约束条件的优化问题,即为强约束问题。

本节介绍“罚函数法”在求解非线性优化问题中的MATLAB实现。

1、函数介绍

●constr求解多变量的强约束最小值问题

调用格式:

x=constr(‘fun’,x0)

x=constr(‘fun’,x0,options)

x=constr(‘fun’,x0,options,vlb,vub)

x=constr(‘fun’,x0,options,vlb,vub,‘gradfun’)

x=constr(‘fun’,x0,options,vlb,vub,‘gradfun’,p1,p2,……)

(1)函数返回两个函数值F和约束矩阵G[F,G]=fun(x)

(2)x0为初值

(3)options,可选参数,同前

(3)vlb,vub为x的上下限

(4)函数gradfun返回函数的偏导数和在x的约束的偏导[GF,GC]=gradfun(x)

(5)p1,p2等是输入函数的参数值,直接输入给函数fun(x,p1,p2)和gradfun(x,p1,p2)

[x,options]=constr(‘fun’,x0,……)

能够返回使用优化方法的参数值

2、举例

funf=‘f=exp(x

(1)*(4*x

(1)^2+2*x

(2)^2+4(x

(1)*x

(2)+2*x

(2)+1)’

fung=‘g=[1.5+x

(1)*x

(2)-x

(1)-x

(2)-x

(1)*x

(2)-10]’

fun=[funf,fung]

options=[]

[x,options]=constr(‘fun’,x0,options)

options(8)%查看解处的函数值

解处的约束:

g=[1.5+x

(1)*x

(2)-x

(1)-x

(2)-x

(1)*x

(2)-10]

例边界问题:

x0=[-11]%初值

options=[]%默认参数

vlb=zeros(1,2)%边界

vub=[]

[x,options]=constr(‘fun’,x0,options,vlb,vub)

用户提供导数:

x0=[-11]%初值

options=[]%默认参数

%偏导数

dfdx1=’exp(x

(1)*(4*x

(1)^2+2*x

(2)^2+4(x

(1)*x

(2)+2*x

(2)+1)+4*exp(x

(1))*(2*x

(1)*x

(2));

dfdx2=’4*exp(x

(1)*(x

(1)+x

(2)+0.5);

GF=[dfdx1,dfdx2]

FC=’[x

(2)-1,-x

(2);

x

(1)-1,-x

(1)];

grad=[GF,FC]

[x,options]=constr(‘fun’,x0,options,[],[],grad)

g=[1.5+x

(1)*x

(2)-x

(1)-x

(2)-x

(1)*x

(2)-10]%解处的约束值

加上一个等式:

x1+x2=0

x0=[-11]&

初值

options(13)=1%默认参数

[x,options]=constr(‘fun’,x0,options)

(六)目标-达到问题的优化

attgoal求解多任务-到达优化问题

x=attgoal(‘fun’,x0,goal,weight)

x=attgoal(‘fun’,x0,goal,weight,options)

[x,options]=attgoal(‘fun’,x0,goal,weight,options,vlb,vub)

[x,options]=attgoal(‘fun’,x0,goal,weight,options,vlb,vub,’gradfun’)

[x,options]=attgoal(‘fun’,x0,goal,weight,options,vlb,vub,’gradfun’,p1,p2,……)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2