Làm thế nào để Python tính toán chuỗi Fourier?

Xấp xỉ Sigma điều chỉnh tổng Fourier để loại bỏ hiện tượng Gibbs nếu không sẽ xảy ra khi không liên tục. Một tổng gần đúng sigma cho một chuỗi Fourier của hàm tuần hoàn T có thể được viết là

\[s[\theta] = \frac{1}{2} a_0 + \sum _{k=1}^{m-1} \operatorname{sinc} \Bigl[ \frac{k}{m} \Bigr

trong đó \[a_0, a_k, b_k, k=1,\ldots,{m-1}\] là các chuỗi Fourier tiêu chuẩn . \[\operatorname{sinc} \Bigl[ \frac{k}{m} \Bigr]\] is a Lanczos \[\sigma\] factor [expressed in terms of normalized \[\operatorname{sinc}\] function].

ví dụ

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x, [x, -pi, pi]]
>>> s.sigma_approximation[4]
2*sin[x]*sinc[pi/4] - 2*sin[2*x]/pi + 2*sin[3*x]*sinc[3*pi/4]/3

ghi chú

Hành vi của

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.scalex[2].truncate[]
-4*cos[2*x] + cos[4*x] + pi**2/3
7 khác với
>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.scalex[2].truncate[]
-4*cos[2*x] + cos[4*x] + pi**2/3
8 - nó nhận tất cả các số hạng khác 0 có bậc nhỏ hơn n, thay vì n số khác 0 đầu tiên

Xem thêm

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.scalex[2].truncate[]
-4*cos[2*x] + cos[4*x] + pi**2/3
9

Người giới thiệu

[ R737 ]

https. // vi. wikipedia. org/wiki/Gibbs_hiện tượng

[ R738 ]

https. // vi. wikipedia. org/wiki/Sigma_approximation

cắt ngắn[n=3][source]#

Trả về n số hạng khác không đầu tiên của chuỗi

Nếu

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.shift[1].truncate[]
-4*cos[x] + cos[2*x] + 1 + pi**2/3
0 là Không, hãy trả về một trình vòng lặp

Thông số .

N. int hoặc Không

Số lượng các số hạng khác 0 trong xấp xỉ hoặc Không có

Trả về .

Expr hoặc iterator

Xấp xỉ hàm mở rộng thành chuỗi Fourier

ví dụ

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x, [x, -pi, pi]]
>>> s.truncate[4]
2*sin[x] - sin[2*x] + 2*sin[3*x]/3 - sin[4*x]/2

Xem thêm

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.shift[1].truncate[]
-4*cos[x] + cos[2*x] + 1 + pi**2/3
1

sympy. loạt. chiến binh. fourier_series[f , giới hạn=Không , hữu hạn=True][source]#

Tính toán khai triển chuỗi lượng giác Fourier

Thông số .

Hạn mức. [sym, bắt đầu, kết thúc], tùy chọn

sym biểu thị ký hiệu chuỗi được tính đối với

bắt đầu và kết thúc biểu thị điểm bắt đầu và điểm kết thúc của khoảng mà chuỗi phạm vi hội tụ đến hàm đã cho

Phạm vi mặc định được chỉ định là \[-\pi\]\[\pi\ . .

Trả về .

Loạt Fourier

Một đối tượng biểu tượng đại diện cho chuỗi lượng giác Fourier

Giải trình

Chuỗi lượng giác Fourier của \[f[x]\] trên khoảng \[[ . is defined as:

\[\frac{a_0}{2} + \sum_{n=1}^{\infty} [a_n \cos[\frac{2n \pi x}{L}] + b_n \sin[\frac{2n \

trong đó các hệ số là

\[L = b - a\]

\[a_0 = \frac{2}{L} \int_{a}^{b}{f[x] dx}\]

\[a_n = \frac{2}{L} \int_{a}^{b}{f[x] \cos[\frac{2n \pi x}{L}] dx}\]

\[b_n = \frac{2}{L} \int_{a}^{b}{f[x] \sin[\frac{2n \pi x}{L}] dx}\]

Điều kiện để biết hàm số \[f[x]\] đã cho có phải tuần hoàn hay không là quá cần thiết, bởi vì nó là . \[f[x]\] only in the given interval, not throughout the whole real line.

Điều này cũng mang lại rất nhiều sự dễ dàng cho việc tính toán vì bạn không phải thực hiện định kỳ \[f[x]\] giả tạo . \[[a, b]\], and the computed series will automatically become the series of the periodic version of \[f[x]\].

Thuộc tính này được minh họa trong phần ví dụ bên dưới

ví dụ

Tính toán chuỗi Fourier của \[f[x] = x^2\] .

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> f = x**2
>>> s = fourier_series[f, [x, -pi, pi]]
>>> s1 = s.truncate[n=3]
>>> s1
-4*cos[x] + cos[2*x] + pi**2/3

Sự dịch chuyển của chuỗi Fourier

________số 8

Mở rộng quy mô của chuỗi Fourier

>>> s.scale[2].truncate[]
-8*cos[x] + 2*cos[2*x] + 2*pi**2/3
>>> s.scalex[2].truncate[]
-4*cos[2*x] + cos[4*x] + pi**2/3

Tính toán chuỗi Fourier của \[f[x] = x\] .

Điều này minh họa cách cắt bớt theo thứ tự cao hơn để hội tụ tốt hơn

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.scalex[2].truncate[]
-4*cos[2*x] + cos[4*x] + pi**2/3
0

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.scalex[2].truncate[]
-4*cos[2*x] + cos[4*x] + pi**2/3
0

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.scalex[2].truncate[]
-4*cos[2*x] + cos[4*x] + pi**2/3
1

[png, thuê. png, pdf]

Điều này minh họa cách chuỗi hội tụ thành các sóng răng cưa khác nhau nếu các phạm vi khác nhau được chỉ định

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.scalex[2].truncate[]
-4*cos[2*x] + cos[4*x] + pi**2/3
2

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.scalex[2].truncate[]
-4*cos[2*x] + cos[4*x] + pi**2/3
3

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.scalex[2].truncate[]
-4*cos[2*x] + cos[4*x] + pi**2/3
1

[png, thuê. png, pdf]

ghi chú

Tính toán chuỗi Fourier có thể chậm do tích hợp cần thiết trong tính toán một, bn

Việc tính toán chuỗi Fourier của một hàm sẽ nhanh hơn bằng cách sử dụng dịch chuyển và chia tỷ lệ trên chuỗi Fourier đã được tính toán thay vì tính toán lại

e. g. Nếu chuỗi Fourier của

>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.shift[1].truncate[]
-4*cos[x] + cos[2*x] + 1 + pi**2/3
2 đã biết, chuỗi Fourier của
>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.shift[1].truncate[]
-4*cos[x] + cos[2*x] + 1 + pi**2/3
3 có thể được tìm thấy bằng cách dịch chuyển bởi
>>> from sympy import fourier_series, pi
>>> from sympy.abc import x
>>> s = fourier_series[x**2, [x, -pi, pi]]
>>> s.shift[1].truncate[]
-4*cos[x] + cos[2*x] + 1 + pi**2/3
4

Công thức cho chuỗi Fourier là gì?

Phân tích Fourier cho hàm tuần hoàn . Giá trị dương nhỏ nhất của L được gọi là chu kỳ cơ bản. f[x+L] = f[x] for all x in the domain of f. The smallest positive value of L is called the fundamental period.

Chuỗi Fourier có nguồn gốc như thế nào?

Chúng ta có thể rút ra Chuỗi Fourier cho bất kỳ hàm tuần hoàn hoặc liên tục nào hoặc hàm có giá trị không liên tục và đạo hàm của nó . Trước khi tiếp tục, chúng ta cần hiểu thuật ngữ cơ bản mà chúng ta đã đề cập trước đó. hàm tuần hoàn. Hàm f[x] tuần hoàn nếu với hằng số T>0, f[x + T] = f[x].

Chức năng nào của sympy được sử dụng để giải biến đổi Fourier?

Trong ví dụ này, chúng ta có thể thấy rằng bằng cách sử dụng phương thức Fourier_transform[] , chúng ta có thể tính toán phép biến đổi Fourier và trả về hàm đã biến đổi.

Làm thế nào các hệ số chuỗi Fourier được tính toán?

Các hệ số chuỗi Fourier thu được bằng cách sử dụng tính trực giao của các hàm mũ hoặc cơ số hình sin phức tạp và được tính toán hiệu quả bằng cách sử dụng biến đổi Laplace của một khoảng thời gian .

Chủ Đề