matlab在优化设计中的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab在优化设计中的应用

摘要

常见的优化问题包括线性规划、无约束优化、约束优化、最下二乘优化、多目标规划等。本文研究了matlab在这些常见优化问题中的应用及求解。

在进行研究本课题之前,我们先通过网络、电子书刊等各种有效渠道获取我们所需信息,在充分了解与熟练掌握了各种优化问题的具体特点及性质后,我们给出了关于如何用matlab进行多类优化问题的求解基本方法,在此前提下,为了体现该软件在这些优化领域的实际应用效果,我们结合若干个优化问题的实例进行分析、建模、以及运用matlab编程求解,在求解过程中,通过得到的精确数据和反应结果的图例,我们了解到matlab工具箱的功能强大,是处理优化问题的非常方便的编程工具。

关键词:matlab 优化问题

二、基本概念

2.1.1 线性规划

线性规划是优化的一个重要分支。它在理论和算法上都比较成熟,在实际中有广泛的应用。例如数学表达形式:

⎪⎪⎪⎩

⎪⎪⎪⎨⎧=≥=+++=+++=++++++n i x b x a x a x a b x a x a x a b x a x a x a t s x c x c x c i m n mn m m n n n n n

n ,,2,1,0..min 221

122222121112121112211 在MTLAB 提供的优化工具箱中,解决规划的命令是linprog ,它的调用格式如下,

),,(b A c linprog x =

求解下列形式的线性规划:

⎩⎨⎧≤b

Ax t s x c T ..min ),,,,(beq Aeq b A c linprog x =

求解下面形式的线性规划:

⎪⎩

⎪⎨⎧⎩⎨⎧=•≤beq x Aeq b Ax t s x c T ..min

若没有不等式约束b Ax ≤,则只需命令 [][],==b A 。

),,,,,,(ub lb beq Aeq b A c linprog x =

求解下面形式的线性规划:

⎪⎪⎩⎪⎪⎨⎧⎪⎩

⎪⎨⎧≤≤=•≤ub x lb beq x Aeq b Ax t s x c T .

.min 若没有不等式约束b Ax ≤,则只需令[][],==b A ;若只有下界约束,则可以不用输入ub 。

2.1.2 无约束优化算法

对于无约束优化问题,已经有许多有效的算法。这些算法基本都是迭代法,它们都遵循下面的步骤:

① 选取初始点x 0 ,一般来说初始点越靠近最优解越好;

② 如果当前迭代点x k 不是原问题的最优解,那么就需要找一个搜索方向p k ,使得目标函数f (x )

从x k 出发,沿方向p k 有所下降;

③ 用适当的方法选择步长a k (≥0),得到下一个迭代点x k+1=x k +a k p k

④ 检验新的迭代点xk+1是否为原问题的最优解,或者是否与最优解的近似误差满足预先给定的容

忍度。 2.1.3单变量约束优化问题

单变量约束优化问题的标准形式为

⎨⎧<

2.1.4 最小二乘法优化

最小二乘优化时一类非常特殊的优化问题,它在实际中,尤其是在处理一些曲线拟合问题、线性方程组无解时的近似解等问题,用的非常多。

最小二乘优化问题的目标函数一般为若干个函数的平方和,即:

()∑=∈≅m i n R x x f x F 12

1)(min

2.1.5多目标规划问题

在大多数的优化、中,都将多目标规划的一般形式表述为:

()()()[]

T p x f x f x f x F 21)(min = ()()⎩⎨⎧===≥n i x h m i x g t s i

i ,,2,1,0,,2,1,0.. 其中,()x f i 、()x g i 、()x h i 既可以为线性函数,也可以为非线性函数。

三、基本方法

对于解决那些常见优化问题,基本思路将在解题的过程中得到体现。我们给出

具体一些建模实例来体现基本算法:

3.1就下列命令求下面分段函数的极小值点。

()⎪⎩

⎪⎨⎧-<++≤≤-+->+-=1,3411,11,56222x x x x x x x x x f

解:首先编写目标函数的M 文件如下:

end

x x y else

x y x x elseif x x y x if x example y function ;

342;

121

&1;

5621

)

(78++=+-=<=->=+-=>=*∧∧*∧

然后为了分析直观,利用MTLAB 画出目标函数的图像,步骤如下:

>> x=-5:0.01:5;

>> n=length(x)

n =

1001

>> for i=1:1001

y(i)=example8_7(x(i));

end

3.2 对于下面的线性规划问题:

min –x1-3x2

s.t. ⎪⎩

⎪⎨⎧≥≤=-≤+02,18221621x x x x x x

先利用图解法求其最优解,然后利用优化工具箱中的linprog 命令求解。

解 〈图解法〉

先利用MATLAB 画出该线性规划的可行集及目标函数等值线:

>>clear

>>syms x1 x2