资源描述
抢渡长江
摘要 本文应用物理动力运动知识、微积分、图论法,针对不同的竞渡情程况建立了约束性最优解模型,通过分析求解,得出最优的竞渡方案及所用时间,并将模型的应用推广至航空、航海等领域.
对于问题(1),根据题目给出了两种具体竞渡情况可以作出相应的矢量三角形,将速度分解,列出等式,即可求得结果.
对于问题(2),在假设成立的条件下,建立关于速度的矢量三角形模型,应用比例分析法,从而可分析出两次比赛到达终点人数的百分比差异很大的原因,并得出选手成功到达终点的条件.
对于问题(3)以第一题得出的,“如果水速均匀,则通过的最短方式为,速度的大小方向不变,走直线路径”为基础,讨论水流分段速度相等时的方案优劣,并通过多元函数求极值的方法求的给定条件下的具体最优方案。
对于问题(4)先从一般情况出发,对最优策略的求得方法进行了探讨,然后结合可计算性,提出了任意水速的变化情况下的最优策略和成绩的算术求解方法和程序求解方法,并按问题(4)的具体条件进行了求解。
最后结合实际,通过对模型的分析总结给有意参加竞渡的游泳爱好者提供一些策略,并将动态优化模型应用推广到航空航天和航海等领域.
1、问题的重述
“渡江”是武汉城市的一张名片.1934年9月9日,武汉警备旅官兵与体育界人士联手,在武汉第一次举办横渡长江游泳竞赛活动,起点为武昌汉阳门码头,终点设在汉口三北码头,全程约5000米.有44人参加横渡,40人达到终点,张学良将军特意向冠军获得者赠送了一块银盾,上书“力挽狂澜”.
2001年,“武汉抢渡长江挑战赛”重现江城.2002年,正式命名为“武汉国际抢渡长江挑战赛”,于每年的5月1日进行.由于水情、水性的不可预测性,这种竞赛更富有挑战性和观赏性.
2002年5月1日,抢渡的起点设在武昌汉阳门码头,终点设在汉阳南岸咀,江面宽约1160米.据报载,当日的平均水温16.8℃, 江水的平均流速为1.89米/秒.参赛的国内外选手共186人(其中专业人员将近一半),仅34人到达终点,第一名的成绩为14分8秒.除了气象条件外,大部分选手由于路线选择错误,被滚滚的江水冲到下游,而未能准确到达终点.
假设在竞渡区域两岸为平行直线, 它们之间的垂直距离为 1160 米, 从武昌汉阳门的正对岸到汉阳南岸咀的距离为 1000米,见题目示意图.
请你们通过数学建模来分析上述情况, 并回答以下问题:
(1)假定在竞渡过程中游泳者的速度大小和方向不变,且竞渡区域每点的流速均为 1.89 米/秒.试说明2002年第一名是沿着怎样的路线前进的,求她游泳 速度的大小和方向.如何根据游泳者自己的速度选择游泳方向,试为一个速度能保持在1.5米/秒的人选择游泳方向,并估计他的成绩.
(2)在(1)的假设下,如果游泳者始终以和岸边垂直的方向游, 他(她)们能否到达终点?根据你们的数学模型说明为什么 1934年 和2002年能游到终点的人数的百分比有如此大的差别;给出能够成功到达终点的选手的条件.
(3)若流速沿离岸边距离的分布为 (设从武昌汉阳门垂直向上为 y轴正向) :
游泳者的速度大小(1.5米/秒)仍全程保持不变,试为他选择游泳方向和路线,估计他的成绩.
(4) 若流速沿离岸边距离为连续分布, 例如
或你们认为合适的连续分布,如何处理这个问题.
(5)用普通人能懂的语言,给有意参加竞渡的游泳爱好者写一份竞渡策略的短文.
(6)模型还可能有什么其他的应用?
2、问题的符号与假设
2.1 模型的假设
(1) 竞渡在平面区域进行
(2) 参赛者的游泳速度给定
(3) 选手在竞渡过程中状态良好
(4) 不考虑竞赛当天的天气状况对算手的影响
(5) 将选手看作质点
(6) 假设区域两岸平行
(7) 不考虑地理因素对选手的影响
2.2 符号说明
v为游泳者在竞渡中的速度大小.
θ为游泳者在竞渡中速度方向与河岸的夹角.
t为游泳者在竞渡中的时间.
H示竞渡区域两岸的垂直距离1160米.
L表示从武昌汉阳门的正对岸到汉阳南岸咀的距离1000米
v0表示水流的速度1.89米/秒.
v1表示游泳者在水中的合速度.
d表示游泳者的实际路程.
3、问题的分析
该问题属于一定约束条件下的动态优化问题.通过对问题由简单到复杂的分析,在相应约束条件下,得到最优解,从而得出竞渡的策略.
在问题(1)中,游泳者的速度大小和方向不变且水流速度均为1.89m/s,可以建立相应的矢量三角形模型,又由运动的合成与分解可以分析得出游泳者的竞渡路线(起点与终点的连线),以及在竞渡过程中游泳者始终做匀速直线运动.通过以上分析列出水平竖直方向上的等式,便可求解此题.在水速均匀的情况下,可以以水为参照系,则对于任意的游泳情况,都是游泳者从水的一边游到另一边,根据两点之间直线距离最短的公理可知游直线绝对距离(游泳者靠自身力量位移的距离)最短,方法最优。
在问题(2)中,在问题(1)假设成立的前提条件下,游泳者始终以和岸边垂直的方向游, 确定游泳者的运动轨迹,建立此情况下的矢量三角形,即模型1,列出相应的等式,便可以分析得出游泳者能否到达终点.由此模型,以及将速度在水平和垂直方向上的分解列出的等式,综合1934年和2002年抢渡路线(附图2),由于终点位置不同,引起水平位移不同,导致在速度大致相同的情况下,选择相同的路线,1934年可以到达终点二2002年无法到达终点.由此也可总结出,选手是否能到达终点,主要取决于路线的选择,及游泳者速度方向的选择.
在问题(3),中从前两问可知,游泳者必须用很大的速度来抵消江水的作用,则在直觉上,应当尽量减少高速江水的作用时间,缩短在江心的逗留时间。然而具体策略中的数值需建立方程求得。结合问题(1)的结论,用图论法可知,最优的路径中通过各段内部时走的一定是直线。由于只有两次可能的速度改变,因此可以忽略水速连续变化时加速度用时产生的路径偏移作用。
在问题(4)中, 在问题(3)的基础上建立更普遍的模型,同时由于速度可能改变无限多次,因此要考虑水速连续变化时加速度用时产生的路径偏移作用。普遍情况的求解过程比较复杂,计算方法受中间结果的影响较大,有很强的技巧性和机会性,详见模型的建立与求解中的问题(4)部分。另外,由于水流速度连续变化,因此游泳者的速度也可能连续变化,这可能需要用到力学方面的知识进行一般的讨论。
4.模型的建立与求解
4.1依据题目条件,建立给定的矢量三角形模型
4.1.1
在游泳者在竞渡中的速度大小和方向保持不变条件下建立适量三角形模型, v1表示游泳者在水中的合速度,d表示游泳者的实际路程.
则: v1 =. 解得v1= 1.8061 (5 )/53m/s.
d=
由上可知,第一名的合速度大于水流速度,画出如下示意图:
图1.1 模型1-1
根据游泳者地速度路程等关系列出下列方程组:
=t
=t
t=848
根据实际情况将求得的x的负值舍弃:求得:
v=1.54155m/s. v=1.54155m/s.
θ=2.6624. (舍弃) 或 θ=27.456°.
t=848s. t=848s.
所以:第一名速度的大小为27.456°,方向为向上游偏转0.479914.
4.1.2
游泳者在竞渡中的速度大小和方向保持不变,
根据游泳者地速度路程等关系列出下列方程组:
=t
=t
v=1.5
由于游泳者的速度大小小于水流速度的大小,所以游泳者速度的方向与水流反方向的夹角θ应为锐角,如图所示:图1.2 模型1-2
根据实际意义,将负值舍去
求得: θ=93.220°. θ= 32.070°.
t=1948.63s. 或 t=910.46s.
所以该游泳者的游泳方向为偏向上游32.070°,成绩为910.46s.
4.2最为理想化的模型,建立模型1——人速、水速恒定不变
4.2.1
游泳者在竞渡中的速度大小和方向保持不变,游泳者始终以和岸边垂直的方向游.
根据游泳者地速度路程等关系可讲游泳者的速度分解成沿河岸和垂直河岸两个方向,列出下列方程组
=t. 解得: v=2.1924m/s.
=t. t=529.101s.
由上可看出,若游泳者始终以和岸边垂直的方向游且速度大小保持不变,则要能到达目的地,游泳者的速度大小必须为2.1924m/s.而现在世界上人类的游泳记录为 所以他们不可能以垂直的速度方向到达终点.
4.2.2
为了分析1934年和2002年能游到终点的人数的百分比为什么有如此大的差别,先建立一个模型,假设两次比赛中,参赛者的体能游泳技术相当,水流速度一样都为v0为1.89米/秒,两岸的垂直距离都为s为1160米,沿水流方向起始位置到终点位置的距离为l,据分析,游泳者的合速度沿着起点指向终点的方向,所需的时间最短.那么,以沿水流方向起始位置到终点位置的距离l为变量,分析当l取不同的值时,游泳者能到达终点的最小游泳速度的大小,以此来分析能到达终点人数的百分比情况:
假设:
设游泳者在竞渡中的速度大小和方向保持不变,
符号说明:
v为游泳者在竞渡中的速度大小.
θ为游泳者在竞渡中速度方向与河岸的夹角.
t为游泳者在竞渡中的时间.
s示竞渡区域两岸的垂直距离1160米
l表示从武昌汉阳门的正对岸到汉阳南岸咀的距离1000米
v0表示水流的速度1.89米/秒.
v1表示游泳者在水中的合速度.
d表示游泳者的实际路程.
如图:
图1.3 模型1-3
根据三角形定理可得出v与v0的关系:= 即可得: v= *v0
因为水流速度方向与合速度方向的夹角α大小是一定的即sinα是一个定值,且水流速度v是一个为一只常量,为了使游泳者的速度v取得最小值,则须使得sinβ取得最大值1即
β=90°,所以当游泳者的速度v与水流速度v0的反方向的夹角为90°即两者垂直的时候游泳者可以最小的速度到达终点.
图1.4 模型1-4
根据路程关系可得: tanα=.
根据速度构成的三角形关系可得: v=v0*sinα.
两个式子构成方程组: tanα= 解得:
v=v0*sinα
带入1934年的数据可得出速度的最小值v1=0.98058m/s.
带入2002年的数据可得出速度的最小值v2= 0.70711 m/s.
由此可看出,要达到1934的最小值 比较容易,而要达到2002年地速度的最小值 则比较难,所以1934年能游到终点的人数的百分比比2002年能够游到终点的人数的百分比大得多.
4.2.3
水流速度一样都为v0为1.89米/秒,两岸的垂直距离都为s为1160米,则根据2.2中的假设以及分析可得:
① 1934年的比赛中,游泳者能够成功到达终点的条件为其速度大于v1即0.98058m/s.
② 2002年的比赛中,游泳者能够成功到达终点的条件为其速度大于v2即
4.3水流速度在固定区域保持不变模型
根据题意,在0m≤y≤200m的区域为Ⅰ区域,200m≤y≤960m的区域为Ⅱ区域,960m≤y≤1160m的区域为Ⅲ区域,则为游泳者选择游泳方向和路线,则须使得在速度大小不变的情况下他的成绩最好,即时间最短。
由图论法可知,如果从A到B的多条路线中有一条最优路线h,且经过点C,则A到C的最优路径m一定与h的一部分重合。由第一题可知,如果水速均匀,则通过的最短方式为,速度的大小方向不变,走直线路径。综上可知,在此问中,不论过江的路径、方式是什么,在最优路径中通过I、II、III段的路径分别一定是直线。
由于河的总宽度为1160米,中间只有两次可能的转向,因此我们忽略转向时的加速度带来的路径偏移(即游泳者自身有惯性,当其受各种作用力相对于地球的速度发生改变时,游泳者达到新的运动平衡(即匀速直线运动)需要一定时间,这一时间的运动产生一定位移,而未简化计算这里的模型忽略这一位移),即假设游泳者在水速变化时可以瞬间改变自身速度的方向。
图1.5 模型2
设:X为游泳者从起点到终点的沿江方向上的位移;在此问中为1000米。
Y为游泳者从起点到终点的过江方向上的位移;在此问中为1160米。
、、分别为第I、II、III段的宽度,在此问中分别为200米、760米、200米。
为游泳者速度的大小,在此问中为1.5米/秒。
、、分别为游泳者自身在第I、II、III段上相对于水的沿江方向上的速度。
、、分别为游泳者自身在第I、II、III段上相对于水的过江方向上的速度。
、、分别为江水在第I、II、III段上的速度,在此问中分别为1.47米/秒、2.11米/秒、1.47米/秒。
t为游泳者过江的总时间。
、、分别为游泳者通过第I、II、III段所用的时间。
则有关系:
目标函数为:
用多元函数求极值的方法可求得t的最小值约为904.023s,即15min4s;此时游泳者在第I、III段需以约0.882865m/s的速度(相对于水)向上游游动,以约1.21266m/s的速度向对岸游动;游泳者在第II段需以约0.705656m/s的速度(相对于水)向上游游动,以约1.32365 m/s的速度向对岸游动。
由于向上游偏移的角度,所以也可以表述为:
以向上游偏移的方向游第I、III段,以向上游偏移的方向游的方向游第II段。总时间是15min4s。
4.4水流速度呈连续变化时的模型
基于上一问的求解,我们首先在上一问的力学假设(忽略游泳者转向时的加速度带来的路径偏移,即假设游泳者在水速变化时可以瞬间改变自身速度的方向。)的前提下对水流速度与距岸远近呈确定函数关系时的情况做一般性的讨论:
符号设定方式与上一问相同。我们可以把Y划分成n段,类似的,可以得出如下关系:如下关系:
显然,游泳者在按最佳路线游时一定不可能向回游,因此恒成立,由②③④可得: …………⑤
将⑤代入①得:…………⑥
⑥即为可行的游泳方案的约束条件。
由②⑤可得: …………⑦
⑦为目标函数
用多元函数求极值的方法,有:
……⑧
由⑧可得:
这里可以看到,与只有一个通过的很弱的相关关系,而且在与Y关系确定的情况下为一常数。变形可以得到:
和
……………⑨
把⑨分别代入⑥⑦可得:
因为是关于游泳者距出发点的过江方向上的位移的长度的确定函数,因此设游泳者距出发点的过江方向上的位移的长度为y,则可将其表示为。如果令对Y的划分为等分成n段,当n趋近于时则有:
…………………⑾
…………………⑿
图1.6 模型3
在第三问中,由于路程总长有1160米,而速度只经过了2次变化,因此速度变化时的加速度用时产生的路径偏移可以忽略不计,然而,在水速连续变化时加速度用时产生的路径偏移有无限多个,下面对其进行考察。
由于水流速度变化情况与江心对称(地转偏向力导致的不对称十分微小,可以忽略不计),从上述结论可知,忽略水速连续变化时加速度用时产生的路径偏移作用时求得的游泳者的各点的速度的方向也呈沿江心对称分布的情况,则任意一点的路径偏移可以找到一个反向的等大小的偏移,因此总时间不变。
另外,按照最优的游泳策略,在沿江心对称的2点的游泳者的速度方向一定是相同的。这可以用反证法得知:因为水速对称,假设有一最优策略,其任意一点的策略情况如果与对称点的策略情况不同,则用时不同,一个一定优于另一个,则在后一个点改用前一点的策略可以节省时间,这说明原策略不是最优策略,产生矛盾。
进而,在忽略水速连续变化时加速度用时产生的路径偏移作用时的路径可以连续变化,涵盖所有可能路径,如果考虑偏移作用,则可以映射到所有实际路径。此时如果最优路径映射到的实际路径不是最优的,则存在另一个最优实际路径用时更短,与其对应的忽略水速连续变化时加速度用时产生的路径偏移作用时的路径用时也相应更短,则在忽略加速度作用时的最优路径不是最优的,产生矛盾。
综上,在水流速度变化情况与江心对称时,忽略水速连续变化时加速度用时产生的路径偏移作用时的路径策略为最优策略,采取此策略是的用时为最短用时。
下面回到方程,由于X、Y、、给定,可以通过⑾解出。游泳者用时可以将代入⑿可以求得t,游泳者在任意一点的沿江方向速度可将代入⑨求出,过江方向的速度可将求得的沿江方向速度带人④求出。
在此问中:
X=1000
Y=1160
可代入求解。
然而,方程⑾是否可解取决于代入后等式右边是否可积。在此问的条件下,虽然右边可积,方程可解(方程必有实数解,因为式中各量都有对应的物理意义),但积分、求解异常复杂(我们尝试用mathmatica软件求解此问9小时未出结果)。如果方程⑾右边不可积则根本无法求解。
由于在实际中,我们需要的是一个可以指导游泳者游泳方式的具体实数解,而且游泳者的用力方向会有误差,因此得到一个有一定精确性的实数解即可。在讨论具体算法之前先对方程的数值特征进行一些分析。
由的定义可知,将代入有,即。可以看到,这一条件也是⑾⑿的分母不为0的条件。整理得恒成立,由于是关于y的在一个给定区间内的连续函数,因此若设则有:
,则和 同大于b或同小于a。的具体情况随a、b、的大小关系不同而不同。
由于使用程序计算,则可以给一个较宽的范围,由于与实际物理意义有关,必有唯一实数解,则当它使时,必不为解,只要跳过检验下一个值即可,因此在中搜索的值。(例程见附录)
因而在一较小范围内。
由的意义可知,应当有唯一的实数解。
又因为的定义域使的分母不为0。
则设函数,用计算机程序,以为初始区域,通过判断与X的关系缩小的域,通过反复判断得到近似的。
根据可以确定任意一点的X方向的速度。从而人的速度与过江的垂直方向的夹角。又因为是关于y的函数,所以有
经实验得(精度参数acute=11600,r_acute=10000)
此时用时
用mathmatica作关于y的函数简图为(横坐标为人距离出发岸的距离,单位是米;纵坐标为游泳方向与垂直岸边方向的夹角(负值为向上游,正值为向下游),单位是弧度;;由于有切割拉伸,下图横纵坐标不成比例):
5、竞渡策略
抢渡长江挑战比赛吸引众多国内外不同水平的游泳爱好者,这项赛事勇气与智慧的结晶.选手策略的选择是比赛成败的关键.选手首先要了解当日的水流速度,和比赛全程.通过计算竞渡区域宽度与自身速度的比值以及水平方向的距离与水流速度的比值,比较两者的大小,如果前者大于后者,选择逆游否则选择顺游.参赛者根据自身的游泳速度,选择游泳的方向,速度越大,游泳者与水流的夹角越大,竞渡的过程中,选手可以依据武汉长江大桥的某个桥墩作为参照物,始终向该方向抢渡,这也是比赛叫做抢渡的原因,基于水流抢渡.在离终点较近时,及时调整方向,由此可以在到达终点的前提下,最快到终点.
具体来说:首先要估算如果自己不考虑其他情况向对岸游是会达到终点的上游还是下游。
如果到达的是下游,则必须用一定的策略减少江水度自己的作用,即在刚出发时先向上游斜向游动,在江心的地方水速较大,应向着对岸全力游动,“不要和江水纠缠”,迅速通过,快到对岸时再向上游斜向游动,准确到达目标。
如果到达的是上游,则必须用一定的策略增加江水度自己的作用,同时又不浪费过多时间。因此应在刚出发时先主要向对岸游动,在江心的地方水速较大,应向下游斜向游动,增加高速的江心水流对自己的作用时间,缓慢通过,等走过了沿江方向的大部分路程后,再主要向对岸游动,准确到达目标。
如果想要游出最好成绩,则应先调查江面水速发布情况,自己游泳情况,然后根据第四问中给出的方法详细制定最佳游泳路线,反复练习,准确按最优方案游,则可发挥最佳水平。
6.模型运用的推广.
可以把任何在流体中运动的、有自身动力的物体看成游泳者,把要通过的有一定运动速度的流体看成长江,求得其通过流体的最快、最省燃料的方法。
飞机通过气流,船舶、潜艇通过湍流等都可以借鉴这一方法求得最优通过方法。
参考文献
【1】 姜启源.数学模型(第三版).北京:高等教育出版社,2003.
【2】 韩中庚.数学建模竞赛——获奖论文精选与点评.科学出版社.2007.
模型的优缺点及改进方向
模型的优缺点
(1) 由于关于水流速度方面的数据的欠缺,在考虑水流速度随着位置不同而不同时,考虑得不够精确.
(2) 由于没有关于当时大气阻力、地转偏向力等环境的数据,使得模型单一地只考虑了水流速度这一个影响因素,不够接近实际.
(3) 模型具有一般性,只在一定条件下适用于有动力物体通过已知运动情况的流体区域的问题.
(4) 此模型假设游泳者速度、质量等因素不变,然而,在实际中这些因素是可变的,推广到类似情况时(比如船舶、飞机)这些因素的变化更为明显。模型的适用性有限。
(5) 我们只证明了:在水流速度变化情况与江心对称时,用这一方法求得的策略是最优的;但如果水流速度变化情况与江心不对称,并考虑水速连续变化时加速度用时产生的路径偏移作用,则这一策略不一定是最优的。进一步的分析需要深入到运动过程中的力学关系讨论。
(6) 给出的符号算法求解困难。程序算法,在精度要求较高时,由于涉及到极小的浮点数与极大的浮点数相运算,则由于舍小数导致的误差较大,甚至可能出现“机器零的情况”无法满足高精度计算的要求。
模型的改进方向
可以考虑运动物体功率不变,运动速度变化的情况,这样模型的实用性更强。
水流速度变化情况与江心不对称时的最优策略问题有待探讨。
简化求解计算的方法,使模型更有实用性。
附录
第四问中提出了计算机求解近似值算法,下面是用C语言写的例程,例程作为一个给定参数和自带输出语句的独立程序给出,如有需要,可以通过修改为函数输入参数输出结果。
#include "stdafx.h"
#include "math.h"/*计算中要用到开平方计算,需要调用的头文件*/
int main(int argc, char* argv[])
{double vh, r_acute, dr, r_max, r_min, r_vary, x, y, dy, acute, result, r_vary_m,r_vary_t,r_vary_a,tt;
double vw(double vary_y);
double integrate(double vh, double r, double dy, double y); / *求⑾右边的函数声明*/
double integrate_t(double vh, double r, double dy, double y); / *求⑿的函数声明*/
y = 1160;
acute = 1160;
r_acute = 1000;
x = 1000;
vh = 1.5;
dy = y / acute;
dr = 1 / vh / r_acute;
r_max =5;
r_min = -5;/*由于程序通过判断自动剔出不符合的值,可以给一个较大的范围,或者此句可以写成求的最大最小值然后结合给出取值范围的语句。而且这种算法在的值域离散时也可求解,增加了程序的健壮性。*/
r_vary = r_min;
r_vary_m = integrate(vh, r_vary, dy, y) - x;
r_vary_a=r_vary;
loop_m:r_vary=r_vary+dr;
r_vary_t = integrate(vh, r_vary, dy, y) - x;
if(fabs(r_vary_t)<fabs(r_vary_m)){r_vary_a=r_vary;r_vary_m=r_vary_t;};
if(r_vary<=r_max){goto loop_m;};
out_m: result = r_vary_a;
tt=integrate_t(vh,r_vary_a,dy,y);
printf("r=%lf\n",result);/*输出*/
printf("time=%lf\n",tt); /*输出时间*/
return 0;
};
double vw(double vary_y) / *关于的函数,具体情况具体给出,这里的函数是第四题中的函数代码*/
{double h;
if ((vary_y >= 0) && (vary_y < 200)) { h = 2.28 * vary_y / 200;};
if (vary_y >= 200 && vary_y <= 960) {h = 2.28;};
if (vary_y>960){h = 2.28 * (1160 - vary_y) / 200;};
return h;};
double integrate(double vh, double r, double dy, double y)
{double vary_y, c, b;
vary_y = 0;
b=0;
back: c = vw(vary_y);
if((1 + r * c) * (1 + r * c) - r * r * vh * vh<0){goto out;};/*剔出错误值,由于此时返回值为0,与目标值1000相差很远,不会发生错误,然而如果目标值接近0,则应在标签out后加“b=100;”(或随便一个绝对值较大的数),避免发生错误*/
b = b + (r * (c * c - vh * vh) + c) * dy/ (vh * sqrt(((1 + r * c) * (1 + r * c) - r * r * vh * vh)));
vary_y = dy + vary_y;
if (vary_y > y) { goto out;};
goto back;
out: return b;};
double integrate_t(double vh, double r, double dy, double y)
{double vary_y, t, c;
vary_y = 0;
t=0;
back_t: c = vw(vary_y);
t = t + (1 + r * c) / (vh * sqrt((1 + r * c) * (1 + r * c) - r * r * vh * vh)) * dy;
vary_y = dy + vary_y;
if (vary_y > y) {goto out_t;};
goto back_t;
out_t: return t;};
- 16 -
展开阅读全文