数学软件MATLAB实验报告-实验七

来源:工作范文网 时间:2020-09-21 12:45:33

PAGE / NUMPAGES

实验七:最优化方法的MATLAB实现

实验目的与要求:

能利用MATLAB的最优化工具箱实现了解决不同类型最优化问题。

实验内容:

对边长为3m的正方形铁板,在4角处剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?(要求建立模型,利用MATLAB软件求解)

设剪去的正方形边长为x,则水槽的容积为:

f(x)=(3-2x)2x,(0<x<1.5)

程序代码:

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吨和6吨,而市场需要这两种产品的总量每月不少于7吨。试问工厂如何安排生产计划,在满足市场需求的前提下,使设备投资和公害损失最小。该厂决策认为,这两个目标中环境污染应优先考虑,设备投资的目标值为29万元,公害损失的目标为12万元。

首先创建目标函数(文件名为example7_7a.m)。

function f=example7_7a(x)

f(1)=2*x(1)+5*x(2);f(2)=4*x(1)+x(2);

运用fgoalattain函数:

clear;clc;goal=[20;12];weight=[8;2];x0=[2;5];A=[-1 -1];b=-7;lb=[0;0];ub=[5;6];

[x,fval,attainfactor,exitflag]=fgoalattain(@example7_7a,x0,goal,weight,A,b,[],[],lb,ub)

运行结果:

x =

2.3333

4.6667

fval =

28.0000 14.0000

attainfactor=

1.0000

exitflag =

1

故可生产A产品2.33吨,B产品4.67吨。这时,设备投资费为28万元,公害损失费14万元。计算收敛。