0
我試圖繪製密度爲複平面中隨機二次monic多項式的零點密度圖。事實上,我正在密謀!但是這只是一個小小的細節,讓我感到困擾:座標軸的值與圖中的點不匹配。這是我的代碼。在Matlab中繪製密度圖時顯示正確的座標軸值
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);
現在這裏是通過該代碼生成的圖。
可以嘗試這個代碼,並檢查最大值(Re)和最大值(IM),其對應於實部的最大值(x軸)和虛部(y軸)。我有max(Re)= 1.6076(它總是接近1.5)和max(Im)= 0.9993(它總是接近1)。這些值與情節不符,這似乎是相反的。
如果我嘗試散射函數(失去密度和所有漂亮的視覺),我有正確的值。以下命令生成下圖。
scatter(Re(1,:), Im(1,:),'.')
這清楚地表明,第一曲線實際上是(不旋轉,因爲我想先)是正確的,除了軸值。我需要幫助解決這個問題。謝謝。
PS:在答案here中得到這個圖的命令。請注意那裏的評論。我明確要求解決這個問題,並得到一個。給定的解決方案實際上在某些情況下工作,但在這個失敗,我不知道爲什麼。
謝謝你的回答。我做了搜索和命令 ** imagesc(min(Re):00001:max(Re),min(Im):00001:max(Im),values,[0,10]); ** 工作得很好。你知道這個命令和你的命令有什麼區別嗎? – Integral
在image/imagesc中,只會使用x(1)/ y(1)和x(end)/ y(end),其餘這些向量完全不相關。即x可能只是[min(Re)max(Re)],您仍然可以得到相同的結果。只要你把Re作爲x和Im作爲y,你就可以走了。使用中心只是一種方法,可以保證您獲得與hist3相同的下限/上限,而不用擔心它們如何通過hist3進行實際計算。 –