我是Matlab的初学者,想绘制一个函数的2D图片,其真实部分为0。但是我的图片却是一条直线。
我正在Mac OS上使用Matlab 2019a。以下是Matlab中的代码。
syms a b real;
k=a+b*j;
y=(1+k.^2+sqrt((1+k.^2).^2-0))/2;
z=real(y);
z=0;
a=linspace (-100,100);
b=linspace(-100,100);
plot(a,b)
说明:
如代码中所示,k是一个复数,a是它的实数部分,而b是它的图像部分。顺便说一句,函数y中有一个“ 0”。实际上,这是一个未知数,我将尝试使用它的所有值。现在的目标是在y的实部为0的情况下以a和b为两个轴来绘制2D图片。我的代码有什么问题?
@Adriaan感谢您的建议,我将代码修改如下:
[a,b]=meshgrid(-100:1:100,-100:1:100);
z=(1+(a+b*i).^2+sqrt((1+(a+b*i).^2).^2-0))/2;
surfc(a,b,real(z));
xlabel('real k');
ylabel('image k')
它确实产生了我需要的结果。但是,函数z中有一个“ -0”。实际上,它是一个未知数B,如何将real(z)= 0的曲线投影到平面[a,b]上?也许还可以在[a,b]上绘制其他B的曲线?