TOP

用到极坐标。
我的想法是,t=0时,老鼠距离圆心距离为X,与半径夹角为SIGMA,背对猫。
接下去就是计算,老鼠速度在半径方向上的分量的积分等于半径+X的时候,猫的速度(只有切线方向的分量)的积分到达老鼠对着的那个点,就能追上,否则追不上。
如果简化问题,设开始阶段老鼠就在圆中心的话应该好算一些。
楼主有没有什么悬赏啊?:)

TOP

原帖由 驴子 于 2006-7-9 12:55 发表
印象中老鼠是在水池中间

走的路线是条弧线,老鼠每一时刻逃跑的方向是它和猫当前位置连线的反方向

其实老鼠就在原地打转,猫理论上就要开始追了^_^让猫跑上N小时就可以脱身了

TOP

原帖由 驴子 于 2006-7-9 13:01 发表

能不能在圆心用matlab模拟一下就可以了

让狗狗做一个,然后帖上来lol.gif

这个太赖了,大家先用解析法做试试看。tongue.gif

TOP

原帖由 zizidodoII 于 2006-7-9 13:22 发表


对哦  那 jiejiedog的算法估计要换一下了 我考虑只有当猫过了 1/4圆周的时候 才开始切线方向运动 靠 那不在圆心的就更复杂了…… 晕了

我的不用换,我就是这么考虑的呀,所以sigma在不停的变。
楼上有道理,可以考虑从圆心开始,简化问题

TOP

原帖由 zizidodoII 于 2006-7-9 13:29 发表



"我的想法是,t=0时,老鼠距离圆心距离为X,与半径夹角为SIGMA,背对猫。
接下去就是计算,老鼠速度在半径方向上的分量的积分等于半径+X的时候,猫的速度(只有切线方向的分量)的积分到达老鼠对着的 ...

你的画图技术真强!用鼠标画的么?

TOP

我先用差分方程算了一下,解析法还没做。
从图上看,老鼠怎么也逃不了了。
我换了好几个初始条件,结果都是一样的。

[ 本帖最后由 jiejiedog 于 2006-7-9 14:47 编辑 ]

temp.jpg (103.39 KB)

temp.jpg

TOP

原帖由 toothy 于 2006-7-9 14:46 发表
题目本身没有定义清楚,猫(鼠)怎样决定向左或向右追(游)
所以题目还缺乏一些条件,如果先假设:

1。猫和鼠都足够聪明,以致于他们能分别根据任意一时刻两者的位置,计算出下一步该向那个方向捕捉(逃生)。。
2。老鼠可以在无穷的时间内在水池中游动。  

1。关于猫的运动方向,以他和老鼠的连线延长到圆弧的点和猫本身所在位置的点把圆分成两个弧,可以设定猫必定选择劣弧追击。如果开始阶段两个弧都是180度,那么随便选一条追就可以。事实上由于猫的速度很快,不会出现劣弧变成优弧优弧变成劣弧。
2。那是肯定的啦lol.gif

TOP

原帖由 zizidodoII 于 2006-7-9 14:52 发表



初始条件都是默认在圆心?  如果不在圆心还是能逃的吧 另外别上来就跟猫的切线走啊 现象径向反方向走  知道猫的切线和径向反方向平行才开始切线吧 估计有难度 jjd 靠你了

从头到尾我都没有考虑过切线的问题啊。我一直设定老鼠的屁股对着猫的位置。思路如下,也许有错误,仅供参考。

clear
clc
close all

R=50;

V_mouse=10;
V_cat=4*V_mouse;

Delta_t=0.1;
t=0:Delta_t:7;

% for cat
Phase_cat=V_cat*t/R;

S_cat=[R*cos(Phase_cat); R*sin(Phase_cat)];

% for mouse
k=1;
Phase_mouse=pi;
CosValue_start=1;
for k=1:length(t);
    if k==1
        S_mouse(1,k)=V_mouse*cos(Phase_mouse)*Delta_t;
        S_mouse(2,k)=V_mouse*sin(Phase_mouse)*Delta_t;
    else
        S_mouse(1,k)=S_mouse(1,k-1)+V_mouse*cos(Phase_mouse)*Delta_t;
        S_mouse(2,k)=S_mouse(2,k-1)+V_mouse*sin(Phase_mouse)*Delta_t;  
    end
%   Delta_Phase_mouse=atan((S_cat(2,k)-S_mouse(2,k))/((S_cat(1,k)-S_mouse(1,k)));
    Num=S_cat(2,k)-S_mouse(2,k);
    Den=S_cat(1,k)-S_mouse(1,k);
        
    CosValue=Den/sqrt(Den^2+Num^2);
    if CosValue_start<CosValue
        Delta_Phase_mouse=2*pi-acos(CosValue);
    else
        Delta_Phase_mouse=acos(CosValue);
    end
    Phase_mouse=pi+Delta_Phase_mouse;
    CosValue_start=CosValue;
end
Phase_circle=0:(2*pi/1000):2*pi;
Circle=[R*cos(Phase_circle); R*sin(Phase_circle)];

plot(Circle(1,:), Circle(2,:), 'g');
hold on
plot(S_cat(1,:), S_cat(2,:), 'b', S_mouse(1,:), S_mouse(2,:), 'r','LineWidth', 2)
legend('Circle','Cat','Mouse')
grid on

TOP

如果老鼠和猫的连线在直径上,但是老鼠不在圆心,那么老鼠满足某些条件的时候可以逃出去,譬如图中

TEMP2.jpg (98.31 KB)

TEMP2.jpg

TOP