PAGE / NUMPAGES
实验七:最优化方法的MATLAB实现
实验目的与要求:
能利用MATLAB的最优化工具箱实现了解决不同类型最优化问题。
实验内容:
对边长为3m的正方形铁板,在4角处剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?(要求建立模型,利用MATLAB软件求解)
设剪去的正方形边长为x,则水槽的容积为:
f(x)=(3-2x)2x,(0
程序代码:
clear;clc;
[x,fval,exitflag]=fminbnd(@(x)-(3-2*x).^2*x,0,1.5)
所以,剪掉的正方形的边长为0.5m时水槽的容积最大,最大值为2m2。
某厂生产甲、乙两种产品,已知制成一吨产品甲需要资源A3吨,资源B4m3;制成一吨乙产品需要资源A2吨,资源B6m3,资源C7个单位。若一吨产品甲和乙的经济值分别为7万元和5万元,三种资源的限制量分别为90吨、200m3和210个单位。试决定应生产这两种产品各多少吨才能使创造的总经济价值最高?(要求建立模型,利用MATLAB软件求解。)
程序代码:
f=[-7 -5]';
A=[3 2;4 6];
b=[90;200];
lb=zeros(2,1);
ub=[50;30];
[x,fval,exitflag]=linprog(f,A,b,[],[],lb,ub)
1
所以,生产甲产品14吨,乙产品24吨收益最高。
最小化函数:
程序代码:
x0=[1,1];
[x,fval,exitflag]=fminunc('3*x(1)^2+2*x(1)*x(2)+x(2)^2',x0)
求解下面的最优化问题:
目标函数
约束条件
H=[1 -1;-1 2];
f=[-2;-6];
A=[1 1;-1 2;2 1];b=[2;2;3];
lb=zeros(2,1);
[x,fval,exitflag]=quadprog(H,f,A,b,[],[],lb)
在5个地点中选3处建生产同一产品的工厂,在这5个地点建厂所需投资,点用农田,建成以后的生产能力等数据如表所示
地点
1
2
3
4
5
所需投资(万元)
320
280
240
210
180
占用田亩(亩)
20
18
15
11
8
生产能力(万吨)
70
55
42
28
11
现在又总投资800万元,占用农田指标60亩,应如何选择厂址,使建成后总生产力最大。
程序代码:
f=[-70;-55;-42;-28;-11];
A=[320 280 240 210 180;20 18 15 11 8];b=[800;60];
Aeq=[1 1 1 1 1];beq=[3];
[x,fval,exitflag]=bintprog(f,A,b,Aeq,beq)
即选择在地点1、3、4建厂,总投资770万元,占用农田46亩,总生产能力可以达到140万吨。
定位问题
设某城市有某种物品的10个需求点,第i个需求点Pi的坐标为(ai,bi),道路网与坐标轴平行,彼此相交。现打算建一个该物品的供应中心,且由于受到城市某些条件的限制,该供应中心只能设在x界于[5,8],y界于[5,8]的范围内。问该中心应建在何处为好?
Pi的坐标为:
Ai:1 4 3 5 9 12 6 20 17 8
Bi:2 10 8 18 1 4 5 10 8 9
创建目标函数程序代码(文件名为example7_6a.m):
创建目标函数。
function f=example7_6a(x)
a=[1 4 3 5 9 12 6 20 17 8]';
b=[2 10 8 18 1 4 5 10 8 9]';
f=abs(x(1)-a)+abs(x(2)-b);
end
调用fminimax函数进行计算程序代码:
clear;clc;
x0=[7;7];
lb=[5;5];ub=[8;8];
[x,fval,maxfval]=fminimax(@example7_6a,x0,[],[],[],[],lb,ub)
x =
8
8
fval =
13
6
5
13
8
8
5
14
9
1
maxfval =
14.0000
所以该中心应建在(8,8)处为好,这时最小的最大距离为14。
某化工厂拟生产两种新产品A和B,其生产设备费用分别为:A,2万元/吨;B,5万元/吨。这两种产品均将造成环境污染,设由于公害所造成的损失可折算为:A,4万元/吨;B,1万元/吨。由于条件限制,工厂生产产品A和B的最大生产能力各为每月5吨