利用MATLAB进行验证性实验-1.划艇比赛的成绩-2.汽车刹车距离-生猪的出售时机模型求解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河北大学《数学模型》实验实验报告
班级专业15计科2班姓名张宇轩学号20151101006
实验地点C1-229指导老师司建辉成绩
实验项目利用MATLAB进行验证性实验
1.划艇比赛的成绩
2.汽车刹车距离
3.生猪的出售时机模型求解
一、实验目的
学会利用MATLAB进行验证性实验,熟练掌握用数据拟合求解模型和参数。了解并使用最小二乘多项式拟合函数 polyfit,仿照案例今后能够自己解决图形问题。
二、实验要求
1.划艇比赛的成绩的模型:t=αnβ
其中,t为比赛成绩(时间),n为桨手人数,α和β为参数。
为适合数据拟合,将模型改为:log t=log α+βlog
桨手人数 n 比赛平均成绩 t
1 7.17
2 6.88
4 6.32
8 5.84
1>. 参数α和β估计
程序如下:
clear;clc;
n=[1 2 4 8];
t=[ 7.21 6.88 6.32 5.84];
logt=log(t);logn=log(n);
p=polyfit(logn,logt,1);
beta=p(1)
alfa=exp(p(2))
2>. 实际值与计算值比较(数据比较和和拟合图形)
参考数据结果:
ans =
1 7.21 7.2842
2 6.88 6.7799
4 6.32 6.3106
8 5.84 5.8737
参考图形结果:
图1:题给拟合图形结果
要求:
1)运行以上程序。
2)编程:实际值与计算值比较(数据比较和和拟合图形)。
3)用 help查询函数 polyfit的用法。
v+kv2
2.汽车刹车距离的模型:d=t
1
其中,d为刹车距离,变量 v为车速,参数 t1为反应时间,参数 k为比例系数。取经验值=0.75秒。
t
1
实际数据表
车速实际刹车距离
(英里/小时)(英尺/秒)(英尺)
20 29.3 44
30 44.0 78
40 58.7 124
50 73.3 186
60 88.0 268
70 102.7 372
80 117.3 506
①用数据拟合求参数 k
为适合数据拟合,将模型改为:y=k
其中 y=(d-0.75v)/v2
程序如下:
clear;clc;
v=[29.3 44.0 58.7 73.3 88.0 102.7 117.3]; %英尺/秒
d=[44 78 124 186 268 372 506]; %最大实际刹车距离(英尺)
y=(d-0.75*v)./v.^2;
k=polyfit(v,y,0)
②用所得模型计算刹车距离和刹车时间(数据比较)
程序如下:
clear;clc;
k= ; %输入上题所求得的结果
v=[29.3 44.0 58.7 73.3 88.0 102.7 117.3]; %英尺/秒
d=[44 78 124 186 268 372 506]; %最大实际刹车距离(英尺)
dd=0.75*v+k*v.^2; %计算刹车距离
t=d./v; %计算刹车时间
format short g;
[v',d',round(10*[dd',t'])/10]
③实际和计算刹车距离的比较(拟合图形)
程序如下:
clear;clc;
k= ; %输入题 1所求得的结果
vh=[20 30 40 50 60 70 80]; %英里/小时
v=[29.3 44.0 58.7 73.3 88.0 102.7 117.3];% 英尺/秒
d=[44 78 124 186 268 372 506];% 最大实际刹车距离(英尺)
dd=0.75*v+k*v.^2; %计算刹车距离
plot(vh,d,'r+',vh,dd,'b-');
title('实际和计算刹车距离的比较');
axis([20,80,0,510]);
xlabel('v 英里/小时');
ylabel('d 英尺');
要求:
1)运行以上程序,结果与教材相应内容比较。
2)题 2和题 3中要求输入题 1所求得的 k值。
3)理解程序。
3.生猪的出售时机模型求解
目标函数(生猪出售纯利润,元):
Q(t)=(8-gt)(80+rt)-4t-640
其中,t≥0为第几天出售,g为每天价格降低值(常数,元/公斤),r为每天生猪体重增加值(常数,公斤)。
求 t使 Q(t)最大。
①图解法
绘制目标函数
Q(t)=(8-gt)(80+rt)-4t-640
的图形(0≤t≤20)。其中,g=0.1, r=2。
程序如下:
clear;clc;
g=0.1;r=2;
fplot(@(t)(8-g*t)*(80+r*t)-4*t-640,[0,20]);
grid;
xlabel('t'); ylabel('Q');
②代数法
对目标函数
Q(t)=(8-gt)(80+rt)-4t-640
用 MATLAB求 t使 Q(t)最大。其中,r,g是待定参数。
程序如下:
clear;clc;
syms t;%定义符号变量 t
Q=sym('(8-g*t)*(80+r*t)-4*t-640') %建立符号表达式
dQ=diff(Q,'t') %求微分 dQ/dt
t=solve(dQ,t) %求 dQ=0的解 t
r=2;g=0.1;
t=eval(t) %求 r=2,g=0.1时的 t值
Q=eval(Q) %求 r=2,g=0.1,t=10时的 Q值(最大值)
要求:
1)运行以上程序。
2)理解程序,对照教材相关内容。
三、实验内容
划艇比赛的成绩
1.用数据拟合求参数α和β。给出α和β值和模型:
alfa =7.2842
bata =-0.1035
模型:log t=log α+βlog n或t=αnβ
2.实际值与计算值比较(数据比较和和拟合图形),程序和运行结果。数据比较:
>> [n',t',(alfa*n.^bata)']
ans =
1.0000 7.2100 7.2842
2.0000 6.8800 6.7801
4.0000 6.3200 6.3109
8.0000 5.8400 5.8742
拟合图形: