- 最后登录
- 2013-11-11
- 在线时间
- 873 小时
- 阅读权限
- 40
- 注册时间
- 2008-9-15
- 积分
- 1194
- 帖子
- 924
- 精华
- 6
- UID
- 44804
- 性别
- 保密

- 积分
- 1194
- 帖子
- 924
- 精华
- 6
- UID
- 44804
- 性别
- 保密
|
要求ABCD坐标随时间变化的方程,不一定要用直角坐标(x,y,z)的方法。可以用经纬度的方法。经度j,纬度w.
x、y、z和j、w满足以下关系式。
x=cosw*cosj
y=cosw*sinj
z=sinw
-------------------------------------------
ABCD的经纬度随时间的变化,只要知道一只蚂蚁的方程即可,其他蚂蚁可以用它推出。
假设任何时候,A的坐标(j1,w1),B(j2,w2),C(j3,w3),D(j4,w4).
那么以下任何时候都成立:
w1=w3=-w2=-w4
j2=j1-π/2 j3=j2-π/2 j4=j3-π/2 (即任何蚂蚁和自己所追的对方经度相差永远等于90度。)
------------------------------------------------
对于B蚂蚁:
因为 dw=-sinw/ sqrt(1+(sinw)^2)*dt
所以 dt=-sqrt(1+(sinw)^2)/sinw*dw
对上式积分就可求得B蚂蚁到达任何位置时的时间。
t=∫(w0,w){ -sqrt(1+(sinw)^2)/sinw} ∫(a,b){f(x)}表示对f(x)从a积到b的定积分。
再加上 j=ln(sqrt(2))+ln(tan(w))
就可表示B到达任何位置的时间t。
而对 -sqrt(1+(sinw)^2)/sinw 的积分我不会求精确函数,不过可以求近似值。
另外当蚂蚁绕球一圈时,w已接近数值0,所以 sqrt(1+(sinw)^2)近似等于1
对于只要求-1/sinw的积分即可,求出的积分=-ln(tan(w/2))
蚂蚁绕一圈时,j=-2*π,此时w=atn(e^(-2π)/sqrt(2))=0.00132048065157392182498809843643
初始w0=0.61547970867038734106746458912399
绕一圈所花费的时间=∫(0.61547970867038734106746458912399,0.00132048065157392182498809843643){ -sqrt(1+(sinw)^2)/sinw} =6.265
对于绕一圈以上的可以用以下近似函数表示:
t=6.265+(-ln(tan(w/2)+ln(tan(0.00132048065157392182498809843643/2))
即t=-ln(tan(w/2)-5.106
也可写成 w=2*atn(e^(-t-5.106)) 式a
加上 j=ln(sqrt(2))+ln(tan(w)) 式b
就可表示B蚂蚁位置与时间的关系式.
[ 本帖最后由 lulijie 于 2011-9-6 22:10 编辑 ] |
|