我已經在C++中計算了係數an,bn(100,T = 2 * pi)並且使用少量源檢查它們是否正確。現在我嘗試產生用於給定的示例性函數的傅里葉級數圖表中的Scilab:傅立葉級數圖生成從給定的係數an,bn在Matlab(Scilab)
(X + 2)* ABS(COS(2 * X *(X-π/ 6)))
M=csvRead(filename, ";", [], 'double')
n=size(M,1)
for i = 1:n
A(i)=M(i)
B(i)=M(i + n)
end
function series=solution(x)
series=A(1)/2;
for i = 2:n
series=series+(A(i)*cos(i*x)+B(i)*sin(i*x));
end
endfunction
function series=solution2(x)
series=(x+2).*abs(cos(2.*x.*(x-%pi/6)));
endfunction
x = -%pi:%pi/100:%pi
plot2d(x, solution(x), 3)
x2 = -%pi:%pi/100:%pi
plot2d(x2, solution2(x2), 4)
下面是結果:(?反轉)
它清楚地看這種趨勢是確定的,但開始和期末是錯誤的。 您是否在Scilab代碼中看到任何問題?什麼會導致問題 - 函數解(x)中sin/cos的值?我應該提供一個bn值並檢查那裏的錯誤計算嗎?
你已經解決了這個問題嗎? – Attila