数学建模实验答案初等模型.docx
《数学建模实验答案初等模型.docx》由会员分享,可在线阅读,更多相关《数学建模实验答案初等模型.docx(25页珍藏版)》请在冰豆网上搜索。
数学建模实验答案初等模型
实验02初等模型(4学时)
(第2章初等模型)
1.(编程)光盘的数据容量p23~27
表13种光盘的基本数据
激光器
激光波长/μm
光斑直径/μm
信道间距/mm
(d)
数据线密度/
(B·mm-1)
(ρ)
红外(CD)
0.78
2
1.6×10-3
121
红色(DVD)
0.64
0.92
0.74×10-3
387
蓝色(DVD)
0.41
0.4
0.32×10-3
800
CAV光盘:
恒定角速度的光盘。
CLV光盘:
恒定线速度的光盘。
R2=58mm,R1=22.5mm,d,ρ见表1。
CLV光盘的信息总长度(mm)LCLV
CLV光盘的信息容量(MB)CCLV=ρLCLV/(10^6)
CLV光盘的影像时间(min)TCLV=CCLV/(0.62×60)
CAV光盘的信息总长度(mm)LCAV
CAV光盘的信息容量(MB)CCAV=ρLCAV/(10^6)
CAV光盘的影像时间(min)TCAV=CCAV/(0.62×60)
1.1(验证、编程)模型求解
要求:
①(验证)分别计算出LCLV,CCLV和TCLV三个3行1列的列向量,仍后输出结果,并与P26的表2(教材)比较。
程序如下:
clear;clc;formatcompact;
R1=22.5;R2=58;
d=10^(-3)*[1.6,0.74,0.32]';
rho=[121,387,800]';
LCLV=pi*(R2^2-R1^2)./d;
CCLV=rho.*LCLV/10^6;%从B转换到MB
TCLV=CCLV/(0.62*60);%从秒转换到分
s='';S=[s;s;s];%s为两个空格,S为两列空格
[num2str(round(LCLV)),S,...%其中的量为列向量
num2str(round(CCLV)),S,...
num2str(round(TCLV))]
②(编程)对于LCAV,CCAV和TCAV,编写类似①的程序,并运行,结果与P26的表3(教材)比较。
★要求①的程序的运行结果:
★要求②的程序及其运行结果:
clear;clc;formatcompact;
R1=22.5;R2=58;
d=10^(-3)*[1.6,0.74,0.32]';
rho=[121,387,800]';
LCAV=pi*R2^2./(2*d);
CCAV=rho.*LCAV/10^6;
TCAV=CCAV/(0.62*60);
s='';S=[s;s;s];
[num2str(round(LCAV)),S,...
num2str(round(CCAV)),S,...
num2str(round(TCAV))]
1.2(编程)结果分析
信道长度LCLV的精确计算:
模型给出的是近似值:
相对误差为:
要求:
①取R2=58mm,R1=22.5mm,d,ρ见表1(题1)。
分别计算出LCLV,L和delta三个3行1列的列向量,仍后将它组合起来输出一个3行3列的结果。
②结果与P26的表2和P27(教材)的结果比较。
[提示]
定积分计算用quad、quadl或trapz函数,注意要分别取d的元素来计算。
要用数组d参与计算,可用quadv(用help查看其用法)。
★编写的程序和运行结果:
程序:
R1=22.5;R2=58;
d=[1.6e-3,0.74e-3,0.32e-3]';
LCLV=zeros(3,1);
LCLV
(1)=quad('2*pi/1.6e-3*sqrt(x.^2+(1.6e-3/(2*pi))^2)',R1,R2);
LCLV
(2)=quad('2*pi/0.74e-3*sqrt(x.^2+(0.74e-3/(2*pi))^2)',R1,R2);
LCLV(3)=quad('2*pi/0.32e-3*sqrt(x.^2+(0.32e-3/(2*pi))^2)',R1,R2);
L=pi*(R2^2-R1^2)./d;
delta=abs(LCLV-L)./abs(L);
s='';S=[s;s;s];
[num2str(round(LCLV)),S,...
num2str(round(L)),S,...
num2str(round(1000*delta)/100)]
运行结果:
2.(验证,编程)划艇比赛的成绩p29~31
模型:
t=αnβ
其中,t为比赛成绩(时间),n为桨手人数,α和β为参数。
为适合数据拟合,将模型改为:
logt=logα+βlogn
桨手人数n
比赛平均成绩t
1
7.21
2
6.88
4
6.32
8
5.84
(1)参数α和β估计
程序如下:
clear;clc;
n=[1248];%桨手人数
t=[7.216.886.325.84];%比赛平均成绩
logt=log(t);logn=log(n);
p=polyfit(logn,logt,1);%polyfit函数使用格式见提示
beta=p
(1)
alfa=exp(p
(2))
(2)实际值与计算值比较(数据比较和和拟合图形)
参考数据结果:
第1列为桨手人数,第2列为实际比赛平均成绩,第3列为计算比赛平均成绩。
参考图形结果:
要求:
①运行问题
(1)中的程序。
②编程解决问题
(2):
实际值与计算值比较(数据比较和和拟合图形)。
★(验证)用数据拟合求参数α和β。
给出α和β值和模型:
模型为:
★(编程)实际值与计算值比较(数据比较和和拟合图形),程序和运行结果:
程序:
n=[1248]';
t=[7.216.886.325.84]';
logt=log(t);logn=log(n);
p=polyfit(logn,logt,1);
beta=p
(1);
alfa=exp(p
(2));
t2=alfa*n.^beta;
[n,t,t2]
a=0:
0.01:
10;
t3=alfa*a.^beta;
plot(n,t,'x',a,t3);
数值结果:
图形结果:
3.(编程,验证)污水均流池的设计p34~37
表2(p35)社区一天以小时为单位间隔的生活污水流量(单位:
m3/h)
时间t(h)
0
1
2
3
4
5
6
7
流量f(m3·h-1)
150.12
115.56
84.96
66.60
68.04
71.64
82.08
132.84
时间t(h)
8
9
10
11
12
13
14
15
流量f(m3·h-1)
185.04
226.80
246.60
250.92
261.00
271.44
273.96
279.00
时间t(h)
16
17
18
19
20
21
22
23
流量f(m3·h-1)
291.60
302.04
310.68
290.52
281.16
248.40
210.24
186.84
3.1(编程)均流池的恒定流出量和最大容量模型(离散)
每小时污水流入均流池的流量为f(t),t=0,1,2,…,23。
一天的平均流量
均流池中污水的空量c(t),t=0,1,2,…,23。
c(t+1)=c(t)+f(t)-g,t=0,1,2,…,22(模型)
要求:
①求g,画f(t)和g的图形(与P35图1比较)。
②求c(t),t=0,1,2,…,23,c(0)=0,并求其中的最小值M(与P36表3比较)。
求c(t),t=0,1,2,…,23,c(0)=-M(与P36表4比较)。
画c(t)分别当c(0)和c(-M)时的图形(与P37图2比较)。
★要求①的程序和运行结果:
程序:
t=0:
23;
f=[150.12115.5684.9666.6068.0471.64,...
82.08132.84185.04226.80246.60250.92,...
261.00271.44273.96279.00291.60302.04,...
310.68290.52281.16248.40210.24186.84];
s=0;
fori=1:
24
s=s+f(i);
end
g=s/24
t2=0:
0.01:
23;
plot(t,f,t2,g,'r-');
text(10,213.67,'g=203.67');
gridon
命令窗口的结果:
图形窗口的结果:
★要求②的程序和运行结果:
程序:
t=0:
23;
f=[150.12115.5684.9666.6068.0471.64,...
82.08132.84185.04226.80246.60250.92,...
261.00271.44273.96279.00291.60302.04,...
310.68290.52281.16248.40210.24186.84];
s=0;
fori=1:
24
s=s+f(i);
end
g=s/24;
c1
(1)=0;
forj=1:
23
c1(j+1)=c1(j)+f(j)-g;
end
c1
M=min(c1)
c2
(1)=-M;
fork=1:
23
c2(k+1)=c2(k)+f(k)-g;
end
c2
plot(t,c1,t,c2);
text(7,160,'c(0)=876.15');
text(7,-760,'c(0)=0');
xlabel('t');
ylabel('c');
gridon
命令窗口的结果:
图形窗口的结果:
3.2(验证)均流池的恒定流出量和最大容量模型(连续)p56习题3
每小时污水流入均流池的流量为f(t),t=0,1,2,…,23。
用3次样条插值得到连续函数f(t),0≤t≤23。
(仍用f(t)表示)
一天的平均流量
均流池中污水的容量c(t),0≤t≤23。
c(t+Δt)-c(t)=(f(t)-g)Δt
(模型)
(1)求g,画f(t)和g的图形(与P35图1比较)。
程序:
functiony=f(t)
tt=0:
23;
ft=[150.12115.5684.9666.6068.0471.64,...
82.08132.84185.04226.80246.60250.92,...
261.00271.44273.96279.00291.60302.04,...
310.68290.52281.16248.40210.24186.84];
y=interp1(tt,ft,t,'spline');%3次样条插值
clear;clc;
g=1/(23-0)*quad('f',0,23)
t=0:
0.0001:
23;
plot(t,f(t),[0,25],[g,g]);
text(10+0.7,g+13,['g=',num2str(g)]);
xlabel('{\itt}');
ylabel('{\itf}');
gridon;
(2)求c(t),0≤t≤23,c(0)=0时的最小值M。
画c(t)初值条件分别为c(0)=0和c(0)=-M时的图形(与P37图2比较)。
程序:
functiony=c(t,c0,g)%c0,g将作为参数
y=quad('f',0,t)-t*g+c0;
clear;clc;
t=0:
0.1:
23;
g=1/(23-0)*quad('f',0,23);
ct0=zeros(size(t));
fori=1:
length(t)
ct0(i)=c(t(i),0,g);
end
[tt,m]=fminbnd(@(t)c(t,0,g),0,23)%求最小值,注意函数c的参数格式
ctm=zeros(size(t));
fori=1:
length(t)
ctm(i)=c(t(i),-m,g);
end
plot(t,ct0,t,ctm);
text(7,c(8,0,g)+100,['c(0)=',num2str(ct0
(1))]);
text(7,c(8,-m,g)+100,['c(0)=',num2str(ctm
(1))]);
xlabel('{\itt}');
ylabel('{\itf}');
gridon;
要求
①运行
(1)中的程序,结果与P35图1比较。
②运行
(2)中的程序,结果与P37图2比较。
③阅读并理解程序。
★要求①的运行结果:
命令窗口的结果:
图形窗口的结果:
★要求②的运行结果:
命令窗口的结果:
图形窗口的结果:
4.(编程)天气预报的评价p49~54
31天4种(A~D)预报方法的有雨预报(%)及实际观测结果
functionM=tab()
%日期ABCD有雨=1/无雨=0
M=[1903090601;
2403050801;
3603080701;
4603090701;
560300200;
6303010501;
7803010400;
8703020300;
9803040300;
10603060400;
11803020801;
12403030400;
13903090401;
14503060200;
15103020100;
16603050801;
17203010300;
180300500;
19903060400;
2070301000;
2120300300;
22403020300;
23403010100;
24803050400;
2530300200;
26303010300;
2730302000;
2803060401;
2960300200;
30203010100;
31803050100];
4.1(编程求解)计数模型p50~52
若预报有雨概率>50%,则认为明天有雨,<50%则认为无雨,且依照明天是否有雨的实际观测,规定预报是否正确,从而统计预报的正确率。
求出4种预报的结果计数矩阵:
预报的正确率:
对角线数字之和/全部数之和。
要求:
①编写程序求出4种预报的结果计数(天数),并分别计算出它们的预报正确率(取2位小数)。
②结果与p51中的结果比较。
★程序和运行结果:
程序:
functionM=tab()
M=[1903090601;
2403050801;
3603080701;
4603090701;
560300200;
6303010501;
7803010400;
8703020300;
9803040300;
10603060400;
11803020801;
12403030400;
13903090401;
14503060200;
15103020100;
16603050801;
17203010300;
180300500;
19903060400;
2070301000;
2120300300;
22403020300;
23403010100;
24803050400;
2530300200;
26303010300;
2730302000;
2803060401;
2960300200;
30203010100;
31803050100];
forj=2:
5
a=0;b=0;c=0;d=0;
fori=1:
31
ifM(i,j)>50&&M(i,6)==1
a=a+1;
end
ifM(i,j)>50&&M(i,6)==0
b=b+1;
end
ifM(i,j)<50&&M(i,6)==1
c=c+1;
end
ifM(i,j)<50&&M(i,6)==0
d=d+1;
end
end
x=[a,b;c,d]
p=vpa(((a+d)/(a+b+c+d)),2)
end
运行结果:
4.2(编程求解)记分模型p52~53
将预报有雨概率的大小与实测结果(有雨或无雨)比较,给予记分。
注意:
要将M中的预报概率值转换为小数。
模型1
记第k天某种预报有雨概率为pk,第k天实测有雨为vk=1,无雨为vk=0,令第k天的某种预报得分为
将sk对k求和得到某预报的分数S1(越大越好)。
模型2
sk=|pk-vk|
将sk对k求和得到某预报的分数S2(越小越好)。
模型3
sk=(pk-vk)2
将sk对k求和得到某预报的分数S3(越小越好)。
要求:
①编程求4种预报在模型1、2、3下的相应分数S1、S2、S3。
②运行结果与p52的结果比较。
★程序和运行结果:
functionM=tab()
M=[1903090601;
2403050801;
3603080701;
4603090701;
560300200;
6303010501;
7803010400;
8703020300;
9803040300;
10603060400;
11803020801;
12403030400;
13903090401;
14503060200;
15103020100;
16603050801;
17203010300;
180300500;
19903060400;
2070301000;
2120300300;
22403020300;
23403010100;
24803050400;
2530300200;
26303010300;
2730302000;
2803060401;
2960300200;
30203010100;
31803050100];
M(:
2:
5)=M(:
2:
5)/100;
fori=2:
5
S1=0;
S2=0;
S3=0;
forj=1:
31
s1=((-1)^M(j,6))*(0.5-M(j,i));
S1=S1+s1;
s2=abs(M(j,i)-M(j,6));
S2=S2+s2;
s3=(M(j,i)-M(j,6))^2;
S3=S3+s3;
end
i-1
S1
S2
S3
end
ans=
1
S1=
1
S2=
14.5
S3=
8.95
ans=
2
S1=
2.6
S2=
12.9
S3=
6.39
ans=
3
S1=
7
S2=
8.5
S3=
4.23
ans=
4
S1=
6.7
S2=
8.8
S3=
3.22
4.3(部分编程求解)图形模型——模型1p53
以预报有雨概率p(值为小数)为横轴,实测值v(值为0或1)为纵轴,奖表tab的数据在图上用符号*标出,其中*上面的数字是坐标在*的天数。
预报A的程序:
clear;clc;
M=tab();
M(:
2:
5)=M(:
2:
5)/100;%概率值都改为小数
K=logical(M(:
6));%将M(:
6)中非0值的位置赋逻辑值true,MATLAB建议用logical代替find
pp=M(K,2);%K中为true的对应位置的M元素保留,其中有重复概率值
pp=sort(pp);%按升序排序
[p,I,~]=unique(pp,'last');%去掉重复值,p(i)值在pp中最后出现的行下标为I(i)
c=I-[0;I(1:
end-1)];%求p(i)在pp中重复个数c(i)
plot([0,1],[1,1],':
',p,ones(size(p)),'b*');%画v=1的水平线和概率值p处的*
fori=1:
length(c)%标注重复数
T=text(p(i),1+0.05,num2str(c(i)));
set(T,'color','b');
end
%自己完成v=0时的程序,把该图与上面的图合在一起
xlabel('{\itp}');ylabel('{\itv}');
text(0.5,0.5,'预报A');
运行结果示例:
要求:
①自己完成上面未完整的程序并运行。
②修改预报A的程序,分别用于B、C、D,并运行。
③运行结果与p53中的结果比较。
★预报A的完整程序:
M=[1903090601;
2403050801;
3603080701;
4603090701;
560300200;
6303010501;
7803010400;
8703020300;
9803040300;
10603060400;
11803020801;
12403030400;
13903090401;
14503060200;
15103020100;
16603050801;
17203010300;
180300500;
19903060400;
20