数学建模第四次作业Word文档下载推荐.docx
《数学建模第四次作业Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数学建模第四次作业Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
end
disp('
不同奖学存款余额变化'
)
年0.5万元0.6万元0.7万元'
disp([(0:
n)'
x])
plot(0:
n,x(:
1),'
k^'
0:
2),'
ko'
3),'
kv'
axis([-1,n+1,15,25])
legend('
d=0.5'
'
d=0.6'
d=0.7'
title('
不同奖学存款余额变化'
xlabel('
年份'
),ylabel('
余额/万元'
程序运行结果如下:
不同奖学存款余额变化
年0.5万元0.6万元0.7万元
020.000020.000020.0000
1.000020.100020.000019.9000
2.000020.203020.000019.7970
3.000020.309120.000019.6909
4.000020.418420.000019.5816
5.000020.530920.000019.4691
6.000020.646820.000019.3532
7.000020.766220.000019.2338
8.000020.889220.000019.1108
9.000021.015920.000018.9841
10.000021.146420.000018.8536
11.000021.280820.000018.7192
12.000021.419220.000018.5808
13.000021.561820.000018.4382
14.000021.708620.000018.2914
15.000021.859920.000018.1401
16.000022.015720.000017.9843
17.000022.176220.000017.8238
18.000022.341420.000017.6586
19.000022.511720.000017.4883
20.000022.687020.000017.3130
于是得到如下结论:
在
时
(1)奖学金金额低于0.6万元时,存款余额将持续增加;
(2)奖学金金额等于0.6万元时,存款余额保持不变。
(3)奖学金金额高于0.6万元时,存款余额将逐渐减少。
因此,学校领导应该控制奖学金不高于0.6万元。
二、有一位老人60岁时将养老金10万元以整存零取的方式存入,从第一个月开始每月支取1000元,银行每月初按月利率0.3%把上月结余额孳生的利息自动存入养老金。
请你计算老人多少岁时将把养老金用完?
如果想用到80岁,问60岁时应存入多少钱?
令第
个月末,老人的养老金余额为
万元,月利率为
,则
编程计算老人养老金何时用完,matlab程序如下:
x=[];
x0=10;
r=0.003;
x
(1)=(1+r).*x0;
k=1;
whilex(k)>
x(k+1)=(1+r)*x(k)-0.1;
k=k+1;
k
运行结果为
k=
121
故养老金可以用121个月。
如果想用到80岁,即
,matlab程序如下:
x(241)=0;
fori=241:
-1:
2
x(i-1)=x(i)+0.1/(1+0.003)^(242-i);
x0=x
(1)
x0=
17.0908
即老人需要存入17.0908万元。
三、继续考虑3.4.2小节的“酵母培养物的增长”案例,建立微分方程模型,模拟酵母培养物的增长。
建立阻滞增长模型
,对函数进行数据拟合,拟合程序如下:
t=0:
18;
x=[9.6,18.3,29.0,47.2,71.1,119.1,174.6,257.3,350.7,441.0,513.3,559.7,594.8,629.4,640.8,651.1,655.9,659.6,661.8];
f=@(b,t)b
(2).*b(3)./(b(3)+(b
(2)-b(3)).*exp(-b
(1).*(t-0)));
[b1,r1]=nlinfit(t(1:
19),x(1:
19),f,[0.5,660,9.6])
sse1=sum(r1.^2)
subplot(2,1,1),plot(t,x,'
k*'
.01:
18,f(b1,0:
18),'
k'
)
axis([-1,19,0,670]),legend('
观测值'
模拟值'
4)
时间k(小时)'
),ylabel('
生物量x_k(克)'
阻滞增长方程模拟酵母培养物的增长的模拟效果图'
subplot(2,1,2),plot(t,r1,'
k.'
[-1,19],[0,0],'
axis([-1,19,-40,40])
模拟误差'
阻滞增长方程模拟酵母培养物的增长的模拟误差'
结果如下:
b1=
0.5470663.02209.1355
r1=
Columns1through8
0.46452.67012.44652.6143-2.35041.6469-5.1784-2.1484
Columns9through16
1.76865.06073.8475-4.8434-7.42952.9714-0.54180.7993
Columns17through19
0.29960.89321.2820
sse1=
194.3254
拟合得到固有增长率
,酵母菌培养物最大容量
,初始值
,误差平方和为
由拟合效果图和模拟误差图可知,该阻滞增长模型能够较好地模拟酵母培养物生物量的变化趋势。
四、在桥梁的一端每隔一段时间记录在一分钟内有多少辆汽车过桥。
得到表5.5的数据,请估计一天有多少辆汽车过桥。
表5.5过桥车辆数据
时间
0:
00
2:
4:
5:
6:
7:
8:
9:
10:
30
12:
车辆数
5
8
25
12
10
14:
16:
17:
18:
19:
20:
21:
22:
23:
24:
7
9
28
22
11
3
通过matlab进行线性分段插值,然后用复化梯形求积公式求出一天过桥的车辆数,程序如下:
x=[0,2,4,5,6,7,8,9,10.5,12.5,14,16,17,18,19,20,21,22,23,24];
y=[2,2,0,2,5,8,25,12,10,12,7,9,28,22,10,9,11,89,3];
x0=x+(1/60)*(1/2);
y0=y/(1/60);
u=(1/60)*(1/2):
(1/60):
24+(1/60)*(1/2);
y=interp1(x0,y0,u);
sum=trapz(y)*(1/60)
plot(u,y)
时间/h'
车辆数'
),title('
线性分段插值'
sum=
13425
五、有一辆汽车在一段限速80km/h的直路上行驶,被交通监控设备观测到以下数据(见表5.6),请回答以下问题:
(1)当
时,这辆汽车的位置和速度分别是多少?
(2)这辆汽车分别从哪个时刻开始和结束超速?
(3)在观测的时段内,这辆汽车的最高速度是多少?
发生在哪个时刻?
表5.6汽车被交通监控设备观测到的数据
时刻/s
13
位置/m
65
121
194
313
速度/(m/s)
20
26
27
24
利用matlab进行三次样条插值,程序如下:
t=[0,3,5,8,13];
y=[20,0,65,121,194,313,20];
pp=csape(t,y,'
complete'
),w=pp.coefs
s=@(t,tj,c)c
(1).*(t-tj).^3+c
(2).*(t-tj).^2+c(3).*(t-tj)+c(4);
d1s=@(t,tj,c)3.*c
(1).*(t-tj).^2+2.*c
(2).*(t-tj)+c(3);
d2s=@(t,tj,c)6.*c
(1).*(t-tj)+2.*c
(2);
d3s=@(t,tj,c)6.*c
(1).*ones(size(t));
pp.pieces
c=pp.coefs(k,:
);
u=t(k):
.001:
t(k+1);
p=s(u,t(k),c);
plot(u,p,'
),holdon
end
plot(t,[0,65,121,194,313],'
),holdoff
时间/s'
位置/m'
汽车位置数据图'
pp=
form:
'
pp'
breaks:
[035813]
coefs:
[4x4double]
pieces:
4
order:
dim:
1
w=
0.3008-0.346920.00000
-0.69042.360526.040765.0000
0.2757-1.782027.1976121.0000
-0.14600.699723.9507194.0000
运行结果中
为
分段表达式的系数矩阵。
将
对
求导可得
,求
分段表达式系数矩阵
的程序如下:
z=[3,2,1,0;
3,2,1,0;
3,2,1,0].*w
z=
0.9025-0.693820.00000
-2.07124.720926.04070
0.8272-3.564027.19760
-0.43791.399423.95070
绘制汽车速度数据图,程序如下:
f1=@(x)0.9025*x.^2-0.6938*x+20;
f2=@(x)-2.0712*(x-3).^2+4.7209*(x-3)+26.0407;
f3=@(x)0.8272*(x-5).^2-3.564*(x-5)+27.1976;
f4=@(x)-0.4379*(x-8).^2+1.3994*(x-8)+23.9507;
0.1:
3,f1(0:
3),'
3:
5,f2(3:
5),'
5:
8,f3(5:
8),'
...
8:
13,f4(8:
13),'
0.2:
14,80/3.6,'
),holdon
plot(t,[20,26,27,24,20],'
速度/(m/s)'
汽车速度数据图'
(1)利用matlab求解,程序如下:
f=@(t)w(4,:
).*[(t-8)^3,(t-8)^2,(t-8),1];
y_10=sum(f(10))
g=@(t)z(4,:
).*[(t-8)^2,(t-8),1,0];
v_10=sum(g(10))
y_10=
243.5325
v_10=
24.9979
所以当
时,这辆汽车的位置为243.53m,速度为24.998m/s。
(2)由汽车速度数据图可知,超速范围大概在[2,12]之间,继续利用matlab求解区间端点,程序如下:
t1=fzero(@(x)f1(x)-80/3.6,[0,3])
t2=fzero(@(x)f4(x)-80/3.6,[8,13])
t1=
1.9999
t2=
12.1474
所以超速时间段区间为[1.9999,12,1474]s。
(3)求解程序如下
v=@(x)-f2(x);
[x,v]=fminbnd(v,0,5);
tmin=x,vmin=-v
运行结果:
tmin=
4.1397
vmin=
28.7308
所以该车在4.1397s达到最高速度28.7308m/s。