MATLAB 绘制复杂表示的一系列图形

MATLAB ploting a range of graphic for complex representation

我正在尝试在 window 为了理解它的几何形状。尽管如此,我还是有界的 凭借我在 matlab 方面的技能...我的 objective 是创建一个程序 真正能够让任何人都能理解几何的 功能,展示它的每个角度。

我正在尝试使用相同的 window:

  1. 实部和虚部的表示,使用黎曼曲面。

  1. 使用同一事物的亮度和颜色表示(不像在 link 中绘制幅度和相位)。

这个link,大佬的想法不错,就是觉得剧情不够流畅,颜色也怪怪的。。。

  1. 然后在另一个 window 中做同样的事情,但不是绘制实部和虚部,而是绘制幅度和相位。

  2. 最后,在最后一个 window 中,我真的很想绘制一些类似于我们在 wolfram alpha 上看到的东西(这是 1/z 的示例):

到目前为止我发现了什么:

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)而是二次的,就像实部一样: x^2-y^2 ... 绘制恒等式时出现同样的问题,角度范围很奇怪……它从 -15 到 15……

此外,我真的很喜欢使用这种彩虹色的一系列传统颜色,从蓝色到红色:

而且我不知道如何更改颜色...我也不知道如何更改绘图右侧的比例范围以使其按照 "pi" 而不是弧度...我想它会更具可读性...

好吧,如果你有什么想法来实现这个技巧,我真的很乐意 喜欢在实践中做到这一点 :) 我知道我问了很多东西,但即使它只是紧缩的 完整的代码,它会很有用,我会尝试统一所有内容。

谢谢大家!

好吧,要经历的事情很多,所以在我尝试理解其余部分之前,让我们先了解简单的事情。

改变颜色渐变: 在声明

之后立即添加这样的代码
 colorbar
 colormap jet; %gradient from blue to red

将刻度改为圆周率的数字: 在绘图部分只需添加代码,它就可以解决问题

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

剩下的,我需要一些时间,或者其他人可以尝试回答。