2015-07-02 55 views
0

這裏是我的代碼:爲什麼MatLab打破某些變量輸入?

function test(n) 
r = (0:1000)/n; 
Phi = 2*pi*r; 
[x,y] = pol2cart(Phi,r); 
plot(x,y) 
end 

這裏當n = 100,10,1的順序輸出: enter image description here

做什麼用的最後圖形發生了什麼?它爲什麼嚇壞了? >> ...

更有趣的形狀後,N = 1: 這裏,n = 0.9,0.8,0.7,0.6

enter image description here

回答

5

在數學上,最應該連接點(N權,0)其中n是一個介於0和1000之間的自然數。由於浮點精度,它略微偏離0,並且對於y值,get的非常小的值接近零。請注意10^-x(無法讀取x,因爲它很小),它表示y軸的縮放比例。這些數字非常小。

對於任何值< 4幾乎不可能識別原始螺旋,下面是一個顯示四個不同n值的內部20次旋轉的圖。

enter image description here

對任意的n值小,你會看到類似的輸出爲n = 0.01,但對於任何大的n,它只是一些走樣要麼是一條線(如果您在放大看起來因爲精度誤差的粗足夠)或一些螺旋。

代碼用來繪製:

r = 0:.01:20; 
Phi = 2*pi*r; 
[x,y] = pol2cart(Phi,r); 
plot(x,y,'r') 
hold on 
r = 0:.9:20; 
Phi = 2*pi*r; 
[x,y] = pol2cart(Phi,r); 
plot(x,y,'g') 
r = 0:1:20; 
Phi = 2*pi*r; 
[x,y] = pol2cart(Phi,r); 
plot(x,y,'b') 
r = 0:1.1:20; 
Phi = 2*pi*r; 
[x,y] = pol2cart(Phi,r); 
plot(x,y,'black') 
legend({'0.01','.9','1','1.1'}) 
+0

我不明白... N = 1.1工程和n = 0.9 ...作品有什麼錯n = 1或N = 1.0? – Raksha

+0

我加了一些解釋。 – Daniel

+0

有趣....我想我有點得到它...有沒有一種方法來輸出圖形與交互式滑塊,以便我可以調整'n'的值,並看到圖形如何實時更改? – Raksha

相關問題