MATLAB строит диапазон графики для сложного представления - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь построить различные представления одной и той же функции в окно, чтобы понять его геометрию. Тем не менее, я ограничен мои навыки в Matlab ... Моя цель состоит в том, чтобы создать программу, которая действительно в состоянии сделать любой в состоянии понять геометрию функция, показывающая каждый его угол.

Я пытаюсь иметь в том же окне: enter image description here

  1. представление вещественной и мнимой частей с использованием римановой поверхности.

Как построить сложную функцию с информацией о фазах в MATLAB с яркостью

  1. Представление с использованием яркости и цветов одного и того же (не так, как в ссылке, где они отображают величину и фазу).

enter image description here

в этой ссылке у одного великого помощника были хорошие идеи, просто я не думаю, что сюжет достаточно гладкий, а цвета странные ... Доменная раскраска (цветовое колесо) графиков комплексных функций в Octave (Matlab)

  1. И затем в другом окне то же самое, но вместо того, чтобы построить реальную и мнимую части, чтобы построить величину и фазу.

  2. Наконец, в последнем окне я действительно хотел бы нарисовать что-то вроде того, что мы видим на вольфрам альфа (это пример для 1 / z): enter image description here

Итак, что я нашел до сих пор:

https://www.mathworks.com/help/matlab/visualize/visualizing-four-dimensional-data.html?ue

и так в matlab я на данный момент могу визуализировать как на первом изображении с этим кодом:

r = (0:1:15)';                        % create a matrix of complex inputs
theta = pi*(-1:0.05:1);
z = r*exp(1i*theta);
w = log10(z)  ;                                % calculate the complex outputs



figure('Name','Graphique complexe'  , 'units','normalized','outerposition',[ 0.08 0.1 0.8 0.55]);
subplot(121)
surf(real(z),imag(z),real(w),imag(w))    % visualize the complex function using surf
xlabel('Real(z)')
ylabel('Imag(z)')
zlabel('Real(u)')
cb = colorbar;
cb.Label.String = 'Imag(v)';

subplot(122)
surf(real(z),imag(z),imag(w),real(w))    % visualize the complex function using surf
xlabel('Real(z)')
ylabel('Imag(z)')
zlabel('Imag(v)')
cb = colorbar;
cb.Label.String = 'Real(u)';

Но у меня есть одна проблема. Может быть, я ошибаюсь, но когда я строю z ^ 2, воображаемое, я думаю, не линейное (как должно быть: Im z ^ 2 = -2xy), а квадратичное, как в реальной части: х ^ 2-й ^ 2 ... Та же проблема при построении идентичности, диапазон для угла странный ... он идет от -15 до 15 ...

Более того, мне бы очень хотелось, чтобы диапазон цветов был обычным, от синего до красного, используя эту радугу цветов:

enter image description here

и я не знаю, как изменить цвета ... Я также не знаю, как изменить диапазон шкалы справа от графика, чтобы сделать его написанным в терминах "пи", а не в радианы ... я думаю, это было бы намного более читабельным ...

Хорошо, если у вас есть идея, чтобы сделать трюк, я бы действительно нравится делать это на практике :) Я знаю, я спрашиваю много вещей, но даже если это всего лишь кризис весь код, это будет полезно, и я постараюсь все унифицировать.

Спасибо всем!

1 Ответ

0 голосов
/ 30 октября 2018

Хорошо, многое предстоит пройти, поэтому давайте сначала разберемся с простыми вещами, прежде чем я попытаюсь понять все остальное.

Изменение цветового градиента: Добавьте код сразу после объявления

 colorbar
 colormap jet; %gradient from blue to red

Изменение шкалы на цифры от pi: В разделе сюжета просто добавьте код, и он должен сделать трюк

xticks([-pi -pi/2 0 pi/2 pi])
xticklabels({'-\pi','-\pi/2','0','\pi/2','2\pi'})

В остальном мне понадобится еще немного времени, или кто-то другой может попытаться ответить.

...