数学建模作业第一章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

8数学建模作业1-1、用Matlab实现人狼羊菜问题。模型分析:(1)用四维向量来表示人狼羊菜在两岸的状态:分别取在此案的分量为1,在对岸的分量为0。(2)模型应满足以下条件:A.羊不能与狼同时在一岸,因为狼会吃羊;B.羊不能与才同时在一岸,因为羊会吃菜。所以,通过这个三角关系可以得出且仅仅可以得出十个可行的如下状态:(1,1,1,1),(1,1,1,0),(1,1,0,1),(1,0,1,1),(1,0,1,0),(0,1,0,1),(0,1,0,0),(0,0,1,0),(0,0,0,1),(0,0,0,0);8令这集合为V,每个小矩阵为v;(3)船上可以得到4个可行的转换状态:(1,0,0,0),(1,1,0,0),(1,0,1,0),(1,0,0,1);令集合为D,每个小矩阵为d;(4)令每个经过的状态为A,当A由(1,1,1,1)变为(0,0,0,0)时则任务完成。(5)满足关系式:A(k)=A(k-1)+(-1)^k*D(i);满足条件:A(k)属于V;(模型求解):forj=1:1000;%循环1000次fori=1:3:13;%i以1为起点,3为步长,循环到16;(间接的提取出d)fork=1:3:37;%提取出10个可用状态;D=[1000110010101001];%D看成是d1=[1000],d2=[1100],d3=[1010]和d4[1001]组成;A(1:4)=[1111];%A为初始状态;V=[1111111011011011101001010100001000010000];%V类似于D,(v1...v10)看成是10个小矩阵;ifA(1+4*(j-1):(1+4*(j-1))+3)+(-1)^j*D(i:i+3)==V[k:k+3];%状态改8变并判断所行步骤是否可取;A((1+4*j):((1+4*j)+3))=A(1+4*(j-1):(1+4*(j-1)+3))+(-1)^j*D(i:i+3);%若可取,则将所得新状态定位下一步的起点;A((1+4*j):((1+4*j)+3))endendwhileA((1+4*j):((1+4*j)+3))==[0000];%当初始状态变成[0000]即已全部过完河时,循环结束。end模型编程:cleara=[1111];c=[0000;0101;0010;0001;0100;1110;1101;1011;1010];d=[1100;1010;1001;1000];b=ones(12,4);D=ones(7,4);k=3;whileany(a)fori=1:4e=a+(-1)^k*d(i,:);forj=1:9f=all(e==c(j,:));g=any(e~=b(k-1,:));h=f&g;ifhb(k+1,:)=e;D(k-2,:)=d(i,:);endendend参数及结果:sum=7a=0000D=1010100010018a=b(k+1,:);k=k+1;endsum=k-3,a,D1-3、试建立某作物叶长生长变化的指数和logistic模型要求:估计出相关参数,并作出图形,并对两个模型模拟的误差进行分析比较。生长观测记录数据如下时间(天)11.82.63.44.14.85.46.16.87.48.1叶长(cm)0.30.50.91.42.53.24.37.610.114.418.5时间(天)8.89.410.110.811.712.413.114.415.115.7叶长(cm)23.025.230.433.738.841.743.744.845.545.3l=l(0)*(1+r)^t;%当r很小时,lim(e^r)=1+rl=l(0)*e^(r*t)%对l两边取对数log(l)=log(l(0))+r*t;t=[11.82.63.44.14.85.46.16.87.48.18.89.410.110.811.712.413.114.415.115.7]';l=[0.30.50.91.42.53.24.37.610.114.418.523.025.230.433.738.841.743.744.845.5845.3]';t=(t-1);l=l(1:21);t=t(1:21);y=log(l);X=[ones(size(l,1),1)t]b=X\y;%b对(y,X)拟合(b=regress(y,X))l0=exp(b(1));r=b(2);y=exp(b(1)+b(2)*t)plot(t,l,'pg',t,y);V=[ly]用matlab拟合数据函数求得:l(0)=0.8293,r=0.33968叶长logistic模型y1*r1rx=r-s*x;t=[11.82.63.44.14.85.46.16.87.48.18.89.410.110.811.712.413.114.415.115.7];L=[0.30.50.91.42.53.24.37.610.114.418.523.025.230.433.738.841.743.744.845.545.3];t=(t-1);n=size(t,2)dL=L(2:n)-L(1:n-1);dt=t(2:n)-t(1:n-1)dLdtx=(dL./dt)./L(2:n)p=polyfit(L(2:n),dLdtx,1);r=p(2)s=-p(1)xm=r/sL1=xm./(1+(xm/L(1)-1).*exp(-r.*t))vs=[L'L1']plot(t,L,'+r',t,L1)用matlab求得:r=0.5284,s=0.0109,xm=lm=48.3810.8结论:logistic模型更准确。高校开水房的拥塞想必让每一位同学都深有感触吧,偏偏这种时候还有一些人喜欢一个人占好几个龙头,不得不让人怒火中烧。对每个人来讲,最好的办法当然是在不违反排队顺序的前提下尽可能早地接触龙头,事实上大家也基本上是这样做的,在高峰时期霸占多个龙头的人就算不遭到语言的谴责也会遭到目光的谴责。试对下列几种情形建立数学模型,使得总的等待时间最小。1)1个水龙头,10个人打水,第i人打水时间为i分钟;2)2个水龙头,10个人打水,每人提2个水瓶,打满一壶水需要1分钟;3)把上述两种情况选择一种加以推广并讨论;第一种模型1.模型:1个水龙头,10个人排成一列打水。分析:第i个人打水时间i分钟,等待i-1分钟。总的等待时间:sum1=11nii2.程序:cleara=1:10;sum=sum(a-1)8结果:sum=45第二种模型1.模型:2个水龙头,10个人打水,每人提2个水瓶,打满一壶水需要1分钟;分析:①若排成一排,同第一种模型,十人等待时间:sum1=45;②若排成两排,一排五人,第i个人打水时间2i分钟,等待2(i-1)分钟。两排总的等待时间:sum2=22121nii2.程序:cleara=1:5;sum=2*sum(a-1);sum2=2*sum结果:sum2=40显然sum1sum2,模型二较好!结论第二种模型较好。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功