魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
楼主: 钟七珍
打印 上一主题 下一主题

球面上的四只蚂蚁 [复制链接]

Rank: 2

积分
282
帖子
249
精华
0
UID
1289657
性别
保密
51#
发表于 2011-9-6 11:52:14 |只看该作者
楼上分析得很好,如果能有这四个点的坐标随时间变化的方程就最好了!

题中的四只蚂蚁位置对称,但是运动路径并不是两两对称,指向性为A→B→C→D→A,其中A→C、B→D方向空缺,这就造成直线AC、BD的特殊性,AC⊥BD,这两条直线可以确定一个平面,这个平面平行于AC和BD,且和AC、BD的距离相等。

使用道具 举报

Rank: 4

积分
1194
帖子
924
精华
6
UID
44804
性别
保密
52#
发表于 2011-9-6 21:59:43 |只看该作者
要求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 编辑 ]

使用道具 举报

Rank: 2

积分
282
帖子
249
精华
0
UID
1289657
性别
保密
53#
发表于 2011-9-6 22:43:51 |只看该作者

回复 52# 的帖子

你的计算表达真是太好了,起初我还以为这个函数表达式不会很复杂(幂指数、对数、三角、反三角等函数复合)。
另外,对于球面位置坐标,使用经纬度来表示比用直角坐标要简化很多,并且便于理解。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|魔方吧·中文魔方俱乐部

GMT+8, 2024-4-25 13:26

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部