当然这与降雪的速度有关,以下在一些合理的假设下进行讨论和计算。
已知:在无雪的路面上除雪机的行驶速度为10m/s;雪下了1时,雪最大时路面积雪的厚度以0.1cm/s的速度增加,前半小时雪越下越大,后半小时越下越小。
假定除雪机的速度v随雪的厚度h线性变化,利用已知条件可得v=10(1-2h/3)。而h是时间t的函数,假定前半小时h′(t)匀速增加而后半小时匀速减少,可得
(单位:m/s),
再积分得到:
,注意h(t)也是分段函数。
下面可以利用Mathematica进行计算了。
In[1]:= h1 = 0.001(s /1800 UnitStep[1800 - s] +
(2 – s /1800)UnitStep[s - 1800]);
h = Integrate[h1,{s,0,t}];
v = 10(1 - 2h /3);
h / . t→1800
Out[4]= 0.9
In[5]:= h / . t→3600
Out[5]= 1.8
在In[1]中的h1是h′(t),对它求定积分得到雪的厚度h(t)。Out[4]给出t=1800 s时雪的厚度是0.9m,Out[5]表明t=3600 s时雪的厚度是1.8m。
除雪机从雪的厚度是0.5m时开始工作,直到雪的厚度是1.5m时停止,以下求出它开始和停止工作的时间,再积分得到它前进的距离。
In[6]:=FullSimplify[h,t<1800]
Out[6]=2.77778×10-7t2
In[7]:=Solve[%= =0.5,t]
Out[7]={{t→ - 1341.64},{t→1341.64}}
In[8]:= t0 = t / . %[[2]]
Out[8]=1341.64
In[9]:=FullSimplify[h,t>1800]
Out[9]= - 2.77778×10-7 (-6145.58+t)(-1054.42+t)
In[10]:=Solve[%= =1.5,t]
Out[10]= {{t→2560.77},{t→4639.23}}
In[11]:= t1 = t / . %[[1]]
Out[11]=2560.77
In[12]:= Integrate[v,{t,t0,t1}]
Out[12]=3859.94
由于函数h(t)是分段的(表达式中含有函数UnitStep),解方程的函数Solve对它无能为力,只好分段求解。In[6]通过有条件的化简,成功地得到当t < 1800时h(t)的表达式。接下来,使用Solve求除雪机开始工作的时刻t0,并从解集中提取出合理的答案。同样再得到除雪机停止工作的时刻t1,最后In[12]求除雪机前进的距离,Out[12]表明除雪机只能清除大约4km的积雪。
使用Solve求解不方便,如改用求数值解的函数FindRoot,则容易的多:
In[13]:=FindRoot[h= =0.5,{t,900}]
Out[13]={t→1341.64}
In[14]:=FindRoot[h= =1.5,{t,2000}]
Out[14]= {t→2560.77}
这样就不必再分段求解了,但是有选取迭代初值的问题,注意不要选在分界点处。
追问不过这些函数我好像不懂耶 呵呵 能有简单点的吗?