我是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
我解释一下:该函数代表空间中声波的力量。我已多次尝试绘制这个但是我总是在情节中得到一个点。
答案 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)