空灵学院

 找回密码
 立即注册

扫一扫,访问微社区

搜索
查看: 1332|回复: 0

Maple之鱼雷击舰问题

[复制链接]

1137

主题

1761

帖子

7558

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7558
发表于 2014-1-14 16:30:22 | 显示全部楼层 |阅读模式
我方正前方1海里处发现一敌舰以0.4海里/分速度横向航行,立刻发射制导鱼雷,若鱼雷速度为0.8海里/分,求敌舰航行多远及何时被鱼雷击中。

模型1:(仿真模拟)
我方位置取为[0,0],敌舰初始位置为[1,0],t时刻敌舰及鱼雷位置为[1,Zt]、[Xt,Yt],取时间间隔为s,计算不同时刻鱼雷敌舰位置,求出何时击中。
假设:制导鱼雷始终对准敌舰。则鱼雷t时刻x轴方向速度

Vx=0.8*(1-Xt)/[(1-Xt)^2+(Zt-Yt)^2]^0.5,y轴方向速度
Vy=0.8*(Zt-Yt)/[(1-Xt)^2+(Zt-Yt)^2]^0.5,
Zt+s=Zt+0.4*s,Xt+s=Xt+s*Vx,Yt+s=Yt+s*Vy

>restart:
>x[1]:=0:y[1]:=0:z[1]:=0:a[1]:=0.8:b[1]:=0:
>for t from 2 to 60 do z[t]:=z[t-1]+0.4*0.1: x[t]:=x[t-1]+a[t-1]*0.1: y[t]:=y[t-1] +b[t-1]*0.1:a[t]:=0.8*(1-x[t-1])/sqrt((1-x[t-1])^2+(z[t-1]-y[t-1])^2):b[t]:=0.8*(z[t-1]-y[t-1])/sqrt((1-x[t-1])^2+(z[t-1]-y[t-1])^2)^0.5:if 1-x[t]<0.001 then break fi od:u:=seq([x,y],i=1..60):v:=seq([1,z],i=1..60):'t'=t;'z'=z[t];
>PLOT(CURVES(,COLOUR(HUE,1)),POINTS(v,COLOUR(HUE,0.2)),VIEW(0..1,0..1));

(微分方程模型)

>dsolve({diff(y(x),x$2)=sqrt(1+(diff(y(x),x))^2)/(2-2*x),y(0)=0,D(y)(0)=0},y(x)):allvalues(");

思考问题:如果不是制导鱼雷,只是普通直线发射鱼雷,如何才能击中敌舰?

回复

使用道具 举报

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

本版积分规则

Archiver|空灵学院 ( 11033542 )

GMT+8, 2024-5-3 22:47 , Processed in 0.025232 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表