河北大学《数学模型》实验实验报告班级专业15计科2班姓名张宇轩学号20151101006实验地点C1-229指导老师司建辉成绩实验项目利用MATLAB进行验证性实验1.划艇比赛的成绩2.汽车刹车距离3.生猪的出售时机模型求解一、实验目的学会利用MATLAB进行验证性实验,熟练掌握用数据拟合求解模型和参数。
了解并使用最小二乘多项式拟合函数 polyfit,仿照案例今后能够自己解决图形问题。
二、实验要求1.划艇比赛的成绩的模型:t=αnβ其中,t为比赛成绩(时间),n为桨手人数,α和β为参数。
为适合数据拟合,将模型改为:log t=log α+βlog桨手人数 n 比赛平均成绩 t1 7.172 6.884 6.328 5.841>. 参数α和β估计程序如下: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.28422 6.88 6.77994 6.32 6.31068 5.84 5.8737参考图形结果:图1:题给拟合图形结果要求:1)运行以上程序。
2)编程:实际值与计算值比较(数据比较和和拟合图形)。
3)用 help查询函数 polyfit的用法。
v+kv22.汽车刹车距离的模型:d=t1其中,d为刹车距离,变量 v为车速,参数 t1为反应时间,参数 k为比例系数。
取经验值=0.75秒。
t1实际数据表车速实际刹车距离(英里/小时)(英尺/秒)(英尺)20 29.3 4430 44.0 7840 58.7 12450 73.3 18660 88.0 26870 102.7 37280 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;%定义符号变量 tQ=sym('(8-g*t)*(80+r*t)-4*t-640') %建立符号表达式dQ=diff(Q,'t') %求微分 dQ/dtt=solve(dQ,t) %求 dQ=0的解 tr=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.2842bata =-0.1035模型:log t=log α+βlog n或t=αnβ2.实际值与计算值比较(数据比较和和拟合图形),程序和运行结果。
数据比较:>> [n',t',(alfa*n.^bata)']ans =1.0000 7.2100 7.28422.0000 6.8800 6.78014.0000 6.3200 6.31098.0000 5.8400 5.8742拟合图形:图2:拟合图形结果源程序如下:>> 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);>> bata=p(1);>> alfa=exp(p(2));>> x=0:0.01:10;>> y=alfa*x.^bata;>> plot(n,t,'r+',x,y);>> axis[0,10,5,11]>> [n',t',(alfa*n.^bata)']汽车的刹车距离1.用数据拟合求参数 k。
给出 k值和模型。
k =0.0258模型:k=(d-0.75v)/v22.用所得模型计算刹车距离和刹车时间(数据比较),运行结果。
>> k=0.0258;>> 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]ans =29.3 44 44.1 1.5 44 78 82.9 1.8 58.7 124 132.9 2.1 73.3 186 193.6 2.5 88 268 265.8 3 102.7 372 349.1 3.6 117.3 506 443 4.3 3.实际和计算刹车距离的比较(拟合图形),运行结果。
>> k=0.0258;>> 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 英尺');图3:拟合图形结果生猪的出售时机模型求解1.题 1程序运行结果,从函数图估计 t为何值时函数取得最大值。
>> g=0.1;r=2;>> fplot(@(t)(8-g*t)*(80+r*t)-4*t-640,[0,20]);>> grid;>> xlabel('t'); ylabel('Q');图4:拟合图形结果当t=10时函数取得最大值2. 题 2程序运行结果。
>> syms t;>> Q=sym('(8-g*t)*(80+r*t)-4*t-640')Q =(8-g*t)*(80+r*t)-4*t-640>> dQ=diff(Q,'t')dQ = -g*(80+r*t)+(8-g*t)*r-4>> t=solve(dQ,t)t =2*(-20*g+2*r-1)/g/r>> r=2;g=0.1;>> t=eval(t)t =10>> Q=eval(Q)Q =20四、实验结果及其分析1.polyfit函数用法:polyfit函数是matlab中用于进行曲线拟合的一个函数。
曲线拟合:已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲线)使在原离散点上尽可能接近给定的值。
调用方法:polyfit(x,y,n)。
用多项式求过已知点的表达式,其中x为源数据点对应的横坐标,可为行向量、矩阵,y为源数据点对应的纵坐标,可为行向量、矩阵,n为你要拟合的阶数,一阶直线拟合,二阶抛物线拟合,并非阶次越高越好,看拟合情况而定。
2关于实验:划艇比赛的成绩.将浆手人数和比赛平均成绩作为两个向量,根据模型,将两向量分别取对数后进行一次拟合,并求出参数alfa =7.2842和bata =-0.1035。