Построение функции Бесселя в MATLAB

В MATLAB как ты сюжет

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

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

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

1 ответ

Используйте 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'),

альтернативный текст

меш

альтернативный текст

Другие вопросы по тегам