实验4:最优化模型实验
4.1 基础训练
- 求函数极值
求一元函数 f ( x ) = e x s i n x f(x)=e^xsinx f(x)=exsinx在区间[0,9]内的最大值点、最大值,并绘制出函数图形,编写function程序文件返回2个参数,依次返回最大值点、最大值.
提示:调用函数fminbnd计算;先绘制函数曲线,通过观察确定最大值点所在区间.
参考函数如下:
function [x0,y0]=fun
代码:
function [x0,y0] = fun
%定义并画出原函数
fun1 = inline('exp(x)*x*sin(x)');
ezplot(fun1,[0,9]),hold on
%根据图像判断最大值在8到9之间
fun2 = inline('exp(x)*(-x)*sin(x)');
[x0,y0] = fminbnd(fun2,8,9);
%计算真实最大值
y0 = -y0;
plot(x0,y0,'r*')
end
运行结果:
- 求解下列线性规划模型
m a x f ( x 1 , x 2 , x 3 ) = 2.5 x 1 + 5 x 2 + 10 x 3 max f(x_1,x_2,x_3)=2.5x_1+5x_2+10x_3 maxf(x1,x2,x3)=2.5x1+5x2+10x3
s . t . { x 1 + x 2 + x 3 = 100 2.5 x 1 + 5 x 2 + 10 x 3 ≥ 50 x 3 ≤ 2 ( x 1 + x 2 ) 10 ≤ x 1 ≤ 30 0 ≤ x 2 ≤ 90 20 ≤ x 3 ≤ 80 s.t. \begin{cases}x_1+x_2+x_3=100\\2.5x_1+5x_2+10x_3\ge 50\\x_3\le2(x_1+x_2)\\10\le x_1\le 30\\0\le x_2\le 90\\20\le x_3\le 80 \end{cases} s.t.⎩ ⎨ ⎧x1+x2+x3=1002.5x1+5x2+10x3≥50x3≤2(x1+x2)10≤x1≤300≤x2≤9020≤x3≤80
提示:先把本模型化为MATLAB求解的线性规划模型的一般形式.如目标函数改为极小化,还有约束条件的转换.
解:
化为一般形式如下:
m i n g ( x 1 , x 2 , x 3 ) = − 2.5 x 1 − 5 x 2 − 10 x 3 min\quad g(x_1,x_2,x_3)=-2.5x_1-5x_2-10x_3 ming(x1