谢谢你的代码,非常棒!
借着你的核心公式dh/dt= - (A_out * sqrt(2 * g * h)) / A_surface 进行一下积分操作,中间改几个表示方式,引入上底面与侧壁夹角α的余切来替换 (r_t - r_b) / H,引入出口圆孔半径r_o来替换A_out。改写后dh/dt表达式并分离变量可得dh*(r_b+ctg(α)*h)^2=-r_o^2*sqrt(2gh)*dt,对该式两侧分别对dh和dt积分可求得t的表达式:t*sqrt(2g)*r_o^2=2*H^(1/2)*r_b^2+(2/5)*(ctg(α)^2)*H^(5/2)+(4/3)*r_b*ctg(α)*H^(3/2),对于B桶而言,只需要将r_b换成r_t,ctg(α)换成-ctg(α)即可。整理后发现,A的流完时间比B小等价于2/3<1。A快的结论成立。
【 在 DragonDon 的大作中提到: 】
: function dhdt = taper_ode(t, h, r_t, r_b, H, A_out)
: g = 9.81;
: % 计算当前高度 h 的半径 r
: ...................
--
修改:tsuld FROM 114.254.172.*
FROM 114.254.172.*