matlab在优化设计中的应用.pptx
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab 在优化设计中的应用
摘要 常见的优化问题包括线性规划、无约束优化、约束优化、最下二乘优化、多目标规 划等。本文研究了 matlab 在这些常见优化问题中的应用及求解。 在进行研究本课题之前,我们先通过网络、电子书刊等各种有效渠道获取我们所需 信息,在充分了解与熟练掌握了各种优化问题的具体特点及性质后,我们给出了关于如 何用 matlab 进行多类优化问题的求解基本方法,在此前提下,为了体现该软件在这些 优化领域的实际应用效果,我们结合若干个优化问题的实例进行分析、建模、以及运用 matlab 编程求解,在求解过程中,通过得到的精确数据和反应结果的图例,我们了解到 matlab 工具箱的功能强大,是处理优化问题的非常方便的编程工具。
4
从上图中可以看出可行集的顶点 x(4/3,14/3)即为线性规划的最优解,它也是两个线性约束的交点。
3.3 求解下面的最小二乘优化问题:
其中
程序输入及结果
>> clear A=[1 2 1;-2 1 3]; b=[1 1]'; C=[0 -1 2;1 0 -1;-3 2 0]; d=[1 0 1]'; lb=[-5 -5 -2]'; ub=[5 5 2]';
1
min cT x
sห้องสมุดไป่ตู้t.
Ax b Aeq • x beq
若没有不等式约束 Ax b ,则只需命令
A [],b []。
x linprog(c, A,b, Aeq,beq,lb,ub)
求解下面形式的线性规划:
min cT x
Ax b
s.t. Aeq • x beq
lb x ub
3.1 就下列命令求下面分段函数的极小值点。
x2 6x 5, x 1
f x x2 1, 1 x 1
x2
4x 3,
x 1
解:首先编写目标函数的M 文件如下:
function y example8 7(x)
if x 1
y x 2 6 x 5; elseif x 1& x 1
min 1 Cx d 2
2
2
x1 2x2 x3 1 s.t. 2x1 x 2 3x 3 1
5 x1, x2 5
2 x3 2
0 1 2
1
C 1 0 1 ,d 0
3 2 0
1
5
Aeq=[];beq=[]; [x,resnorm,residual,exitflag,output,lambda]=lsqlin(C,d,A,b,Aeq,beq,lb,ub) Warning:Large-scale method can handle bound constraints only; switching to medium-scale method. Warning: Large-scale method can handle bound constraints only;
从 xk 出发,沿方向pk 有所下降; ③ 用适当的方法选择步长 ak(≥0),得到下一个迭代点 xk+1=xk+akpk; ④ 检验新的迭代点 xk+1 是否为原问题的最优解,或者是否与最优解的近似误差满足预先给定的容
忍度。
3. 单变量约束优化问题
单变量约束优化问题的标准形式为 即为求目标函数在区间(a,b)上的极小点。
min –x1-3x2
1 x2x 6 s.t. x1 2x2 8
x1, x2 0
先利用图解法求其最优解,然后利用优化工具箱中的 linprog 命令求解。 解 〈图解法〉
先利用 MATLAB 画出该线性规划的可行集及目标函数等值线: >>clear >>syms x1 x2 >>f=-x1-3*x2; >>c1=x1+x2-6; >>c2=-x1+2*x2-8; >>ezcontourf(f) >>axis([0 6 0 6]) >>hold on >>ezplot(c1) >>ezplot(c2) >>legend('f 等值线','x1+x2-6=0','-x1+2*x2-8=0') >>title('利用图解法求线性规划问题') >>gtext('x') 运行结果如下图:
min f (x) s.t. a x b
2.1.4 最小二乘法优化
最小二乘优化时一类非常特殊的优化问题,它在实际中,尤其是在处理一些曲线拟合问题、线 性方程组无解时的近似解等问题,用的非常多。
最小二乘优化问题的目标函数一般为若干个函数的平方和,即:
m
min F(x) f12x
i1
x Rn
2.1.5 多目标规划问题
若没有不等式约束 Ax b ,则只需令 A [],b [] ;若只有下界约束,则可以不用输入ub 。
2. 无约束优化算法
对于无约束优化问题,已经有许多有效的算法。这些算法基本都是迭代法,它们都遵循下面的 步骤:
① 选取初始点x0 ,一般来说初始点越靠近最优解越好; ② 如果当前迭代点 xk 不是原问题的最优解,那么就需要找一个搜索方向 pk,使得目标函数 f(x)
2
在大多数的优化、中,都将多目标规划的一般形式表述为:
min F(x) f x f2 x f p x T 1
g s.t.
i
hi
x x
0, 0,
i 1,2,, m i 1,2,, n
其中, fi x、 gi x 、 hi x既可以为线性函数,也可以为非线性函数。
三、基本方法
对于解决那些常见优化问题,基本思路将在解题的过程中得到体现。我们给出 具体一些建模实例来体现基本算法:
am1
x 1
a m2
x
2
a x b
mn n
m
xi 0, i 1,2,, n
在 MTLAB 提供的优化工具箱中,解决规划的命令是linprog ,它的调用格式如下,
求解下列形式的线性规划: 求解下面形式的线性规划:
x linprog(c, A,b)
min cT x s.t. Ax b x linprog(c, A,b, Aeq,beq)
关键词:matlab 优化问题
二、基本概念
2.1.1 线性规划
线性规划是优化的一个重要分支。它在理论和算法上都比较成熟,在实际中有广泛的应用。例 如数学表达形式:
min
c1x1 c2 x2 cn xn
a11x1 a12 x2 a1n xn b1
a21
x 1
a
x
22
2
a
x b
2n n
2
s.t.
y x 2 1; else
y x 2 4 x 3; end
然后为了分析直观,利用MTLAB 画出目标函数的图像,步骤如下: >> x=-5:0.01:5; >> n=length(x)
n=
1001
3
>> for i=1:1001 y(i)=example8_7(x(i)); end
3.2 对于下面的线性规划问题:
摘要 常见的优化问题包括线性规划、无约束优化、约束优化、最下二乘优化、多目标规 划等。本文研究了 matlab 在这些常见优化问题中的应用及求解。 在进行研究本课题之前,我们先通过网络、电子书刊等各种有效渠道获取我们所需 信息,在充分了解与熟练掌握了各种优化问题的具体特点及性质后,我们给出了关于如 何用 matlab 进行多类优化问题的求解基本方法,在此前提下,为了体现该软件在这些 优化领域的实际应用效果,我们结合若干个优化问题的实例进行分析、建模、以及运用 matlab 编程求解,在求解过程中,通过得到的精确数据和反应结果的图例,我们了解到 matlab 工具箱的功能强大,是处理优化问题的非常方便的编程工具。
4
从上图中可以看出可行集的顶点 x(4/3,14/3)即为线性规划的最优解,它也是两个线性约束的交点。
3.3 求解下面的最小二乘优化问题:
其中
程序输入及结果
>> clear A=[1 2 1;-2 1 3]; b=[1 1]'; C=[0 -1 2;1 0 -1;-3 2 0]; d=[1 0 1]'; lb=[-5 -5 -2]'; ub=[5 5 2]';
1
min cT x
sห้องสมุดไป่ตู้t.
Ax b Aeq • x beq
若没有不等式约束 Ax b ,则只需命令
A [],b []。
x linprog(c, A,b, Aeq,beq,lb,ub)
求解下面形式的线性规划:
min cT x
Ax b
s.t. Aeq • x beq
lb x ub
3.1 就下列命令求下面分段函数的极小值点。
x2 6x 5, x 1
f x x2 1, 1 x 1
x2
4x 3,
x 1
解:首先编写目标函数的M 文件如下:
function y example8 7(x)
if x 1
y x 2 6 x 5; elseif x 1& x 1
min 1 Cx d 2
2
2
x1 2x2 x3 1 s.t. 2x1 x 2 3x 3 1
5 x1, x2 5
2 x3 2
0 1 2
1
C 1 0 1 ,d 0
3 2 0
1
5
Aeq=[];beq=[]; [x,resnorm,residual,exitflag,output,lambda]=lsqlin(C,d,A,b,Aeq,beq,lb,ub) Warning:Large-scale method can handle bound constraints only; switching to medium-scale method. Warning: Large-scale method can handle bound constraints only;
从 xk 出发,沿方向pk 有所下降; ③ 用适当的方法选择步长 ak(≥0),得到下一个迭代点 xk+1=xk+akpk; ④ 检验新的迭代点 xk+1 是否为原问题的最优解,或者是否与最优解的近似误差满足预先给定的容
忍度。
3. 单变量约束优化问题
单变量约束优化问题的标准形式为 即为求目标函数在区间(a,b)上的极小点。
min –x1-3x2
1 x2x 6 s.t. x1 2x2 8
x1, x2 0
先利用图解法求其最优解,然后利用优化工具箱中的 linprog 命令求解。 解 〈图解法〉
先利用 MATLAB 画出该线性规划的可行集及目标函数等值线: >>clear >>syms x1 x2 >>f=-x1-3*x2; >>c1=x1+x2-6; >>c2=-x1+2*x2-8; >>ezcontourf(f) >>axis([0 6 0 6]) >>hold on >>ezplot(c1) >>ezplot(c2) >>legend('f 等值线','x1+x2-6=0','-x1+2*x2-8=0') >>title('利用图解法求线性规划问题') >>gtext('x') 运行结果如下图:
min f (x) s.t. a x b
2.1.4 最小二乘法优化
最小二乘优化时一类非常特殊的优化问题,它在实际中,尤其是在处理一些曲线拟合问题、线 性方程组无解时的近似解等问题,用的非常多。
最小二乘优化问题的目标函数一般为若干个函数的平方和,即:
m
min F(x) f12x
i1
x Rn
2.1.5 多目标规划问题
若没有不等式约束 Ax b ,则只需令 A [],b [] ;若只有下界约束,则可以不用输入ub 。
2. 无约束优化算法
对于无约束优化问题,已经有许多有效的算法。这些算法基本都是迭代法,它们都遵循下面的 步骤:
① 选取初始点x0 ,一般来说初始点越靠近最优解越好; ② 如果当前迭代点 xk 不是原问题的最优解,那么就需要找一个搜索方向 pk,使得目标函数 f(x)
2
在大多数的优化、中,都将多目标规划的一般形式表述为:
min F(x) f x f2 x f p x T 1
g s.t.
i
hi
x x
0, 0,
i 1,2,, m i 1,2,, n
其中, fi x、 gi x 、 hi x既可以为线性函数,也可以为非线性函数。
三、基本方法
对于解决那些常见优化问题,基本思路将在解题的过程中得到体现。我们给出 具体一些建模实例来体现基本算法:
am1
x 1
a m2
x
2
a x b
mn n
m
xi 0, i 1,2,, n
在 MTLAB 提供的优化工具箱中,解决规划的命令是linprog ,它的调用格式如下,
求解下列形式的线性规划: 求解下面形式的线性规划:
x linprog(c, A,b)
min cT x s.t. Ax b x linprog(c, A,b, Aeq,beq)
关键词:matlab 优化问题
二、基本概念
2.1.1 线性规划
线性规划是优化的一个重要分支。它在理论和算法上都比较成熟,在实际中有广泛的应用。例 如数学表达形式:
min
c1x1 c2 x2 cn xn
a11x1 a12 x2 a1n xn b1
a21
x 1
a
x
22
2
a
x b
2n n
2
s.t.
y x 2 1; else
y x 2 4 x 3; end
然后为了分析直观,利用MTLAB 画出目标函数的图像,步骤如下: >> x=-5:0.01:5; >> n=length(x)
n=
1001
3
>> for i=1:1001 y(i)=example8_7(x(i)); end
3.2 对于下面的线性规划问题: