如何在MATLAB中绘制类似bessel的函数

时间:2011-07-20 09:02:37

标签: matlab plot

我是MATLAB的新手,我只知道几个基本命令。我的任务是绘制这种函数:

I(T) = ((2*J(k*r*sin(T))/(k*r*sin(T))))^2

,其中

T = angle

k = (2*pi*f)/c   (f= frequency in Hz and c is speed of sound)

r = radius

J = bessel function first kind

我解释一下:该函数代表空间中声波的力量。我已多次尝试绘制这个但是我总是在情节中得到一个点。

3 个答案:

答案 0 :(得分:3)

我假设您已在J中定义了贝塞尔函数。如果不是,第一类贝塞尔函数的MATLAB命令是besselj。您还必须指定贝塞尔函数的顺序。

您可以将匿名函数定义为

f=@(t,k,r)(2*besselj(0,k*r*sin(t))./(k*r*sin(t))).^2

并将其绘制为

T=linspace(0,pi,100);%# a sample angle vector
plot(T,f(T,k,r))     %# where k and r are values you'll have to provide

答案 1 :(得分:0)

怎么样

I = ((2*J(k*r*sin(T))./(k*r*sin(T)))).^2

答案 2 :(得分:0)

我终于找到了如何管理上述问题,这是我找到的解决方案,以防其他人可能需要它。

%MATLAB Istruction用于生成bessel的图形函数% %变量(固定值)% k = 912.91 r = 0.0215

%设置角度θ的范围 theta =( - (2/3)* pi:pi / 180:(2/3)* pi)

%第一类bessel函数的计算% J = besselj(1,k * r * sin(theta))

%计算我的功能% %注意./和。^运算符 I =((2 * J)./(k * r * sin(theta)))。^ 2

%现在使用plot命令绘制结果 情节(THETA,I)