由此可以,在t=60s时,即火箭燃料燃尽瞬间,引擎关闭瞬间,火箭将到达12912m的高度,速度为267,29m,加速度a=0.9m/s^2
515253545556575859609823.74810083.1810343.5910604.9410867.2111130.3911394.4911659.4911925.4212192.25258.9677259.9233260.8613261.794262.7221263.6462264.5671265.482266.3898267.2908B燃料燃尽之后,与A 类似,分析受力如下
火箭受到向上的F=0
向下的重力G=mg,g=9.8,
向下的阻力f=kv^2, k=0.4, v表示此时火箭速度; 此时火箭收到的合力为F2=(-mg-f); 火箭的初始质量为320kg,恒定
根据牛顿第二定律,加速度a=F2/m=-g-0.4v^2/320; 程序实现如下
function [ dx ] = rocket2( t,x ) %建立以rocket2为名的函数 dx=[x(2);-9.8-0.4.*x(2).^2/320]; %以向量的形式建立方程 ts=60:120; %给出初始时刻,估计终点时刻 x0=[12190,267.26]; %给出x初始值 [t,x]=ode15s(@rocket2,ts,x0); %调用ode15s计算 [t,x]
plot(t,x(:,1)),grid; %绘出火箭高度随时间变化的曲线 title('h-t');
xlabel('t/s'),ylabel('h/m'),pause;
plot(t,x(:,2)),grid; %绘出火箭速度随时间的变化曲线 title('v-t');
xlabel('t/s'),ylabel('v/m/s'),pause; v=x(:,2);
a=-9.8-0.4*v.^2/320; %给出加速度的具体表达式 plot(t,a),grid; %绘出火箭加速度随时间变化的曲线 title('a-t');
xlabel('t/s'),ylabel('a/m^2/s'),pause 得到的曲线图形如下
火箭高度随时间的变化曲线
从图中可以大致看出,最高点在13km左右,
火箭速度随时间的变化曲线
加速度随时间变化曲线如下
数据表格大致如下
0.0064 1.2822 0.0093 -0.0021 0.0065 1.2905 0.0074 -0.0017 0.0066 1.2971 0.0059 -0.0014 0.0067 1.3023 0.0046 -0.0012 0.0068 1.3063 0.0034 -0.0011 0.0069 1.3092 0.0023 -0.0010 0.0070 1.3110 0.0013 -0.0010 0.0071 1.3117 0.0003 -0.0010 0.0072 1.3116 -0.0007 -0.0010 0.0073 1.3104 -0.0017 -0.0010 从图表中可以看出,在71s左右速度到达0,即此时到达最高处,高度为13117m加速度为-9.8m/m/s^2;
本题总结:
这道题是典型的物理牛顿力学的题目,通过受力的正确分析,可以知道,以[h,v]为向量建立微分方程即可求解,h的微分是速度v,速度v的微分是加速度a
解题过程中存在的难点是:取值步长不太容易确定,而且是哪种算法不确定, 先用ode15s速度较快,ode23s速度差不太多,其他两种速度较慢,等待时间较长
5.一只小船渡过宽为d 的河流,目标是起点A 正对着的另一岸B 点。已知河 水流速为v1 与船在静水中的速度v2之比为k。
(1) 建立描述小船航线的数学模型,求其解析解;
(2) 设d=100m,v1=1m/s,v2=2m/s,用数值解法求渡河所需的时间、任 意时刻小船的位置及航行曲线,作图,并与解析解比较。 (3) 若流速v1=0,0.5,1.5,2(m/s), 情况又如何