#範例11-2:比較不同n級數的傅立葉級數Fourier Series去模擬三次方多項式的線型效果 #(1)若是n級數太少(n=5),就會形成鋸齒狀模擬結果 #(2)若是n級數夠大(n=40)),就會形成平滑化的模擬結果 from sympy import * from sympy.interactive import printing printing.init_printing(use_latex=True) x = symbols('x') f = Function('f')(x) f = x**3 + x**2 + x +1 #語法:fourier_series(要模擬的f函數, (x的範圍, -pi, pi)) s = fourier_series(f, (x, -pi, pi)) #不太可能去使用n=∞去計算,在實際計算時要截短級數truncate(指定n=數字) fs5 = s.truncate(n=5) fs10 = s.truncate(n=40) #畫圖 p1 = plot(fs5,fs10,show=False) p1[0].line_color = 'red' p1[1].line_color = 'green' p1[0].label = '$fourier(n=5)$' p1[1].label = '$fourier(n=40)$' p1.legend = True p1.show()