Привет! У меня есть интеграл для функции, которую я рисую в полярных координатах при фиксированном полярном угле тета (th). Как написать трехмерный график для R в полярных координатах (изменения углов a и th)? Я сделал это с помощью pol2cart, но это не лучший способ представить результат. Если бы кто-нибудь помог мне построить график с помощью polar3D или чего-то подобного, было бы здорово. Спасибо.
очистить все
s = 3;
n = 1;
r = 1;
t = 0.1;
ч = 0:10:360; % угол тета
а = 0:1:360; % угол альфа
б = квадрат (2*n*t);
L = sqrt((4*t+r²)/3);
fun = @(k,u,c,a) ((k.²).*exp(-1.5*k.²)).*((u.²).*(1-u.²).*exp (-(b.*u).²).*(cos(s.*k.*u.*cos(a)/L))).*(((cos(c)).²).*( cos(k.*sqrt(1-u.²).*(s.*sin(a).*cos(th).*cos(c)+s.*sin(a).*sin(th). *грех(с))/(L))));
f3 = arrayfun(@(a)integral3(@(k,u,c)fun(k,u,c,a),0,Inf,-1,1,0,2*pi),a);
B = ((6*sqrt(6)*(b³))/(erf(b)*(pi²)))*(1-(3/(2*b²))*(1-((2*b* exp(-b²))/(erf(b)*sqrt(pi)))))^(-1);
R = B*f3;
фигура(3)
полярный (а, R);
Вот как это выглядит в декартовых координатах (тета в радианах), но в polar3D должно выглядеть намного лучше.
ПРИМЕЧАНИЕ.
Matlabsolutions.com предоставляет последнюю справку по домашним заданиям MatLab, справку по назначению MatLab, помощь по финансам для студентов, инженеров и исследователей в нескольких отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для B.E, B .Tech, ME, M.Tech, Ph.D. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.
Здесь это занимает слишком много времени (это заняло 336,315050 секунд — 00:05:36,315049 — только что в MATLAB Online), однако он отображает поверхность на «синтетической» полярной координатной оси в 3D. Было бы относительно просто изменить координаты оси Z (или полностью их исключить). Первоначальная проблема заключалась в том, что код для полярных осей был неполным. Теперь он работает, как работал в моем предыдущем коде.
Попробуйте это:
s = 3; n = 1; p = 0.1; % this is time tv = 0:10:360; %3; % this is angle theta for polar rotation r = 1; a = 0:10:360; a = deg2rad(a); tv = deg2rad(tv); tic for k = 1:numel(tv) t = tv(k) b = sqrt(2*n*p); L = sqrt((4*p+r^2)/3); fun = @(k,u,c,a) ((k.^2).*exp(-1.5*k.^2)).*((u.^2).*(1-u.^2).*exp(-(b.*u).^2).*(cos(s.*k.*u.*cos(a)/L))).*(((cos(c)).^2).*(cos(k.*sqrt(1-u.^2).*(s.*sin(a).*cos(t).*cos(c)+s.*sin(a).*sin(t).*sin(c))/(L)))); f3 = arrayfun(@(a)integral3(@(k,u,c)fun(k,u,c,a),0,Inf,-1,1,0,2*pi),a); B = ((6*sqrt(6)*(b^3))/(erf(b)*(pi^2)))*(1-(3/(2*b^2))*(1-((2*b*exp(-b^2))/(erf(b)*sqrt(pi)))))^(-1); R = B*f3; ta = t*ones(size(tv)); [x,y,z] = pol2cart(a, R, ta); X(k,:) = x; Y(k,:) = y;
СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ
https://matlabarticlesworld.blogspot.com/2023/06/how-to-make-surface-in-polar.html