3

MATLABではどのようにプロットしますか

f(r) = { 2*J1(a*r) / r }^2

ここで、a = 2*pi、J1 は第 1 種ベッセル関数、r = sqrt(x^2 + y^2)

これは 3D でプロットする必要があります。つまり、泡のようになります (これを行う方法がわからない)。

4

1 に答える 1

10

besselj --- 第 1 種 Bessel 関数 --- を使用して を生成しますJ1。変化させて「バブル」を生成する必要があると思いaますr

meshing points を変化させxyfromおよび plotting することにより、次のように生成しました。これがあなたの望むものかどうかはわかりません。-1:0.01:1(x,y,f)

コード

a = 2*pi;
[X Y] = meshgrid(-1:0.01:1,-1:0.01:1);
R = sqrt(X.^2+Y.^2);
f = (2*besselj(1,a*R(:))./R(:)).^2;
mesh(X,Y,reshape(f,size(X)));
axis vis3d;

ログプロット

Doresdoom の提案、私は に置き換えaxis vis3d;ましたset(gca,'Zscale','Log')

代替テキスト

メッシュ

代替テキスト

于 2010-05-05T02:30:38.037 に答える