C语言源程序.doc
MATLAB语言程序设计
期末考试
学号: 20125101150 姓名: 韩丽萍
2、应用题(两小题任选1题)
(2)某工厂生产A和B两种产品,她们需要经过三种设备的加工,工时如表1所列。设备一、二、三每天可使用的时间分别不超过12、10和8小时。产品A和B的利润随市场的需求有所波动,如果预测未来某个时期内A和B的利润分别为4000元/吨和3000元/吨,问每天应安排产品A、B各多少吨,才能使工厂利润最大?
表1 生产产品工时表
产品设备一设备二设备三A/(小时/吨) 3 3 4
B/(小时/吨) 4 2 2
设备每天最多可工作时数/小时 12 10 8请写出具体解决方案,并编写该解决方案的具体MATLAB程序代码。
解:假设每天应安排生产产品A和B分别为x1和x2吨,依题意可建数学模型如下:
首先将目标函数转换成标准形式:min z = -4000x1-3000x2
编写M文件L0509.m如下:
f = [-4000;-3000];
A=[3 4; 3 3; 4 2];
b=[12;10;8];
lb = zeros(2,1);
[x,fval] = linprog(f,A,b,[],[],lb)
运行结果如下:
>>L0509
Optimization terminated successfully.
x =
0.8000
2.4000
fval =
-1.0400e+004
可见每天生产A产品和B产品分别为0.8吨和2.4吨可使工人获得最大利润,每天最大利润为104000元。
4、结合课本第三章所提供的18种绘图方法,请实现其中8种绘图,提供程序代码及所绘制的图形。
解:
【1】直方图
直方图绘制示例:
例1:x=[1 2 3 4 5 6 7];
Y=[5 2 1;8 9 12;9 6 3;7 4 2;8 7 6;3 7 10;4 7 9];
colormap(summer);
subplot(3,3,1);
bar(Y);
subplot(3,3,2);
bar(Y,‘stacked’);
subplot(3,3,3);
bar(Y,‘grouped’);
subplot(3,3,4);
barh(Y,‘stacked’);
subplot(3,3,6);
bar3(x,Y,‘stacked’);
subplot(3,3,7);
bar3(Y,‘grouped’);
subplot(3,3,8);
bar3h(Y);
subplot(3,3,9);
bar3h(Y,‘grouped’);
【2】饼图
饼图绘制示例:
例2:某年级学生成绩为:优秀21人,良好87人,中等75人,及格64人,不及格20人。试利用饼图予以表达和分析。
M文件如下:
X=[21 87 75 64 20];
subplot(2,2,1);
pie(X,[1 0 0 0 0]);
legend({‘优秀’,’良好’,’中等’,’及格’,’不及格’});
subplot(2,2,2);
pie(X,[0 0 0 0 1]);
subplot(2,2,3);
pie3(X,[1 0 0 0 0]);
subplot(2,2,4);
pie3(X,[0 0 0 0 1]);
【3】阶梯图
阶梯图示例:
例3:绘制区间[0,2π]内sin(x)的阶梯图,步长取0.25。
x=0:0.25:2*pi;
y=sin(x);
stairs(x,y,’-b’);
xlabel(‘sin(x)阶梯图’);
hold on;
plot(x,y,’-r’);
hold off;
【4】等高线图
等高线图示例:
例4:[X,Y,Z]=peaks;
subplot(2,2,1);
contour(X,Y,Z,10);
subplot(2,2,2);
contour3(X,Y,Z,10);
subplot(2,2,3);
contour3(X,Y,Z,[1 2 3 4 5 6]);
subplot(2,2,4);
c=contour(X,Y,Z,2);
clabel(c);
【5】误差图
误差图示例:
例5:假设误差函数为5/length(x),区间[0,1],试绘制函数sin(x)在区间[0,1]内的误差图。
x=[0:0.5:10];
y=10+x.^2;
e=5*[0:1/(length(x)-1):1];
errorbar(y,e);
【6】拓扑图
拓扑图示例:
例6:k=1:50;
[b,xy]=