Построение функции Бесселя в MATLAB - PullRequest
3 голосов
/ 05 мая 2010

В MATLAB как вы строите

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

где а = 2 * пи J1 - функция Бесселя 1-го рода и r = sqrt (x ^ 2 + y ^ 2)

Это должно быть построено в 3D, то есть вроде пузыря (не знаю, как это сделать)

1 Ответ

10 голосов
/ 05 мая 2010

Используйте besselj --- функцию Бесселя первого рода --- для генерации J1. Я полагаю, вы должны изменить a и r, чтобы создать "пузырь".

Я сгенерировал следующее, варьируя x и y из -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').

alt text

Сетка

alt text

...