运筹学报告

文章目录

第一次作业

题目一

1、 写出不等式约束描述图 1 的阴影部分。 (1 分)
2、 引入变量, 写出等式约束描述图 1 的阴影部分。 (0.5 分)
3、 目标函数为 f(x,y) = 7x + 10y, 用 matlab (或其他编程语言)写代码, 在图 1 阴
影区域内求点(x, y),使得 f(x, y)最大和最小。 (1.5 分)
7、 目标函数为 f(x,y) = (x + 22)2 + (y - 17)2, 用 matlab (或其他编程语言)写代码,在图 1 阴影区域内求点(x, y),使得 f(x, y)最大和最小。 (3.5 分)
9、 目标函数为 f(x,y) = x[1 + sin(2πt/15)] + y[1 + cos(2πt/15)], 其中 t 为时间,且 t≥ 0。每秒钟刷新一次,画出 5 分钟内 f(x,y)在图 1 阴影区域内最大值和最小值的
变化曲线。 (2.5 分)
在这里插入图片描述

1、 写出不等式约束描述图 1 的阴影部分。 (1 分)

x=[-17,3.67]; %两个点各自横坐标
y=[25.81, 45.22]; %两个点各自纵坐标
p=polyfit(x, y, 1); %使用内置函数,"1"代表1阶,得到一阶线性曲线的k和b
x1=[3.67, 27. 86]; %第二组
y1=[45.22, 38.41];
p1=polyfit(x1, y1, 1);
x2=[27.86, 38. 2];
y2=[38.41, 21.15];
p2=polyfit(x2, y2, 1);
x3=[38.2, 30. 59];
y3=[21.15, -6.77];
p3=polyfit(x3,y3, 1);
x4=[30.59, -10. 72];
y4=[-6. 77,-4. 84];
p4=polyfit(x4,y4, 1);
x5=[-10. 72, -19. 04];
y5=[-4.84, 7. 99];
p5=polyfit(x5,y5, 1);
x6=[-19.04, -17];
y6=[7.99, 25. 81]; .
p6=polyfit(x6, y6, 1);

输出结果

在这里插入图片描述

2、 引入变量, 写出等式约束描述图 1 的阴影部分。 (0.5 分)

X 1 − 0.94 X 2 + X 3 = 41.77 ; X1-0.94X2+X3=41.77; X10.94X2+X3=41.77;
X 1 + 0.28 X 2 + X 4 = 46.25 ; X1+0.28X2+X4=46.25 ; X1+0.28X2+X4=46.25;
X 1 + 1.67 X 2 + X 5 = 84.91 ; X1+1.67X2+X5=84.91 ; X1+1.67X2+X5=84.91;
− X 1 + 3.67 X 2 + X 6 = 119 ; -X1+3.67X2+X6=119 ; X1+3.67X2+X6=119;
− X 1 − 0.04 X 2 + X 7 = 5.34 -X1-0.04X2+X7=5.34 X10.04X2+X7=5.34 ;
− X 1 − 1.54 X 2 + X 8 = 21.37 -X1-1.54X2+X8=21.37 X11.54X2+X8=21.37 ;
X 1 − 8.73 X 2 + X 9 = 174.31 。 X1-8.73X2+X9=174.31。 X18.73X2+X9=174.31

3、 目标函数为 f(x,y) = 7x + 10y, 用 matlab (或其他编程语言)写代码, 在图 1 阴影区域内求点(x, y),使得 f(x, y)最大和最小。 (1.5 分)

关键: 利用内置函数 linprog(f, A, b)
(该内置函数需要事先安装Optimization Toolbox才能运行)

求最小值:

%目标函数的系数向量
f_min=[7, 10];  %对应最小值
f_max = [-7,-10]; %对应最大值,只需要将目标函数添加一个负号,程序不变,将所得结果取相反数就可以了
A=[-0.94 1;0.28 1;1.67 1;3.67 -1;-0.04 -1;-1.54 -1;-8.73 1]; %约束矩阵
b=[41.77;46.25;84.91;119;5.34;21.37;174.31]; %等式右边构成的向量
%内置函数,输出使目标函数取得最值的解
x_min=linprog(f, A, b);  
x_max=linprog(f, A, b);
%目标函数系数向量和解向量作矩阵乘法,得到极值
p_min=f*x_min;
p_max=f*x_max;

输出结果

在x=-10.6867,y=4.9125时,目标函数最小值为-123.932;
在x=27.8129, y=38.4624时,目标函数最大值为579.3144

7、 目标函数为 f(x,y) = (x + 22)2 + (y - 17)2, 用 matlab (或其他编程语言)写代码,在图 1 阴影区域内求点(x, y),使得 f(x, y)最大和最小。 (3.5 分)

关键:使用内置函数fmincon('fun3',x0,A,b,Aeq,beq,VLB,VUB)

首先构造目标函数

function [f]=fun3(x)
f=(x(1)+22)^2+(x(2)-17)^2;
end

主运行程序:

x0=[0 0]; %
A=[-0.94
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值