Munk声速剖面 声线绘制(matlab)
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]