|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
matlab代码
send = 100000;
ntheta = 57;
theta = pi / 180 * linspace( -14.0, 14.0, ntheta );
zs = 1000.0;
c0 = 1501.4;
hold on;
for ith = 1:ntheta
x0 = [ 0.0 zs cos( theta( ith ) ) / c0 sin( theta( ith ) ) / c0 ];
[ s, x ] = ode45( 'rayf', 0.0, send, x0 );
plot( x( : , 1 ), x( : , 2 ),'r' );
hold on;
end
hold off;
xlabel( 'Range (m)' )
ylabel( 'Depth (m)' )
view( 0, -90 );
function xdot = f( s, x )
eps = 0.00737;
c0 = 1500;
z = x( 2 );
xt = 2 * ( z - 1300 ) / 1300;
c = c0 * ( 1 + eps * ( xt - 1 + exp( -xt ) ) );
c2 = c^2;
dxtdz = 2 / 1300;
cz= c0 * eps * dxtdz * ( 1 - exp( -xt ) );
cr = 0;
xdot = zeros( 4, 1 );
xdot( 1 ) = c * x( 3 );
xdot( 2 ) = c * x( 4 );
xdot( 3 ) = -cr / c2;
xdot( 4 ) = -cz / c2;
上大学的时候“水声学原理”上有类似的图,现把程序写上,与大家分享。 |
评分
-
1
查看全部评分
-
|