当前位置:文档之家› 实验7_无约束优化

实验7_无约束优化

实验7_无约束优化
实验7_无约束优化

实验7 无约束优化

化工系分0 毕啸天2010011811、

【实验目的】

1.掌握用MATLAB 优化工具箱的基本用法,对不同算法进行初步分析、比较。

2.练习用无约束优化方法建立和求解实际问题模型(包括非线性最小二乘拟合)。

【实验内容】

题目4

某海岛上有12 个主要的居民点,每个居民点的位置(用平面坐标x, y 表示,距离单位:km)和居住的人数R 如表所示。现在准备在岛上建一个服务中心为居民提供各种服务,那么服务中心应该建在何处?

4.1 模型分析

模型较为简单,我们不妨假设服务中心为海岛上每个人服务的次数是均等的,且每次服务均需由服务中心出发到达目的地。

设服务中心建在(a1,a2)点,则服务中心到第k 个居民点所需要经过的距离为:

l k=R k(a1?x k)2+(a2?y k)2

那么12个居民点到服务中心的总距离可表示为

12

s=R k1k22k2

k=1

而我们所要求的结果就转化为s的最小值。

4.2 程序代码

4.2.1居民分布图

x=[0,8.20,0.50,5.70,0.77,2.87,4.43,2.58,0.72,9.76,3.19,5.55];

y=[0,0.50,4.90,5.00,6.49,8.76,3.26,9.32,9.96,3.16,7.20,7.88];

plot(x,y,'*')

此代码给出居民居住的散点图。

12个居民点的分布散点图

可以由图清晰地看出各居民点的位置。距离各点距离之和最近处应该在各点集中处,大致估计服务中心位置应该在(3,7)左右。

4.2.2 用fminunc求解

function s=island(a)

R=[6 10 8 14 12 7 6 8 10 12 10 11]*100;

x=[0 8.2 0.5 5.7 0.77 2.87 4.43 2.58 0.72 9.76 3.19 5.55];

y=[0 0.5 4.9 5 6.49 8.76 3.26 9.32 9.96 3.16 7.2 7.88];

s=0;

for k=1:12

l(k)=R(k)*sqrt((x (k)-a(1))^2+(y (k)-a(2))^2);

s=s+l(k);

end

[a,s,ef,out]=fminunc(@island,[0,0])

输出结果如下:

a =

3.601 6.5142

s =

44236

ef =

1

out =

iterations: 8

funcCount: 33

stepsize: 1

firstorderopt: 0.0067797

algorithm: [1x38 char]

message: [1x438 char]

4.2.3 用fminsearch求解

[a,s,ef,out]=fminsearch(@island,[0,0])

输出结果如下:

a =

3.601 6.5142

s =

44236

ef =

1

out =

iterations: 76

funcCount: 145

algorithm: 'Nelder-Mead simplex direct search'

message: [1x196 char]

4.2.4 用最小二乘拟合求解

function z=island2(a0,x,y,R)

z=0;

for k=1:12

z(k)=sqrt(R(k)*sqrt((x (k)-a0(1))^2+(y (k)-a0(2))^2));

end

end

R=[6 10 8 14 12 7 6 8 10 12 10 11]*100;

x=[0 8.2 0.5 5.7 0.77 2.87 4.43 2.58 0.72 9.76 3.19 5.55];

y=[0 0.5 4.9 5 6.49 8.76 3.26 9.32 9.96 3.16 7.2 7.88];

[a,norm,res,ef,out]=lsqnonlin(@island2,[0,0],[],[],[],x,y,R)

输出结果如下:

a =

3.6016 6.5135

norm =

44236

res =

Columns 1 through 4

66.826 87.007 52.886 60.184 Columns 5 through 8

58.293 40.668 44.882 48.881

Columns 9 through 12

67.026 91.732 28.293 51.164

ef =

3

out =

firstorderopt: 0.45392

iterations: 30

funcCount: 93

cgiterations: 0

algorithm: 'trust-region-reflective'

message: [1x458 char]

三者计算出的服务中心位置基本相同,此图中六角星表示服务中心的位置。

【小结】

由以上数据结果可以看出,三者给出的距离最小值完全相同。fminunc与fminsearch给出的服务中心位置结果基本相同,但是fminunc只用了8次迭代就完成了计算,但是fminsearch用了76次迭代才完成。这两种方法都是无约束优化的有效解法,fminsearch是用

单纯形法求函数最小值,适合处理阶次低但断点多的函数,fminunc是用拟牛顿法求最小值,更适合高阶连续的函数。对此题中的函数,fminunc精度更高,迭代快得多。

而最小二乘法lsqnonlin则迭代了30次,但是计算结果似乎与前二者有些不同。这两种算法完全不同,给出了不同的坐标,而最后的距离值则是相同的。

另:书后答案给出本题答案为:(3.5833,1.8417),经计算此时的距离值为62983.6,显然不对。

题目7

经济学中著名的柯布-道格拉斯(Cobb-Douglas)生产函数的一般形式为

Q K,L=aKαLβ,0<α,β<1,

其中Q,K, L分别表示产值、资金、劳动力,式中α,β,a要由经济统计数据确定.现有《中国统计年鉴(2003)》给出的统计数据如表所示,请分别用线性和非线性最小二乘法拟合求出式中的α,β,a,并解释α,β的含义。

7.1 模型分析

题目已经确定了此数据的拟合形式为Cobb-Douglas生产函数方程,再以这些数据分别给出线性与非线性的最小二乘拟合,则可以确定式中的α,β,a。

在构造函数时,以x向量的分量分别表示a,α,β,以t矩阵的第一列表示资金K,第二列表示劳动力L。

7.2非线性拟合程序代码

function f=cobb(x,t)

f=x(1).*(t(1,:).^x(2)).*(t(2,:).^x(3));

end

x0=[1 1 1];

K=[0.0910 0.2543 0.3121 0.3792 0.4754 0.4410 0.4517 0.5595 0.8080 1.3072 1.7042 2.0019

2.2914 2.4941 2.8406 2.9854

3.2918 3.7314

4.3500];

L=[4.8147 4.9873 5.1282 5.2783 5.4334 5.5329 6.4749 6.5491 6.6152 6.6808 6.7455 6.8065

6.8950 6.9820

7.0637 7.1394 7.2085 7.3025 7.3740];

Q=[0.7171 0.8964 1.0202 1.1962 1.4928 1.6909 1.8548 2.1618 2.6638 3.4634 4.6759 5.8478

6.7885

7.4463 7.8345

8.2068

9.9468 9.7315 10.4791];

[x,norm,res,ef,out]=lsqcurvefit(@cobb,x0,[K;L],Q,[0,0,0],[1,1,1])

输出结果如下:

x =

0.83444 0.7736 0.73117

norm =

2.7489

res =

Columns 1 through 4

-0.30483 0.040363 0.099976 0.13387

Columns 5 through 8

0.12539 -0.14366 -0.086582 -0.057732

Columns 9 through 12

0.15279 0.65269 0.41327 -0.045543

Columns 13 through 16

-0.28605 -0.43922 -0.019363 -0.021674

Columns 17 through 19

-1.0567 0.15712 0.73501

ef =

3

out =

firstorderopt: 1.7046e-005

iterations: 5

funcCount: 24

cgiterations: 0

algorithm: 'trust-region-reflective'

message: [1x460 char]

非线性拟合给出的结果,a=0.83444,α=0.7736,β=0.73117,其误差平方和norm=2.7489,稍大。在接下来的分析中将看到它与原数据的拟合程度。

7.3 线性拟合程序代码

7.3.1作图观察QKL的趋势

t=1984:2002;

plot(t,Q,'r');

gtext('Q');

hold on,plot(t,K,'k'),hold off gtext('K');

hold on,plot(t,L,'b'),hold off gtext('L')

7.3.2对数处理

从形式上观察,我们不妨将生产函数适当处理,将所给的Cobb-Douglas 方程两边取对数,则可将非线性方程化为线性形式:

L K a L K Q ln ln ln ),(ln βα++=

再令a m L l K k Q y ln ,ln ,ln ,ln ====,则方程化为线性形式l k m y βα++=。

令??????

?

??=Φ191922

11111l k

l k l k

,T a x ),,(βα= ,T

y y y y ),,,(19

21 = 则问题转化为求超定方程y x =Φ

根据最小二乘准则计算可以得到矩阵中的待定系数。由于要求线性拟合,故采用lsqlin

函数。

7.3.3 线性拟合代码

K=[0.0910 0.2543 0.3121 0.3792 0.4754 0.4410 0.4517 0.5595 0.8080 1.3072 1.7042 2.0019 2.2914 2.4941 2.8406 2.9854 3.2918 3.7314 4.3500]';

L=[4.8147 4.9873 5.1282 5.2783 5.4334 5.5329 6.4749 6.5491 6.6152 6.6808 6.7455 6.8065

1984

198619881990199219941996199820002002

02

4

6

8

10

12

6.8950 6.9820

7.0637 7.1394 7.2085 7.3025 7.3740]';

Q=[0.7171 0.8964 1.0202 1.1962 1.4928 1.6909 1.8548 2.1618 2.6638 3.4634 4.6759 5.8478 6.7885 7.4463 7.8345 8.2068 9.9468 9.7315 10.4791]';

k=log(K);

l=log(L);

f=log(Q);

M=[ ones(19,1),k,l];

[x,resnorm,residual,exit,out]=lsqlin(M,y,[],[],[],[],[-5,0,0]',[0,1,1]')

a=exp(x(1))

alpha=x(2)

beta=x(3)

输出结果如下:

x =

-0.0066453

0.73489

0.64329

resnorm =

0.35783

residual =

Columns 1 through 4

0.42453 -0.13017 -0.16924 -0.17176

Columns 5 through 8

-0.13504 0.033093 0.0068534 -0.0045973

Columns 9 through 12

-0.072331 -0.16972 -0.070651 0.028884

Columns 13 through 16

0.070479 0.092607 0.040343 0.043375

Columns 17 through 19

0.15767 0.035332 -0.0096478

exit =

3

out =

iterations: 6

algorithm: [1x43 char]

firstorderopt: 0.0114

cgiterations: 5

message: [1x123 char]

a =

0.99338

alpha =

0.73489

beta =

0.64329

7.3.4直接左除

k=log(K);

l=log(L);

f=log(Q);

M=[ ones(19,1),k,l];

s=M\f

a=exp(s(1))

alpha=s(2)

beta=s(3)

输出结果如下:

a =

0.31777

alpha =

0.66054

beta =

1.2627

不符合实际情况,应是左除无法加入参数条件限制导致的。下对此情况不予讨论。

7.4 作图对比

for t=1:19

Q1(t)=0.83444*K(t)^0.7736*L(t)^0.73117;

end

for i=1:19

Q2(i)=0.99338*K(i)^0.73489*L(i)^0.64329;

end

ts=1984:2002;

plot(ts,Q,'k'), hold on

plot(ts,Q1,'r'), hold on

plot(ts,Q2,'g')

title('原始数据与拟合函数对比')

黑线为原始数据的折线,红色为非线性拟合,绿色为取对数后的线性拟合。由于原始数据只有19个,量比较小,还不足以看出拟合的效果究竟如何。从图上看,它们都基本描述出了Q 的走势,理论上讲,线性拟合的效果更好一些。

对数线性拟合的norm=0.3579,比起用非线性拟合的数据norm=2.4789,此norm 值要小得多,这说明用取对数后用线性拟合效果很好。而且在试探的过程中,发现结果对给定参数的范围的变化较敏感。但是对初值的变化很不敏感。

7.6 参数含义

通过对柯布-道格拉斯生产函数传递变形后,进行求解得出α, β的值,同样也进行预测数据和原始数据比较。模型中参数α, β的解释:α是劳动力产出的弹性系数,β是资本产出的弹性系数,

从这个模型看出,决定工业系统发展水平的主要因素是投入的劳动力数、固定资产和综合技术水平(包括经营管理水平、劳动力素质、引进先进技术等).根据α和β的组合情况,它有三种类型:①α +β> 1称为递增报酬型,表明按现有技术用扩大生产规模来增加产出是有利的.②α +β< 1称为递减报酬型,表明按现有技术用扩大生产规模来增加产出是得不偿失的.③α+β= 1称为不变报酬型,表明生产效率并不会随着生产规模的扩大而提高,只有提高技术水平,才会提高经济效益.

1984

198619881990199219941996199820002002

02

4

6

8

10

12

原始数据与拟合函数对比

题目8

口服给药的方式相当于先有一个将药物从肠胃吸收入血液的过程,这个过程可简化为在药物进入中心室之前有一个吸收室(如图所示),记中心室和吸收室的容积分别为V,V 1,而t 时刻的血液浓度分别为c(t),c 1(t);中心室的排除速率为k ,吸收速率为k 1(这里k 和k 1分别是中心室和吸收室血药浓度变化率与浓度本身的比例系数)。设t=0时刻口服剂量为d 的药物,容易写出吸收室的血药浓度c 1(t)的微分方程为

dc 1dt =?k 1c 1c 1 0 =d V 1

中心室血药浓度c(t)的变化率由两部分组成:与c 成正比的排除(比例系数k ),

与c 1成正比的吸收(比例系数k 1)。

再考虑到中心室和吸收室的容积分另为V,V 1,得到c(t)的微分方程为

dc dt =?kc +V 1

V

k 1c 1c 0 =0

由以上两个微分方程不难解出中心室血药浓度

c t =

d V k 1

k 1?k

(e ?kt ?e ?k 1t )

在制定给药方案时必须知道这种药物的3个参数k 1,k,b=d/V ,实际中通常通过实

8.1 模型分析

本题的题干中已经给出了血药浓度的表达式,只需要代入数据进行非线性最小二乘拟合求解即可。但是正如上题中所得到启示,拟合时初值的选择不会对结果的计算产生过多影响。

对于人体而言,显然排除速率k 远小于吸收速率k1,那么可以作一个约化,将k 的初值设置为0。b 表示剂量与体积之比,它应与实验数据c 的最大值相当,不妨以t=1时的c 值作为b 的初值,设为40。然后可以选用sqnonlin 或Isqcurvefit 方便地求解。

8.2 程序代码 function f=drug(x,t,c)

f=x(3)*x(2)/(x(2)-x(1))*(exp(-x(1)*t)-exp(-x(2)*t))-c; end

x0=[0,40,10];

t=[0.083, 0.167, 0.25, 0.50, 0.75, 1.0, 1.5, 2.25, 3.0, 4.0, 6.0, 8.0, 10.0, 12.0]; c=[10.9, 21.1, 27.3, 36.4, 35.5, 38.4, 34.8, 24.2, 23.6, 15.7, 8.2, 8.3, 2.2, 1.8]; [x,norm,res,ef,out]=lsqnonlin(@drug,x0,[],[],[],t,c) 输出结果如下:

x =

0.28025 3.6212 46.827

norm =

34.232

res =

Columns 1 through 4

1.1091 -0.38854 -0.50525 -0.58205

Columns 5 through 8

2.2767 -1.4071 -1.6859 2.802

Columns 9 through 12

-1.7058 0.84384 1.2453 -2.9075

Columns 13 through 14

0.8787 -0.0423

ef =

3

out =

firstorderopt: 0.0030853

iterations: 22

funcCount: 92

cgiterations: 0

algorithm: 'trust-region-reflective'

message: [1x458 char]

8.3 结果表示

由上解出k=0.28025,k1=3.6212,b=46.827。但是误差平方和高达34.232。我们作图来观察其拟合程度。

ts=0:0.01:12;

y1=46.7849*(3.6274/(3.6274-0.2798))*(exp(-0.2798*ts)-exp(-3.6274*ts));

plot(ts,y1,'r'),hold on

plot(t,c,'*')

title('中心室血药浓度计算值与实测值对比')

中心室血药浓度计算值与实测值对比

024681012

其中黑色为计算出的曲线,蓝色点为实验数据。当药浓度上升时,即从0到1之间,拟合效果很好。但是在浓度下降的区域,拟合效果并不很好。但是也可以看出,后来蓝色点的分布本身不是很好,上下起伏较大。采用微分方程计算的函数时,本身不太可能拟合出太好的效果。

【总结】

最小二乘优化是生活中十分常见的问题。本次实验让我掌握了解决非线性无约束优化和最小二乘优化问题的方法。在尝试过程中,我发现对参数的范围限制改变,对结果有较大的影响。但是参数初值在一定邻域内改变,一般不改变结果。但是如果初值改变过多,则结果会完全变化。本次实验让我体会到了优化的威力及其重要意义。接下来几章学的都是各种优化方法,足可见它在生活中的重要性。

无约束优化方法程序

无约束优化方法---鲍威尔方法 本实验用鲍威尔方法求函数f(x)=(x1-5)2+(x2-6)2 的最优解。 一、简述鲍威尔法的基本原理 从任选的初始点x⑴o出发,先按坐标轮换法的搜索方向依次沿e1.e2.e3进行一维搜索,得各自方向的一维极小点x⑴ x⑵ x⑶.连接初始点xo⑴和最末一个一维极小点x3⑴,产生一个新的矢量 S1=x3⑴-xo⑴ 再沿此方向作一维搜索,得该方向上的一维极小点x⑴. 从xo⑴出发知道获得x⑴点的搜索过程称为一环。S1是该环中产生的一个新方向,称为新生方向。 接着,以第一环迭代的终点x⑴作为第二环迭代的起点xo⑵,即 Xo⑵←x⑴ 弃去第一环方向组中的第一个方向e1,将第一环新生方向S1补在最后,构成第二环的基本搜索方向组e2,e3,S1,依次沿这些方向求得一维极小点x1⑵,x2⑵,x3⑵.连接 Xo⑵与x3⑵,又得第二环的新生方向 S2=x3⑵-xo⑵ 沿S2作一维搜索所得的极小点x⑵即为第二环的最终迭代点 二、鲍威尔法的程序 #include "stdafx.h" /* 文件包含*/ #include

#include #include #define MAXN 10 #define sqr(x) ((x)*(x)) double xkk[MAXN],xk[MAXN],sk[MAXN]; int N,type,nt,et; //N--变量个数,type=0,1,2,3 nt,et--不等式、等式约束个数 double rk; double funt(double *x,double *g,double *h) { g[0]=x[0]; g[1]=x[1]-1; g[2]=11-x[0]-x[1]; return sqr(x[0]-8)+sqr(x[1]-8); } double F(double *x) { double f1,f2,ff,fx,g[MAXN],h[MAXN]; int i; fx=funt(x,g,h); f1=f2=0.0; if(type==0 || type==2)for(i=0; i1.0e-15)?1.0/g[i]:1.0e15;

matlab 无约束优化问题

实验八 无约束优化问题 一.实验目的 掌握应用matlab 求解无约束最优化问题的方法 二.实验原理及方法 1:标准形式: 元函数 为其中n R R f X f n R x n →∈:) (min 2.无约束优化问题的基本算法一.最速下降法(共轭梯度法)算法步骤:⑴ 给定初始点 n E X ∈0,允许误差0>ε,令k=0; ⑵ 计算() k X f ?; ⑶ 检验是否满足收敛性的判别准则: () ε≤?k X f , 若满足,则停止迭代,得点k X X ≈*,否则进行⑷; ⑷ 令() k k X f S -?=,从k X 出发,沿k S 进行一维搜索, 即求k λ使得: ()() k k k k k S X f S X f λλλ+=+≥0 min ; ⑸ 令k k k k S X X λ+=+1,k=k+1返回⑵. 最速下降法是一种最基本的算法,它在最优化方法中占有重要地位.最速下降法的优点是工作量小,存储变量较少,初始点要求不高;缺点是收敛慢,最速下降法适用于寻优过程的前期迭代或作为间插步骤,当接近极值点时,宜选用别种收敛快的算法..牛顿法算法步骤: (1) 选定初始点n E X ∈0,给定允许误差0>ε,令k=0; (2) 求()k X f ?,()() 1 2-?k X f ,检验:若() ε

常用无约束最优化方法(一)

项目三 常用无约束最优化方法(一) [实验目的] 编写最速下降法、Newton 法(修正Newton 法)的程序。 [实验学时] 2学时 [实验准备] 1.掌握最速下降法的思想及迭代步骤。 2.掌握Newton 法的思想及迭代步骤; 3.掌握修正Newton 法的思想及迭代步骤。 [实验内容及步骤] 编程解决以下问题:【选作一个】 1.用最速下降法求 22120min ()25[22]0.01T f X x x X ε=+==,,,. 2.用Newton 法求 22121212min ()60104f X x x x x x x =--++-, 初始点 0[00]0.01T X ε==,,. 最速下降法 Matlab 程序: clc;clear; syms x1 x2; X=[x1,x2]; fx=X(1)^2+X(2)^2-4*X(1)-6*X(2)+17; fxd1=[diff(fx,x1) diff(fx,x2)]; x=[2 3]; g=0; e=0.0005; a=1; fan=subs(fxd1,[x1 x2],[x(1) x(2)]); g=0; for i=1:length(fan) g=g+fan(i)^2; end g=sqrt(g); step=0; while g>e step=step+1; dk=-fan; %点x(k)处的搜索步长

ak=((2*x(1)-4)*dk(1)+(2*x(2)-6)*dk(2))/(dk(1)*dk(2)-2*dk(1)^2-2*dk(2)^2); xu=x+ak*dk; x=xu; %输出结果 optim_fx=subs(fx,[x1 x2],[x(1) x(2)]); fprintf(' x=[ %d %d ] optim_fx=%d\n',x(1),x(2),optim_fx); %计算目标函数点x(k+1)处一阶导数值 fan=subs(fxd1,[x1 x2],[x(1) x(2)]); g=0; for i=1:length(fan) g=g+fan(i)^2; end g=sqrt(g); end %输出结果 optim_fx=subs(fx,[x1 x2],[x(1) x(2)]); fprintf('\n最速下降法\n结果:\n x=[ %d %d ] optim_fx=%d\n',x(1),x(2),optim_fx); c++程序 #include #include #include #include float goldena(float x[2],float p[2]) {float a; a=-1*(x[0]*p[0]+4*x[1]*p[1])/(p[0]*p[0]+4*p[1]*p[1]); return a; } void main() {float a=0,x[2],p[2],g[2]={0,0},e=0.001,t; int i=0; x[0]=1.0; x[1]=1.0;

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

大学数学实验七无约束优化 实验报告 【实验目的】 1、掌握MATLAB优化工具箱的基本用法,对不同算法进行初步分析、比较。 2、练习用无约束优化方法建立和求解实际问题的模型(包括非线性最小二乘拟合)。 【实验内容】 2 取不同的初值计算下列非线性规划,尽可能求出所有局部极小点,进而找出全局极小点,并对不同算法(搜索方向、搜索步长、数值梯度与分析梯度等)的结果进行分析、比较。(1) 设 函数是一个二变量的、乘积形式的函数,而且可以预见,其梯度向量和Hessian矩阵的表达式比较复杂,故若通过求梯度的方法求解本题会十分麻烦。 从这个函数表达式可以看出 恒 故若某个能使,应该就是最优解。从表达式容易观察得,当或或 时,。 下面用MA TLAB求解这个问题。 一、输出三维图像和等高线,直观观察最优解所在位置 首先,先让MATLAB输出的三维图像,直观地观察最优解的大致范围。程序如下。 上面的程序中,x和y分别表示和,z表示f(x1, x2)的值。自变量的范围均取在[-2, 2]上,根据输出的图像进一步缩小范围。 输出的三维图像如下。

图1.1 三维图像 图1.2 等高线 第一幅图中,最大的函数值的数量级已到107,说明画图范围取得过大,函数值为0的电在该图中均呈现一平面,故需要缩小自变量的范围再绘图。修改程序如下。

输出的三维图像和等高线如下。 图1.3 三维图像 图1.4 等高线 从上面这幅等高线图可以看出,最优解大致分布在直线或或附近。

二、对不同算法的结果进行分析比较(数值方法计算梯度) 首先编制函数文件fun21。 取起始点为(0.4, 0.2)进行计算。 1、搜索方向:BFGS ;搜索步长:混合二三次插值 输出结果如下。 2、搜索方向:DFP ;搜索步长:混合二三次插值

无约束优化

实验9 无约束优化 一、实验目的 1、了解无约束优化的基本算法; 2、掌握Matlab优化工具箱的基本用法; 3、掌握用Matlab求解无约束优化实际问题。 二、实验要求 能够掌握Matlab优化工具箱中fminunc,fminsearch,lsqnonlin,lsqcurvefit 的基本用法,能够对控制参数进行设置,能够对不同算法进行选择和比较。 [x,fv,ef.out,grad,hess]=fminunc(@f,x0,opt,P1,P2,…) [x,fv,ef.out,]=fminsearch(@f,x0,opt,P1,P2,…) [x,norm,res,ef,out,lam,jac]=lsqnonlin(@F,x0,v1,v2,opt,P1,P2,…) [x,norm,res,ef,out,lam,jac]=lsqcurvefit(@F,x0,t,y,opt,P1,P2,…) fminunc为无约束优化提供了大型优化和中型优化算法.由options中的参数LargeScale控制: LargeScale=’on’(默认值),使用大型算法 LargeScale=’off’,使用中型算法 fminunc为中型优化算法的搜索方向提供了3种算法,由options中的参数HessUpdate控制: HessUpdate=’bfgs’(默认值),拟牛顿法的BFGS公式;

HessUpdate=’dfp ’,拟牛顿法的DFP 公式; HessUpdate=’steepdesc ’,最速下降法 fminunc 为中型优化算法的步长一维搜索提供了两种算法,由options 中参数LineSearchType 控制: LineSearchType=’quadcubic ’(缺省值),混合的二次和三 次多项式插值; LineSearchType=’cubicpoly ’,三次多项式插 搜索步长的算法选择(lsqnonlin ,lsqcurvefit ) LevenbergMarquardt = ‘off ’ (GN 法) LevenbergMarquardt = ‘on ’ (LM 法,缺省值) 例 ()=++++122 12122min (42421)x f X x x x x x e 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 文件myprg3.m 如下: x0 = [-1, 1]; x=fminunc('fun1',x0) y=fun1(x) 三、实验内容

最优化方法 课程设计报告 运用DFP算法解决无约束最优化问题

北方民族大学课程设计报告 系(部、中心)信息与计算科学学院 专业信息与计算科学班级 09信计(3)班小组成员 课程名称最优化方法 设计题目名称运用DFP算法解决无约束最优化问题提交时间2012年6月26日 成绩 指导教师

变尺度法是在牛顿法的基础上发展起来的,它和梯度法亦有密切关系.变尺度法避免了Newton法在每次迭代都要计算目标函数的Hesse矩阵和它的逆矩阵而导致随问题的维数增加计算量迅速增加.DFP算法是变尺度法中一个非常好的算法.DFP算法首先是1959年由Davidon提出的后经Fletcher和Powell改进,故名之为DFP算法,它也是求解无约束优化问题最有效的算法之一. DFP变尺度法综合了梯度法、牛顿法的优点而又避弃它们各自的缺点,只需计算一阶偏导数,无需计算二阶偏导数及其逆矩阵,对目标函数的初始点选择均无严格要求,收敛速度快. 本文主要分析DFP算法原理及运用Matalb软件编程解决实际数学问题.最后运算结果符合计算精度且只用了一次迭代,由此可见收敛速度快. 关键词:Newton法变尺度法Hesse矩阵Matlab软件

一、课程设计目的 (1) 二、课程设计要求 (1) 三、课程设计原理 (1) (1)变尺度法基本原理 (1) (2)DFP算法 (3) 四、实验内容 (4) 五、数学建模及求解 (4) 1.DFP算法迭代步骤 (4) 2.DFP算法的流程图 (5) 六、程序实现 (5) 七、数值实验的结果与分析 (8) 八、实验总结与体会 (9) 1.DFP公式恒有确切解 (9) 2.DFP算法的稳定性 (9) 参考文献 (10)

单纯形法解决无约束优化问题

分数: ___________任课教师签字:___________ 课程作业 学年学期:2017——2018学年第二学期 课程名称:优化理论 作业名称:作业三 学生姓名: 学号: 提交时间:

一、问题重述 形如的min (x),x R n f ∈问题称为无约束优化问题,常用下降算法来解决这类问题。下降算法的关键在于步长和搜索方向的选取。步长的求取可以借助前面作业中提到的一维搜索等方法求取,而搜索方向算法可以分为两大类,解析法和直接法。 解析法借助了目标函数的导数进行搜索,这类算法搜索速度快、效率高,但是对目标函数的要求更为严格。常用的方法有最速下降法、Newton 法、共轭梯度法、拟Newton 法等。 直接法不使用导数,也不需要得到目标函数的明确解析式,只需要能够得到某些函数上的点即可。因此直接法的适用范围更广,但相应的收敛速度会较慢,计算量也会随着问题维数的增加而迅速增大。常用的方法有单纯形法、Powell 方向加速法以及Powell 改进算法。 本作业以直接法的Powell 法为例,解决具体的无约束优化问题,并对将Powell 方向加速法和Powell 改进算法解决结果进行对比。 二、算法原理 对于n 维正定二次函数(x)0.5T T f x Gx b x c =++,设011,,...(k n)k p p p -<关于G 共轭,0x 与1x 为任意不同点。分别从0x 与1x 出发,依次沿011,,...k p p p -作一维搜索。如果最后找到两个互不相同的极小点x a 与x b ,则x b a x -与011,,...k p p p -关于G 共轭。 Powell 方向加速法正是基于这一原理,每次迭代过程作n+1次一维搜索。第一次沿给定的n 个线性无关的方向011,,...n p p p -依次作一维搜索,之后沿由这一阶段的起点到第n 次搜索所得到的点的方向P 再做一次一维搜索,并把这次所得点作为下一阶段的起点,下一阶段的n 个搜索方向为011,,...,n p p p p -。以此直到找到最优解。 此算法是在迭代中逐次生成共轭方向,而共轭方向又是较好的搜索方向,所以称之为方向加速法。但是,此算法产生的n 个向量可能线性或近似线性相关,这时张不成n 维空间,可能得不到真正的极小点。因此,Powell 原始算法存在一定的缺陷。 Powell 改进算法虽然不再具有二次终止性,但克服了搜索方向的线性相关的不利情形,是解决无约束优化问题较有效的直接法之一。 本次作业一维搜索的过程是利用函数求导,求得最小值。经过试验发现,α是允许为负数的。否则最终寻优得到的极值点与实际结果存在很大的偏差,

matlab实验7 无约束优化

热动71 马千里 970669 实验七 无约束优化 实验目的 1. 掌握MATLAB 优化工具箱的基本用法,对不同算法进行初步分析、比较。 2. 练习实际问题的非线性最小二乘拟合。 实验内容 3. 求解)12424(min 2212 2211++++x x x x x e x ,初值(-1,1),对不同算法的结果进行分析、比较。 解:编制函数fun.m function 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.5723 1.0000 -1.0829 1.6069 1.0000 -0.9556 1.6348 1.0000 -0.8389 1.6636 1.0000 -0.5987 1.6926 1.0000 -0.4951 1.7107 1.0000 -0.4394 1.7359 1.0000 -0.2854 1.7640 1.0000 -0.0371 1.7822 1.0000 0.4053 1.7954 1.0000 0.6389 1.8160 则Rx=y 代表一组超定方程组。在MATLAB 下用x=R\y 得到最小二乘意义下的解 x= -3.2360 0.6208 2.3728 即a=exp(-3.2360)=0.0393 α=0.6208 β=2.3728 b.非线性模型 function f=pp1(c) Q=[0.7171 0.8964 1.0202 1.1962 1.4928 1.6909 1.8531 2.1618 2.6635 3.4515 4.5006]; K=[0.2469 0.3386 0.3846 0.4322 0.5495 0.6095 0.6444 0.7517 0.9636 1.4998 1.8944]; L=[4.8179 4.9873 5.1282 5.2783 5.4334 5.5329 5.6740 5.8360 5.9432 6.0220 6.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.4290 y= 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 将以上结果列表如下 是在不同意义下的最小二乘解。 y = -0.3325 -0.1094 0.0200 0.1791 0.4007 0.5253 0.6169 0.7709 0.9796 1.2388 1.5042

多维无约束优化算法

多维无约束优化算法 多维无约束优化问题的一般数学表达式为: 求n 维设计变量 使目标函数 多维无约束优化算法就是求解这类问题的方法,它是优化技术中最重要最基础的内容之一。因为它不仅可以直接用来求解无约束优化问题,而且实际工程设计问题中的大量约束优化问题,有时也是通过对约束条件的适当处理,转化为无约束优化问题来求解的。所以,无约束优化方法在工程优化设计中有着十分重要的作用。 目前已研究出很多种无约束优化方法,它们的主要不同点在于构造搜索方向上的差别。 (1)间接法——要使用导数,如梯度法、(阻尼)牛顿法、变尺度法、共轭梯度法等。 (2)直接法——不使用导数信息,如坐标轮换法、鲍威尔法单纯形法等。用直接法寻找极小点时,不必求函数的导数,只要计算目标函数值。这类方法较适用于解决变量个数较少的(n ≤20)问题,一般情况下比间接法效率低。间接法除要计算目标函数值外,还要计算目标函数的梯度,有的还要计算其海赛矩阵。 各种优化方法之间的主要差异是在于构造的搜索方向,因此,搜索方向的构成问题乃是无约束优化方法的关键。 下面介绍几种经典的无约束优化方法。 1、梯度法 基本思想:函数的负梯度方向是函数值在该点下降最快的方向。将n 维问题转化为一系列沿负梯度方向用一维搜索方法寻优的问题,利用负梯度作为搜索方向,故称最速下降法或梯度法。 搜索方向s 取该点的负梯度方向 (最速下降方向) ,使函数值在该点附近的范围内下降最快 。 为了使目标函数值沿搜索方向能够获得最大的下降值,其步长因子应取一维搜索的最佳步长。即有 12[]T n x x x = x ()min f →x ()k f -?x k αmin ()n f R ∈x x 1(0,1,2,)k k k k s k α+=+= x x 1(0,1,2,) k k k k s k α+=+= x x 1()(0,1,2,) k k k k a f k +=-?= x x x 1()[()]min [()]min ()k k k k k k k a a f f a f f a f ?α+=-?=-?=x x x x x

实验二 无约束最优化

实验二、 无约束最优化 【实验目的】 1.了解无约束最优化方法的一些基本概念。 2.熟悉掌握用相关的命令来求解无约束最优化问题。 【实验内容】 把题目和相应的完整命令写在实验报告上。 1:无约束最优化问题实际上是什么问题?求这类问题的最优解的基本思路是什么? 2:求()5x f x e x =-在区间[1,2]内的极小值点和极小值。 3:已知2221231212 3(,,)3sin f x x x x x x x x =+-。 (1) 求123(,,)f x x x 在点(1,1,0)-附近的极小值; (2) 求123(,,)f x x x 在点(1,1,0)-附近的极小值点和极小值,要求优化算法用大范围优化算法,搜索方向用拟牛顿法的DFP 公式。 【相关知识说明】 无约束最优化是指在没有约束条件下,求多变量实值函数极值。 无约束最优化问题的数学表达式为 12min (),(,,,)n n f x x x x x R =∈ 。 一般f 为非线性函数,x 是n 维实变量,实际上这是一个多元函数无条件极值问题。 由于求极大值问题,可以用添加负号的方式转化为求极

小值问题,因此通常只讨论求极小值问题。应该注意的是,极值问题的解,即极值点,都是局部最优解,全局最优解只能从局部最优解的比较中得到。 如何求解无约束最优化问题的最优解呢?一般是采用迭代法,即先选择一个初始点,再寻找该点处的下降方向(我们称为搜索方向),在该方向上求极小点,得到一个新的点,然后在新点处再寻找下降方向和在该方向上的求极小点,……,如此下去,最终得到最优解。 我们先来看求一元函数y=f(x)在[x1,x2]内的极小值的命令: 说明:其中'fun'是函数f(x)的表达式,当然也可以是关于f(x)的函数M-文件名。返回值x 是极小值点。 现在我们来回答问题1。 问题1:求()2sin x f x e x -=在区间[0,6]内的极小值点和极小值. 命令如下 f='2*exp(-x)*sin(x)'; x=fminbnd(f,0,6) %极小值点 fval=2*exp(-x)*sin(x) %对应x 的极小值 大家得到的结果是什么呢? 这些是一元函数求极值,那么怎么求多元函数的极值

无约束优化算法:单纯形法

单纯形法 1. 算法原理 单纯形法的基本思想是: 设(0)(1)(),,...,n x x x 是n R 中的1n +个点,构成一个当前的单纯形,max min ,x x 定义如下: {}(0)(1)()max ()max (),(),...,()n f x f x f x f x = {}(0)(1)()min ()min (),(),...,()n f x f x f x f x = 记x 为这个单纯形除去max x 外的所有顶点的形心, ()max 01n i i x x x n =??=- ??? ∑ 取max x 关于x 的反射点(1)n x +,(1)max ()n x x x x +=+-构成新的单纯形,反复上述过程,直到达到停止条件。 2. 函数min f search 1) 函数语法 min (,0)x f search fun x = min (,0,) [,]min (...) [,,]min (...) [,,,]min (...) x f search fun x options x fval f search x fval exitflag f search x fval exitflag output f search ==== 函数输入: fun :目标函数 0x :迭代初始点 options :函数参数设置 函数输出: x :最优点 fval :最优点对应的函数值 exitflag :函数停止信息 1:函数收敛正常停止 0:迭代次数,目标函数计算次数达到最大数 -1:算法被输出函数停止 output :函数运算信息

2)函数使用 BanaFun m (1)目标函数程序. function f BanaFun x =不含导数解析式 ()() f x x x =-+- 100*((2)(1)^2)^2(1(1))^2 -函数不需要导数信息。 Nelder Mead Simplex SimplexUnc m (2)算法参数设置:. ('arg','','','','',250,'','') = options optimset L eScale off gradobj off MaxFunEvals display iter SimplexUnc m (3)函数调用运算:. = ('arg','','','','',250,'','') options optimset L eScale off gradobj on MaxFunEvals display iter x=- [ 1.9,2] x fval exitflag output f search BanaFun x options = [,,,]min(@,,) 3)计算结果 Iteration Func-count min f(x) Procedure 0 1 267.62 1 3 236.4 2 initial simplex 2 5 67.2672 expand 3 7 12.2776 expand 4 8 12.2776 reflect 5 10 12.277 6 contract inside 6 12 6.76772 contract inside 7 13 6.76772 reflect 8 15 6.76772 contract inside 9 17 6.76772 contract outside 10 19 6.62983 contract inside 11 21 6.55249 contract inside 12 23 6.46084 contract inside 13 24 6.46084 reflect 14 26 6.46084 contract inside 15 28 6.45544 contract outside 16 30 6.42801 expand 17 32 6.40994 expand 18 34 6.32449 expand 19 36 6.28548 expand 20 38 6.00458 expand 21 39 6.00458 reflect 22 41 5.43287 expand

7无约束最优化的解析法

第七章 无约束最优化的解析法 本章主要内容:最速下降法及其收敛性与收敛速度 Newton 切线法及其收敛性 与收敛速度 阻尼Newton 法 共轭梯度法及其收敛性 变度量 法、最小二乘法 教学目的及要求:掌握最速下降法并理解其收敛性与收敛速度,掌握Newton 切 线法并理解其收敛性与收敛速度,了解阻尼Newton 法;掌握 共轭梯度法并理解其收敛性;了解变度量法、最小二乘法。 教学重点:最速下降法. 教学难点:变度量法. 教学方法:启发式. 教学手段:多媒体演示、演讲与板书相结合. 教学时间:6学时. 教学内容: §7.1 最速下降法 考虑无约束最优化问题 m i n ()f x , (7.1.1) 其中:n f R R →具有一阶连续偏导数. 算法7-1(最速下降法) Step1 选取初始数据.选取初始点0x ,给定允许误差0ε>,令0k =. Step2 检查是否满足终止准则.计算()k f x ?,若()k f x ε?<,迭代终止,k x 为问题(7.1.1)的近似最优解;否则,转Step3. Step3 进行一维搜索.取()k k d f x =-?,求k λ和1k x +,使得 ()min ()k k k k k f x d f x d λλλ≥+=+, 1k k k k x x d λ+=+. 令:1k k =+,返回Step2. 特别地,考虑 1m i n ()2 T T f x x Qx b x c =++, (7.1.2) 其中,n n n x R Q R ?∈∈为正定矩阵,,n b R c R ∈∈.

设第k 次迭代点为k x ,从点k x 出发沿()k f x -?作一维搜索,得 1()k k k k x x f x λ+=-?, 其中k λ为最优步长.根据定理 6.1.1,有1()() 0T k k f x f x +??=.而(),n f x Q x b x R ?=+?∈, 所以1()()()k k k k f x f x Q f x λ+?=?-?,从而(()())()0T k k k k f x Q f x f x λ?-??=,而Q 正定,即()()0T k k f x Q f x ??>,故由上式解出 ()()()() T k k k T k k f x f x f x Q f x λ??=??, (7.1.3) 于是 1()()()()() T k k k k k T k k f x f x x x f x f x Q f x +??=-???, (7.1.4) 这是最速下降法用于问题(7.1.2)的迭代公式. 例1 用最速下降法求解问题 2212min ()4f x x x =+, (7.1.5) 其中12(,)T x x x =.取初始点(0)(1,1)T x =,允许误差0.1ε=. 解 问题(7.1.5)中的f 是正定二次函数,且 800,,0020Q b c ????=== ? ????? . f 在点12(,)T x x x =处的梯度12()(8,2)T f x x x ?=. 第一次迭代: 令搜索方向(0)(0)()(8,2)T d f x =-?=--, (0)d ε==>, 从点(0)x 出发沿(0)d 作一维搜索,由(7.1.3)式和(7.1.4)式有 0680.130769520 λ==, (1)(1,1)0.130769(8,2)(0.046152,0.738462)T T T x =+--=-.

无约束优化方法

第四章无约束优化方法 ——最速下降法,牛顿型方法 概述 在求解目标函数的极小值的过程中,若对设计变量的取值范围不加限制,则称这种最优化问题为无约束优化问题。尽管对于机械的优化设计问题,多数是有约束的,无约束最优化方法仍然是最优化设计的基本组成部分。因为约束最优化问题可以通过对约束条件的处理,转化为无约束最优化问题来求解。 为什么要研究无约束优化问题 (1)有些实际问题,其数学模型本身就是一个无约束优化问题。 (2)通过熟悉它的解法可以为研究约束优化问题打下良好的基础。 (3)约束优化问题的求解可以通过一系列无约束优化方法来达到。

所以无约束优化问题的解法是优化设计方法的基本组成部分,也是优化方法的基础。 根据构成搜索方向所使用的信息性质的不同,无约束优化方法可以分为两类。 一:间接法——要使用导数的无约束优化方法,如梯度法、(阻尼)牛顿法、变尺度法、共轭梯度法等。 二:直接法——只利用目标函数值的无约束优化问题,如坐标轮换法、鲍威尔法单纯形法等。 无约束优化问题的一般形式可描述为: 求n 维设计变量 []12T n n X x x x R =∈L 使目标函数 ()min f X ? 目前已研究出很多种无约束优化方法,它们的主要不同点在于构造搜索方向上的差别。 无约束优化问题的求解: 1、解析法

可以利用无约束优化问题的极值条 件求得。即将求目标函数的极值问题变成求方程 0)(min *=X f 的解。也就是 求X* 使其满足 解上述方程组,求得驻点后,再根据极值点所需满足的充分条件来判定是否为极小值点。但上式是一个含有n个未知量,n个方程的方程组,在实际问题中一般是非线性的,很难用解析法求解,0)(0)(0)(*2*1*=??=??=??n x X f x X f x X f M

第三章 无约束最优化方法

第三章无约束最优化方法 本章内容及教学安排 第一节概述 第二节迭代终止原则 第三节常用的一维搜索方法 第四节梯度法 第五节牛顿法 第六节共轭方向法 第七节变尺度法 第八节坐标轮换法 第九节鲍威尔方法 第一节概述 优化问题可分为 无约束优化问题 有约束优化问题 无约束最优化问题求解基于古典极值理论的一种数值迭代方法,主要用来求解非线性规划问题 迭代法的基本思想:

所以迭代法要解决三个问题 1、如何选择搜索方向 2、如何确定步长

3、如何确定最优点(终止迭代) 第二节 迭代终止准则 1)1K K X X ε+-≤ 111/2 21K K K K n i i i X X X X ε++=??-=-≤???? ∑() 2) 11()()()() () K K K K K f X f X f X f X or f X ε ε ++-≤-≤ 3)(1)()K f X ε+?≤ 第三节 常用的一维搜索方法 本节主要解决的是如何确定最优步长的问题。 从初始点(0)X 出发,以一定的步长沿某一个方向,可以找到一个新的迭代点,其公式如下: (1)(0)00(2)(1)11(1)() K K k k X X S X X S X X S ααα+=+=+= + 现在假设K S 已经确定,需要确定的是步长k α,就把求多维目标函数的极小值这个多维算过程中,当起步点和方向问题,变成求一个变量即步长的最优值的一维问题了。即 (1)()min ()min ()min ()K K K k k f X f X S f αα+=+= 由此可见,最佳步长*K α由一维搜索方法来确定 求*k α,使得()()()()()()min K K K K f f X S αα=+→ 一、一维搜索区间的确定 区间[,]a b 应满足 ()(*)()f a f f b α><

单纯形法解决无约束优化问题

分数: ___________ 任课教师签字:___________ 课程作业 学年学期:2017——2018学年第二学期 课程名称:优化理论 作业名称:作业三 学生姓名: 学号: 提交时间:

一、问题重述 形如的min (x),x R n f ∈问题称为无约束优化问题,常用下降算法来解决这类问题。下降算法的关键在于步长和搜索方向的选取。步长的求取可以借助前面作业中提到的一维搜索等方法求取,而搜索方向算法可以分为两大类,解析法和直接法。 解析法借助了目标函数的导数进行搜索,这类算法搜索速度快、效率高,但是对目标函数的要求更为严格。常用的方法有最速下降法、Newton 法、共轭梯度法、拟Newton 法等。 直接法不使用导数,也不需要得到目标函数的明确解析式,只需要能够得到某些函数上的点即可。因此直接法的适用范围更广,但相应的收敛速度会较慢,计算量也会随着问题维数的增加而迅速增大。常用的方法有单纯形法、Powell 方向加速法以及Powell 改进算法。 本作业以直接法的Powell 法为例,解决具体的无约束优化问题,并对将Powell 方向加速法和Powell 改进算法解决结果进行对比。 二、算法原理 对于n 维正定二次函数(x)0.5T T f x Gx b x c =++,设011,,...(k n)k p p p -<关于G 共轭,0x 与1x 为任意不同点。分别从0x 与1x 出发,依次沿011,,...k p p p -作一维搜索。如果最后找到两个互不相同的极小点x a 与x b ,则x b a x -与011,,...k p p p -关于G 共轭。 Powell 方向加速法正是基于这一原理,每次迭代过程作n+1次一维搜索。第一次沿给定的n 个线性无关的方向011,,...n p p p -依次作一维搜索,之后沿由这一阶段的起点到第n 次搜索所得到的点的方向P 再做一次一维搜索,并把这次所得点作为下一阶段的起点,下一阶段的n 个搜索方向为011,,...,n p p p p -。以此直到找到最优解。 此算法是在迭代中逐次生成共轭方向,而共轭方向又是较好的搜索方向,所以称之为方向加速法。但是,此算法产生的n 个向量可能线性或近似线性相关,这时张不成n 维空间,可能得不到真正的极小点。因此,Powell 原始算法存在一定的缺陷。 Powell 改进算法虽然不再具有二次终止性,但克服了搜索方向的线性相关的不利情形,是解决无约束优化问题较有效的直接法之一。 本次作业一维搜索的过程是利用函数求导,求得最小值。经过试验发现,α是允许为负数的。否则最终寻优得到的极值点与实际结果存在很大的偏差,

无约束优化方法与MATLAB实现

例4-1 MA TLAB实现,用M函数文件形式求解: syms s t; f=s^2+3*t^2-2*t*s+4*t+3*s; [x,minf]=minZBLH(f,[-2 6],[0.2 0.2],1.5,[t s],0.0001,0.0001) 坐标轮换minZBLH函数文件如下: function [x,minf] = minconPS2(f,x0,delta,u,var,eps1,eps2) %目标函数:f; %初始点:x0; %收缩系数:u; %自变量向量:var; %步长精度:eps1; %自变量精度:eps2; if nargin == 7 eps2 = 1.0e-6; end n = length(var); y = x0; bmainCon = 1; while bmainCon yf = subs(f,var,y); yk_1 = y; for i=1:n tmpy = zeros(size(y)); tmpy(i) = delta(i); tmpf = subs(f, var,y+tmpy); if tmpf < yf bcon = 1; while bcon tmpy(i) = 2*tmpy(i); tmpf_i = subs(f, var,y+tmpy); if tmpf_i

无约束优化与约束优化

淮海工学院实验报告书 课程名称:数学实验 实验名称:无约束优化与约束优化 班级数学091 姓名:耿萍学号:090911107 日期:2012.5.18 地点数学实验室 指导教师:曹卫平成绩: 数理科学系

1.实验目的: (1)学习建立最优化数学模型,并通过MATLAB求解。 (2)掌握MATLAB优化工具箱的基本用法,对不同算法进行初步分析、比较。 (3)练习实际问题的非线性最小二乘拟合。 (4)掌握用MATLAB优化工具包解线性规划和非线性规划。(5)练习建立实际问题的线性规划和非线性规划模型。 2.实验内容: (1)某工厂生产甲乙两种产品,一件甲用A原料1公斤,B原料5公斤;一件已用A原料2公斤,B原料4公斤。现有A原料20公斤,B 原料70公斤。甲乙产品每件售价分别为20元和30元。问如何安排生产使收入最大?当A原料或B原料,以每公斤2元买进B原料。问如何安排计划使收入最大?当A原料或B原料增加1公斤时对收入影响多大。又若可用有限资金以每公斤6元买进A原料,以每公斤2元买进原料。问如何安排计划使利润最大?解释得到的结果。 (2)炼油厂将A,B,C三种原油加工成甲乙丙三种汽油。一桶原油加工成一桶汽油的费用为4元,每天至多能加工汽油14000桶。原油的买入价、买入量、辛烷值、硫含量,及汽油的卖入价、需求量、辛烷值、硫含量由下表给出。问如何安排生产计划,在满足需求的条件下使利润最大? 一般来说,做广告可以增加销售,估计一天向一种汽油投入一元广告费,可以使这种汽油日销售量增加10桶。问如何安排生产和广告计划

使利润最大化? 原油类别买入价(元/桶)买入量(桶/天)辛烷值(%)硫含量(%) A 45 <=5000 12 0.5 B 35 <=5000 6 2.0 C 25 <=5000 8 3.0 汽油类别卖出价(元/桶)需求量(桶/天)辛烷值(%)硫含量(%) 甲70 3000 >=10 <=1.0 乙60 2000 >=8 <=2.0 丙50 1000 >=6 <=1.0 (3)根据实验1表2中给出的美国人口数据,用非线性最小二乘法拟合阻滞增长模型中的参数,注意只拟合2个参数r,xm,与拟合3个参数r,xm,x0有何区别,并与实验1用线性最小二乘法拟合的结果进行比较。 (4)《中国统计年鉴》给出表8所示数据,试据此拟合生产函数中的参数,如何看待用最小二乘和非线性最小二乘拟合的结果。 表 8 年份总产值(万亿元) 资金(万亿元) 劳动力(亿人) 1980 0.4518 0.0911 4.2361 1981 0.4862 0.0961 4.3725 1982 0.5295 0.1230 4.5295 1983 0.5934 0.1430 4.6436 1984 0.7171 0.1860 4.8179 1985 0.8964 0.2543 4.9873 1986 1.0202 0.3121 5.1282 1987 1.1963 0.3792 5.2783

相关主题
文本预览
相关文档 最新文档