【发布时间】:2016-08-24 22:55:12
【问题描述】:
我正在尝试绘制一个具有复平面中随机二次一元多项式的零点密度的图。其实我是在谋划!但是有一个小细节困扰着我:轴的值与图中的点不匹配。这是我的代码。
n=2;
p = [1 random('Uniform', -1, 1, [1,n])]
roots(p)
z = zeros(0);
n = 2;
for j=1:10000
p = [1 random('Uniform', -1, 1, [1,n])];
R = roots(p);
z = [ z, R.' ];
end
Re = real(z);
Im = imag(z);
[values, centers] = hist3([Im(:) Re(:)],[1000 1000]);
imagesc(centers{:}, values,[0,10]);
colorbar
axis equal
axis xy
cmap = summer(max(values(:)));
cmap(1:1,:) = 0;
colormap(cmap);
现在这里是这段代码生成的图。
您可以试试这段代码并检查 max(Re) 和 max(Im),它们对应于实部(x 轴)和虚部(y 轴)的最大值。我有 max(Re) = 1.6076(它总是接近 1.5)和 max(Im) = 0.9993(它总是接近 1)。这些值与情节不符,似乎正好相反。
如果我尝试散射功能(失去密度和所有漂亮的视觉效果),我得到了正确的值。下面的命令生成下图。
scatter(Re(1,:), Im(1,:),'.')
这清楚地表明,除了轴值之外,第一个图实际上(没有像我首先想到的那样旋转)是正确的。我需要帮助来解决这个问题。谢谢。
PS: 我在答案here 中得到了制作这个情节的命令。注意那里的cmets。我明确要求解决这个问题并得到了一个。给定的解决方案在某些情况下确实有效,但在这个解决方案中失败了,我不知道为什么。
【问题讨论】:
标签: matlab plot density-plot