MATLAB 绘制复杂表示的一系列图形
MATLAB ploting a range of graphic for complex representation
我正在尝试在
window 为了理解它的几何形状。尽管如此,我还是有界的
凭借我在 matlab 方面的技能...我的 objective 是创建一个程序
真正能够让任何人都能理解几何的
功能,展示它的每个角度。
我正在尝试使用相同的 window:
- 实部和虚部的表示,使用黎曼曲面。
- 使用同一事物的亮度和颜色表示(不像在 link 中绘制幅度和相位)。
这个link,大佬的想法不错,就是觉得剧情不够流畅,颜色也怪怪的。。。
然后在另一个 window 中做同样的事情,但不是绘制实部和虚部,而是绘制幅度和相位。
最后,在最后一个 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'})
剩下的,我需要一些时间,或者其他人可以尝试回答。
我正在尝试在 window 为了理解它的几何形状。尽管如此,我还是有界的 凭借我在 matlab 方面的技能...我的 objective 是创建一个程序 真正能够让任何人都能理解几何的 功能,展示它的每个角度。
我正在尝试使用相同的 window:
- 实部和虚部的表示,使用黎曼曲面。
- 使用同一事物的亮度和颜色表示(不像在 link 中绘制幅度和相位)。
这个link,大佬的想法不错,就是觉得剧情不够流畅,颜色也怪怪的。。。
然后在另一个 window 中做同样的事情,但不是绘制实部和虚部,而是绘制幅度和相位。
最后,在最后一个 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'})
剩下的,我需要一些时间,或者其他人可以尝试回答。