题意:
有一个船在(0,a),船头的方向一直指着(0,0)位置,速度是v1,然后有一个水流速度是v2,朝着x轴正半轴方向流。
问你什么时候船到达(0,0)位置
题解:
首先这个题微分方程强解显然是可以的,但是可以发现如果设参比较巧妙就能得到很方便的做法。
先分解v1,
设船到原点的距离是r,容易列出方程
dtdr=v2cosθ−v1
dtdx=v2−v1cosθ
上下界都是清晰的,定积分一下:
0−a=v2∫0Tcosθdt−v1T
0−0=v2T−v1∫0Tcosθdt
直接把第一个式子代到第二个里面
v2T=v2v1(−a+v1T)
T=v12−v22v1a
到达不了的情况就是v1<v2(或者a>0且v1=v2)。
#include<bits/stdc++.h>
using namespace std;
int main()
{
double a,v1,v2;
while(~scanf("%lf %lf %lf",&a,&v1,&v2))
{
if(a==0)
cout<<"0.00000"<<endl;
else if(v1<=v2)
{
cout<<"Infinity"<<endl;
}
else
{
printf("%.10f\n",a*v1/(v1*v1-v2*v2));
}
}
return 0;
}