2016-02-09 19 views
-1

我試圖繪製多個傅立葉級數近似的功能f(x)=(x^2-pi^2)^3,但由於某些原因,我的MATLAB只畫出最大的兩個近似的(與原始的F一起)。我怎樣才能把它繪製成4或更多?我的系列代碼是爲什麼MATLAB只繪製最大的三個功能

function [Y]=fourier(X) 
N=input('enter the value of N:') 
SN=-16*pi^6/35; 
for n=1:N 
SN=SN+96*(-1)^n/n^5*(15/n-pi^2).*cos(n*X); 
end 
Y=SN; 

和使用

plot(X,Y1,'b',X,Y2,'r',X,Y3,'m',X,Y4,'g') 

(其中易=傅里葉(X),X = [ - PI:0.01:圓周率]對於不同n中的各種近似)ISN沒有工作;也不是一個一個地繪製它們。

提前爲任何幫助,任何人都可以提供非常感謝 - 正如你可能已經注意到我是一個很業餘程序員!

+3

歡迎堆棧溢出!請理解「不工作」是永遠不夠的信息。你有錯誤嗎?如果是這樣,錯誤是什麼?如果沒有錯誤,會發生什麼,你期望什麼?你確定數據不只是重疊?嘗試改變每個圖的標記:'plot(X,Y1,'bs',X,Y2,'ro',X,Y3,'mv',X,Y4,'g>')'。你的功能,即使在'x',所以我也不會感到驚訝,如果傅立葉級數的所有其他順序是一樣的(因爲沒有一個正弦分量) –

+1

那麼有沒有錯誤,每當我試圖繪製第四功能,最近被繪製的那個(隨着命令的執行)然後消失。當一次繪圖時,只有三個繪圖。按照您的建議更改標記並不能解決問題。關於這個系列的快速收斂,我會談談你的觀點,但是以N = 10爲例,還有一些與f不同的點,這些點應該隨着每個近似而變得更少(事實上,這正是我'視覺上試圖展示)。還是要謝謝你的幫助。 –

+1

我從來沒有見過你描述的這種行爲。你能不能嘗試給你的繪圖命令添加上下文,從本質上爲我們提供一個[mcve]? (我只建議添加標記以避免線條出現,只是重疊。) –

回答

0

我沒有問題。

我修改了傅立葉函數接受輸入N

function Y = fourier(X,N) 
SN = -16*pi^6/35; 
for n = 1:N 
    SN = SN+96*(-1)^n/n^5*(15/n-pi^2).*cos(n*X); 
end 
Y = SN; 

然後,我得到的4條線路:

X = (-pi:0.01:pi)'; 
Y = [fourier(X,1), fourier(X,2), fourier(X,3), fourier(X,4)]; 
plot(X,Y) 
legend 1 2 3 4 
set(gca, 'Xlim',[-3.3, -2.3], 'Ylim',[-60,79]) 

enter image description here

+0

這並不能真正解決原始問題......是嗎?你能重現消失的新情節問題嗎? –

+0

@AndrasDeak它確實解決了OP可能創建的四個之一與另一個完全相同的事實。如果他能運行該代碼,並得到相同的結果,他的問題是從手動操作 – Oleg

+0

得挺順利,OP明確規定新的情節*做舊的消失*,並添加標記也驗證了這一點。你的例子是有用的,因爲如果它解決OP的問題作爲解決方法確實很有趣,但遲早他們會想要繪製三件以上的東西,並且他們可能會回到同樣的問題。 –