北京电子科技学院数学建模实验报告.docx
《北京电子科技学院数学建模实验报告.docx》由会员分享,可在线阅读,更多相关《北京电子科技学院数学建模实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
北京电子科技学院数学建模实验报告
北京电子科技学院(BESTI)
实验报告
课程:
数学建模与数学实验
班级:
姓名:
成绩:
指导教师:
实验日期及时间:
必修/选修:
选修
实验一
习题
1.冒泡法排序n个数
functiony=qp(x)
[m,n]=size(x);
fori=1:
n
forj=1:
n-i
if(x(j)>x(j+1))
a=x(j);
x(j)=x(j+1);
x(j+1)=a;
end
end
end
y=x;
运行结果:
2.求落地后球反弹高度
function[s,h]=sh(n)
z=100;
s=z;
fori=1:
n-1
z=z/2;
s=s+2*z;
end
h=z/2
运行结果
3.函数
functiony=f(x,y)
y=x^2+sin(x*y)+2*y;
运行结果:
4.绘图
fplot('cos(tan(pi*x))',[0,1],1e-4)
x=0:
1e-4:
1
plot(x,cos(tan(pi*x)))
运行结果:
5.绘图
ezplot('exp(x*y)-sin(x+y)',[-3,3,-3,3])
运行结果:
6.绘图
x=-3:
:
3;
y=-3:
:
3;
[X,Y]=meshgrid(x,y);
Z=2*X^2+Y^2;
surf(X,Y,Z)
运行结果:
7.绘图
clear
a=100;thita=0:
:
2*pi;
rho=a*thita;
polar(thita,rho)
运行结果:
8.绘图
clear
a=2;thita=0:
:
2*pi;
rho=a*sin(3*thita);
polar(thita,rho)
运行结果:
实验二
1.某鸡场有1000只鸡,用动物饲料和谷物混合喂养,每天每只鸡平均食混合饲料0.5kg,其中动物饲料所占比例不能少于20%,动物饲料每千克元,谷物饲料每千克元,饲料公司每周仅保证供应谷物饲料6000kg,问饲料怎样混合,才能使成本最低?
解:
设每天每只鸡食动物饲料为x1个单位,谷物饲料为x2个单位(500克/单位),则
minf=1000+
实验代码:
MODEL:
min=150*x1+90*x2;
x1+x2=1;
x1>=;
7000*x1<=12000;
x1>=0;
x2>=0;
end
运行结果:
2.某工厂用A1,A2两台机床加工B1,B2,B3三种不同零件。
已知在一个生产周期内A1只能工作8机时;A2只能工作100机时。
一个生产周期内计划加工B1为70件,B2为50件,B3为20件,两台机床加工每个零件的成本,分别如下所示:
加工时间:
A1:
1(B1),2(B2),3(B3)
A2:
1(B1),1(B2),3(B3)
加工成本:
A1:
2(B1),3(B2),5(B3)
A2:
3(B1),3(B2),6(B3)
问怎样安排两台机床一个周期的加工任务,才能使加工成本最低?
实验代码:
model:
min=2*X11+3*X12+5*X13+3*X21+3*X22+6*X23;
1*X11+2*X12+3*X13<=80;
1*X21+1*X22+3*X23<=100;
X11+X21>=70;
2*X12+X22>=50;
2*X13+3*X23>=20;
@gin(x23);
End
3.
model:
max=12*x11+12*x21+5*x12+5*x22+4*x13+4*x23;
4*x11+3*x12+x13<=180;
2*x21+6*x22+3*x23<=200;
@gin(x23);
end
运行结果:
4.某医院负责人每日至少需要下列数量的护士,每班的护士在值班开始时向病房报到,连续工作8个小时。
医院领导为满足每班所需要的护士数,最少需雇用多少护士?
解:
实验代码:
MODEL:
Min=x1+x2+x3+x4+x5+x6;
x1>60;
x1+x2>=70;
x2+x3>=60;
x3+x4>=50;
x4+x5>=20;
x5+x6>=30;
end
运行结果:
5.某工厂生产A1,A2两种型号的产品都必须经过零件装配和检验两道工序,如果每天可用于零件装配的工时只有100h,可用于检验的工时只有120h,各型号产品每件需要占用各工序时数和可获得的利润如下所示:
产品可用工时
工序A1A2
装配23100
检验42120
利润64
写出此问题的数学模型,并求出最优化生产方案。
实验代码:
MODEL:
Min=x1+x2+x3+x4+x5+x6;
x1>60;
x1+x2>=70;
x2+x3>=60;
x3+x4>=50;
x4+x5>=20;
x5+x6>=30;
end
6.
model:
max=6*x1+4*x2+5*x3;
2*x1+3*x2+4*x3<=100;
4*x1+2*x2+2*x3<=120;
@gin(x1);
@gin(x2);
@gin(x3);
end
运行结果:
7.某工厂制造三种产品,生产这三种产品需要三种资源:
技术服务、劳动力和行政管理,下面列出了三种单位产品对每种资源的需要量:
技术服务劳动力行政管理利润
I110210
II1426
III1564
现有100h的技术服务,600h的劳动力和300h的行政管理时间可以使用,求最优产品品种规划
实验代码:
model:
min=10*x11+5*x12+6*x13+4*x21+8*x22+15*x23;
x11+x12+x13>=60;
x21+x22+x23>=100;
x11+x21>=45;
x12+x22>=75;
x13+x23>=40;
4*x1+2*x2+2*x3<=120;
@gin(x11);
@gin(x12);
@gin(x13);
@gin(x21);
@gin(x22);
@gin(x23);
end
运行结果:
实验三
1.某公司在六个城市C1,C2,C3,C4,C5,C6中都有分公司,从Ci到Cj的直达航班票价由下述矩阵的第i行、第j列元素给出(∞表示无直达航班),该公司想算出一张任意两个城市之间的最廉价路线表,试作出这样的表来。
代码:
function[D,R]=floyd(a)
n=size(a,1);
D=a
fori=1:
n
forj=1:
n
R(i,j)=j;
end
end
R
fork=1:
n
fori=1:
n
forj=1:
n
ifD(i,k)+D(k,j)D(i,j)=D(i,k)+D(k,j);
3
6
4
5
3
R(i,j)=R(i,k);
end
end
end
k
D
R
End
运行结果:
2.在一个城市交通系统中取出一段如图所示,其入口为顶点V1,出口为V8,每条弧段旁的数组表示通过该路段所需时间,每次转弯需要附加时间为3,球V1到V8的最短时间路径。
答:
到
的最短时间路径为15路径为1—2—4—7—8。
实验代码:
functiony=bijiaodaxiao(f1,f2,f3,f4)
v12=1;v23=3;v24=2;v35=1;v47=2;v57=2;v56=6;v68=3;v78=4;turn=3;a1=123568;a2=123578;a3=12478;a4=124568;
f1=v12+v23+v35+v56+turn+v68;
f2=v12+v23+v35+turn+v57+turn+v78;
f3=v12+turn+v24+turn+v47+v78;
f4=v12+turn+v24+v47+turn+v57+turn+v56+turn+v68;
min=f1;
a=a1;
iff2min=f2;
a=a2;
end
iff3min=f3;
a=a3;
end
iff4min=f4;
a=a4
end
min
a
运行结果:
实验四
1.考察温度x对产量y的影响,测得下列10组数据:
温度(C°)
20
25
30
35
40
45
50
55
60
65
产量(kg)
求y关于x的线性回归方程,检验回归效果是否显着,并预测x=42摄氏度时的产量的估计值以及预测区间(置信度为96%)
实验代码:
x=[20253035404550556065]';
X=[ones(10,1)x];
Y=[]';
[b,bint,r,rint,stats]=regress(Y,X);
b,bint,stats
实验结果:
bint=
stats=
>>
>>polytool(x',Y',1)
2.某零件上有一段曲线,为了在程序控制机床上加工这一零件,需要求这段曲线的解析表达式,在曲线横坐标Xi处测得纵坐标Yi共11对数据如下:
Xi
0
2
4
6
8
10
12
14
16
18
20
Yi
求这段曲线的纵坐标y关于x的二次多项式回归方程
实验代码:
x=[02468101214161820]';
y=[]';
[p,S]=polyfit(x,y,2)
实验结果:
p=
S=
R:
[3x3double]
df:
8
normr:
y关于横坐标x的二次多项式回归方程:
y=*x++
3.混凝土的抗压强度随养护时间的演唱而增加,现将一批混凝土做成12个试块,记录了养护日期x(日)以及抗压强度y(kg/cm^2)的数据:
X
2
3
4
5
7
9
12
14
17
21
28
56
Y
35
42
47
53
59
65
68
73
76
82
86
99
试求y'=a+blnx型回归方程
答:
先建立非线性函数文件:
实验代码:
functionyhat=volum(beta,x)
yhat=beta
(1)+beta
(2)*log(x);
实验输入:
x=[234579121417212856]';
y=[354247535965687376828699]';
beta0=[11]'
[beta,r,J]=nlinfit(x',y','volum',beta0);
beta
实验结果:
beta=
即养护日期x(日)及抗压强度y(kg/cm
)的回归方程为:
y=+(x)
实验五
1.下表给出了某一海域以码为单位的直角坐标0xy上一点(x,y)(水面一点)以英尺为单位的水深z,水深数据是在低潮时测得的,船的吃水深度为5英尺。
问在矩形区域(75,200)*(-50,150)里哪些地方船只要避免进入?
X
129
140
88
195
77
81
162
162
Y
23
147
-81
3
84
Z
4
8
6
8
6
8
8
9
9
8
8
9
4
9
实验代码:
x=[129140881957781162162];
y=[23147-81384];
z=[-4-8-6-8-6-8-8-9-9-8-8-9-4-9];
X=75:
:
200;
Y=-70:
:
150;
Z=griddata(x,y,z,X,Y','cubic');
meshz(X,Y,Z)
xlabel('X'),ylabel('Y'),zlabel('Z')
figure
(2),contour(cx,cy,cz,[-5-5]);
grid
holdon
plot(x,y,'+')
xlabel('X'),ylabel('Y')
运行结果:
2.用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为V(t)=V-(V-V0)e^(-t/r),
其中V0是电容器的初始电压,r是充电常数,试由下面一组t,v数据确定V0和r:
t(s)
1
2
3
4
5
7
9
V(伏)
实验代码:
functionf=curvefun1(x,tdata)
v=10;
f=v-(v-x
(1))*exp(-tdata/x
(2));%x
(1)=v(0),x
(2)=t.
输入
clear
tdata=[1234579];
vdata=[];
x0=[,];
x=lsqcurvefit('curvefun1',x0,tdata,vdata)
f=curvefun1(x,tdata)
运行结果:
x=
f=
3.弹簧在力F的作用下伸长x,一定范围内服从胡克定律:
F与x成正比,即F=kx。
现在得到下面一组F,x数据,并在(x,F)坐标下作图,可以看到当F大到一定数据值后,就不服从这个定律了。
试由数据确定k,给出不服从胡克定律时的近似公式。
x
1
2
4
7
9
12
13
15
17
F
解:
实验代码
x=[012479];
f=[0];
A=polyfit(x,f,1)
z=polyval(A,x);
plot(x,f,'k+',x,z,'r')
实验结果:
实验总结
早在第一节课上,老师对数学建模的解释就让我对着门课产生了浓厚的兴趣:
因为这是一门把数学和实际生活紧密结合在一起的实用性学科。
确切的说,数学建模就是构造数学模型的过程,即运用数学的语言——公式、符号、图标等刻画和描述一个实际问题,然后经过数学的处理——计算、迭代等得到定量的结果,供人们分析,运用到实际生活来。
在五次数学建模实验中,我们熟悉了MATLAB的使用方法以及在编写格式上的注意事项,对于MATLAB的语法也有所掌握;学会运用相关语句求解各种线性规划问题,对生产实际中的问题,进行预测;也能运用一些新的算法求一些最短路径的问题;我还了解了MATLAB编程中线性回归语句的调用格式,对数据样本进行回归分析;学会解决插值与拟合的问题。
经过了五次实验,我了解到了数学建模的以下四个特点:
1.涉及广泛的应用领域;
2.需要灵活运用各种数学知识;
3.需要各种技术手段的配合;
4.建立的数学模型与建模的目的有关,对于同一个实际对象,
建模目的不同会导致建模的侧重点和出发点也不同。
.
虽然课程已经结束,但对于数学建模这门课我们可以学习的还有很多。
我会在以后的学习中,更多的了解数学建模的知识,将实践与分析的能力运用于实际生活中来。