级数的收敛性


课程目标

  1. 掌握数列和级数的基本定义与性质。
  2. 学习判别级数收敛性的方法,包括常见的测试方法。
  3. 理解幂级数的收敛半径和展开公式,应用幂级数解决问题。
  4. 理解傅里叶级数的展开原理,分析周期函数的频率成分。

一、数列和级数的定义

1. 数列的定义

数列是按一定规律排列的数的集合,表示为:
a 1 , a 2 , a 3 , … , a n , … a_1, a_2, a_3, \ldots, a_n, \ldots a1,a2,a3,,an,
数列的极限定义:
lim ⁡ n → ∞ a n = L \lim_{n \to \infty} a_n = L nliman=L
若极限存在,则数列收敛,否则发散。

2. 级数的定义

级数是数列的累加:
S n = ∑ k = 1 n a k S_n = \sum_{k=1}^n a_k Sn=k=1nak
lim ⁡ n → ∞ S n = S \lim_{n \to \infty} S_n = S limnSn=S,则称级数收敛,反之发散。


二、级数收敛性的判别方法

1. 收敛性测试方法
  1. 基本必要条件:若 ∑ a k \sum a_k ak 收敛,则 lim ⁡ k → ∞ a k = 0 \lim_{k \to \infty} a_k = 0 limkak=0。若不满足此条件,级数必发散。

  2. 比较测试法

    • 0 ≤ a k ≤ b k 0 \leq a_k \leq b_k 0akbk,且 ∑ b k \sum b_k bk 收敛,则 ∑ a k \sum a_k ak 收敛。
    • a k ≥ b k ≥ 0 a_k \geq b_k \geq 0 akbk0,且 ∑ b k \sum b_k bk 发散,则 ∑ a k \sum a_k ak 发散。
  3. 比值测试法(D’Alembert 测试法):
    lim ⁡ k → ∞ a k + 1 a k = L \lim_{k \to \infty} \frac{a_{k+1}}{a_k} = L klimakak+1=L

    • L < 1 L < 1 L<1,则 ∑ a k \sum a_k ak 收敛。
    • L > 1 L > 1 L>1,则 ∑ a k \sum a_k ak 发散。
    • L = 1 L = 1 L=1,需使用其他方法判断。
  4. 根值测试法
    lim ⁡ k → ∞ a k k = L \lim_{k \to \infty} \sqrt[k]{a_k} = L klimkak =L

    • L < 1 L < 1 L<1,则 ∑ a k \sum a_k ak 收敛。
    • L > 1 L > 1 L>1,则 ∑ a k \sum a_k ak 发散。
  5. 交错级数测试法
    ∑ ( − 1 ) k a k \sum (-1)^k a_k (1)kak a k > 0 a_k > 0 ak>0,且:

    • a k a_k ak 单调递减;
    • lim ⁡ k → ∞ a k = 0 \lim_{k \to \infty} a_k = 0 limkak=0
      则级数收敛。
案例:判断级数收敛性
  1. ∑ k = 1 ∞ 1 k 2 \sum_{k=1}^\infty \frac{1}{k^2} k=1k21:使用比值法,求:
    lim ⁡ k → ∞ 1 ( k + 1 ) 2 1 k 2 = lim ⁡ k → ∞ ( k k + 1 ) 2 = 1 \lim_{k \to \infty} \frac{\frac{1}{(k+1)^2}}{\frac{1}{k^2}} = \lim_{k \to \infty} \left(\frac{k}{k+1}\right)^2 = 1 klimk21(k+1)21=klim(k+1k)2=1
    比值法结果为 1,使用比较法,与 ∑ 1 k 2 \sum \frac{1}{k^2} k21 比较得出收敛。

  2. ∑ k = 1 ∞ ( − 1 ) k 1 k \sum_{k=1}^\infty (-1)^k \frac{1}{k} k=1(1)kk1:使用交错级数测试法,发现 1 k \frac{1}{k} k1 单调递减且趋于 0,故级数收敛。


三、幂级数及其应用

1. 幂级数的定义

幂级数形式为:
∑ k = 0 ∞ c k ( x − a ) k \sum_{k=0}^\infty c_k (x-a)^k k=0ck(xa)k
其中 a a a 是中心, ( x − a ) (x-a) (xa) 是变量。

2. 收敛半径

幂级数的收敛性取决于 ∣ x − a ∣ |x-a| xa
R = 1 lim sup ⁡ k → ∞ ∣ c k ∣ k R = \frac{1}{\limsup_{k \to \infty} \sqrt[k]{|c_k|}} R=limsupkkck 1
∣ x − a ∣ < R |x-a| < R xa<R 内级数收敛, ∣ x − a ∣ > R |x-a| > R xa>R 外级数发散。

案例:幂级数展开

展开函数 f ( x ) = 1 1 − x f(x) = \frac{1}{1-x} f(x)=1x1 为幂级数。
f ( x ) = ∑ k = 0 ∞ x k ( 收敛于  ∣ x ∣ < 1 ) f(x) = \sum_{k=0}^\infty x^k \quad (\text{收敛于 } |x| < 1) f(x)=k=0xk(收敛于 x<1)

扩展到 f ( x ) = 1 ( 1 − x ) 2 f(x) = \frac{1}{(1-x)^2} f(x)=(1x)21
f ( x ) = ∑ k = 1 ∞ k x k − 1 f(x) = \sum_{k=1}^\infty kx^{k-1} f(x)=k=1kxk1


四、傅里叶级数

1. 定义

傅里叶级数是周期函数的三角函数展开形式:
f ( x ) = a 0 2 + ∑ n = 1 ∞ ( a n cos ⁡ ( n x ) + b n sin ⁡ ( n x ) ) f(x) = \frac{a_0}{2} + \sum_{n=1}^\infty \left(a_n \cos(nx) + b_n \sin(nx)\right) f(x)=2a0+n=1(ancos(nx)+bnsin(nx))
其中:
a n = 1 π ∫ − π π f ( x ) cos ⁡ ( n x )   d x , b n = 1 π ∫ − π π f ( x ) sin ⁡ ( n x )   d x a_n = \frac{1}{\pi} \int_{-\pi}^\pi f(x) \cos(nx) \, dx, \quad b_n = \frac{1}{\pi} \int_{-\pi}^\pi f(x) \sin(nx) \, dx an=π1ππf(x)cos(nx)dx,bn=π1ππf(x)sin(nx)dx

2. 周期函数分析

傅里叶级数用于分析信号的频率成分,例如正弦波叠加。

案例:傅里叶级数展开

设周期函数 f ( x ) = x f(x) = x f(x)=x [ − π , π ] [-\pi, \pi] [π,π] 上展开为傅里叶级数。

  1. 计算系数:

    • a 0 = 1 π ∫ − π π x   d x = 0 a_0 = \frac{1}{\pi} \int_{-\pi}^\pi x \, dx = 0 a0=π1ππxdx=0
    • a n = 1 π ∫ − π π x cos ⁡ ( n x )   d x = 0 a_n = \frac{1}{\pi} \int_{-\pi}^\pi x \cos(nx) \, dx = 0 an=π1ππxcos(nx)dx=0
    • b n = 1 π ∫ − π π x sin ⁡ ( n x )   d x = 2 ( − 1 ) n + 1 n b_n = \frac{1}{\pi} \int_{-\pi}^\pi x \sin(nx) \, dx = \frac{2(-1)^{n+1}}{n} bn=π1ππxsin(nx)dx=n2(1)n+1
  2. 展开式:
    f ( x ) = ∑ n = 1 ∞ 2 ( − 1 ) n + 1 n sin ⁡ ( n x ) f(x) = \sum_{n=1}^\infty \frac{2(-1)^{n+1}}{n} \sin(nx) f(x)=n=1n2(1)n+1sin(nx)


五、课堂活动

  1. 级数收敛性测试

    • 判断以下级数是否收敛:
      1. ∑ k = 1 ∞ 1 k \sum_{k=1}^\infty \frac{1}{k} k=1k1
      2. ∑ k = 1 ∞ ( − 1 ) k k 2 \sum_{k=1}^\infty \frac{(-1)^k}{k^2} k=1k2(1)k
      3. ∑ k = 1 ∞ k 2 k \sum_{k=1}^\infty \frac{k}{2^k} k=12kk
  2. 傅里叶级数展开

    • f ( x ) = ∣ x ∣ f(x) = |x| f(x)=x [ − π , π ] [-\pi, \pi] [π,π])求傅里叶级数。

六、图像绘制

1. 傅里叶级数近似

用 Python 绘制 f ( x ) = ∣ x ∣ f(x) = |x| f(x)=x 和其傅里叶级数的前 5 项近似图:

import numpy as np
import matplotlib.pyplot as plt

# 定义周期函数和傅里叶展开
x = np.linspace(-np.pi, np.pi, 500)
f = np.abs(x)
n_terms = 5

# 计算傅里叶级数
f_approx = np.zeros_like(x)
for n in range(1, n_terms + 1):
    f_approx += (2 * (-1)**(n + 1) / n) * np.sin(n * x)

# 绘制图像
plt.plot(x, f, label='Original $f(x) = |x|$', color='blue')
plt.plot(x, f_approx, label=f'Fourier Approx. (n={n_terms})', color='orange', linestyle='--')
plt.axhline(0, color='black', linewidth=0.8)
plt.axvline(0, color='black', linewidth=0.8)
plt.xlabel('$x$')
plt.ylabel('$f(x)$')
plt.title('Fourier Series Approximation')
plt.legend()
plt.grid(True)
plt.show()

在这里插入图片描述


傅里叶级数是法国数学家、物理学家约瑟夫·傅里叶(Joseph Fourier,1768-1830)在研究热传导问题时发明的。傅里叶级数的提出源于他试图用数学方法描述和解决物理中的热传导现象,尤其是在不规则边界和复杂条件下的热传导方程的求解。以下是傅里叶级数发明的背景和主要过程:


背景:热传导问题

  • 18世纪末,研究热传导成为物理学的重要课题。傅里叶的研究兴趣集中在热的扩散和传递规律上。
  • 他提出了热传导方程,描述了一维热传导的过程:
    ∂ u ∂ t = α ∂ 2 u ∂ x 2 \frac{\partial u}{\partial t} = \alpha \frac{\partial^2 u}{\partial x^2} tu=αx22u
    其中:
    • u ( x , t ) u(x, t) u(x,t)表示位置 x x x 和时间 t t t 处的温度。
    • α \alpha α是热扩散系数。

挑战:边界条件下的解法

傅里叶尝试解决的问题是,在复杂边界条件下,如何用数学方法描述 (u(x, t))。例如:

  • 一根棒的一端保持固定温度,另一端温度变化不定。
  • 棒在时间趋于无穷时,温度分布如何变化?

傅里叶意识到,要解决这些问题,需要找到热传导方程的一般解。


关键想法:用三角函数表示复杂函数

  1. 灵感来源:三角函数的周期性

    • 在研究振动和波动现象时,数学家们早已知道正弦和余弦函数可以用来描述周期性行为。
    • 傅里叶想到,可以尝试用正弦和余弦函数的组合来表示温度分布 (u(x, t)),即:
      u ( x , t ) = a 0 + ∑ n = 1 ∞ ( a n cos ⁡ ( n x ) + b n sin ⁡ ( n x ) ) u(x, t) = a_0 + \sum_{n=1}^\infty \left(a_n \cos(nx) + b_n \sin(nx)\right) u(x,t)=a0+n=1(ancos(nx)+bnsin(nx))
  2. 非周期函数的分解

    • 傅里叶的突破性贡献在于,他不仅仅将三角函数用于周期性现象,还设想即使是非周期函数,也可以表示为无穷多个三角函数的叠加。
    • 这与当时的数学思想形成了巨大冲突,因为那时许多数学家(如拉格朗日)认为这种方法过于大胆甚至错误。

傅里叶的理论与争议

  1. 傅里叶的论文

    • 1807年,傅里叶向法国科学院提交论文,首次提出热传导的数学理论以及傅里叶级数的概念。
    • 他声称:任何函数(即便是非连续的或不规则的)都可以用正弦和余弦函数的无穷级数表示。
  2. 争议与批评

    • 他的观点遭到许多著名数学家的质疑,如拉普拉斯、拉格朗日和泊松。他们认为傅里叶的级数表示法在数学上缺乏严谨性,尤其是他未能严格定义“任意函数”。
    • 尽管如此,傅里叶的工作在物理学上的应用效果非常显著,为他赢得了认可。
  3. 后续发展

    • 傅里叶的工作推动了函数理论的发展,后来数学家如狄利克雷、黎曼等对傅里叶级数的收敛性进行了严格证明,为其奠定了严谨的数学基础。

傅里叶级数的关键成就

  • 热传导方程的解:傅里叶级数帮助解出了热传导方程,为复杂边界条件下的温度分布提供了精确描述。
  • 周期函数的频率分解:傅里叶级数将函数分解为不同频率的正弦波和余弦波,为现代信号处理奠定了基础。
  • 跨学科影响:傅里叶级数后来在声学、光学、振动、量子力学和数据分析等领域中都有重要应用。

总结

傅里叶级数的发明是傅里叶尝试用数学方法解决物理问题的一次成功尝试。尽管他的初始理论在数学上存在争议,但他奠定了将复杂函数分解为简单正弦波的思想。这不仅为热传导问题提供了重要工具,也为现代科学和工程领域开辟了广阔的应用空间。


任何函数(即便是非连续或不规则的)都可以用正弦和余弦函数的无穷级数表示,这是傅里叶级数的核心理论。这个结论并不是针对所有函数,而是针对满足一定条件的函数,例如在有限区间上具有周期性或绝对可积的函数。以下是这一理论成立的核心原因和数学解释:


1. 正弦和余弦函数的完备性

在傅里叶级数理论中,正弦函数和余弦函数构成了一个完备的基底。这意味着:

  1. 在适当的函数空间(如 [ − π , π ] [-\pi, \pi] [π,π] 上的平方可积函数空间 L 2 [ − π , π ] L^2[-\pi, \pi] L2[π,π]),正弦和余弦函数是所有函数的基底。
  2. 任何满足条件的函数 f ( x ) f(x) f(x) 都可以用这些基底函数的线性组合表示。

直观上可以理解为,正弦和余弦函数的频率不同,它们的叠加能够捕获函数的任何变化模式,无论是平滑的还是剧烈的。


2. 傅里叶级数的表示

傅里叶级数将函数 f ( x ) f(x) f(x) 表示为:
f ( x ) = a 0 2 + ∑ n = 1 ∞ ( a n cos ⁡ ( n x ) + b n sin ⁡ ( n x ) ) f(x) = \frac{a_0}{2} + \sum_{n=1}^\infty \left(a_n \cos(nx) + b_n \sin(nx)\right) f(x)=2a0+n=1(ancos(nx)+bnsin(nx))
其中系数 a n a_n an b n b_n bn 通过积分计算得到:
a n = 1 π ∫ − π π f ( x ) cos ⁡ ( n x )   d x , b n = 1 π ∫ − π π f ( x ) sin ⁡ ( n x )   d x a_n = \frac{1}{\pi} \int_{-\pi}^\pi f(x) \cos(nx) \, dx, \quad b_n = \frac{1}{\pi} \int_{-\pi}^\pi f(x) \sin(nx) \, dx an=π1ππf(x)cos(nx)dx,bn=π1ππf(x)sin(nx)dx
这表示函数 f ( x ) f(x) f(x) 被分解为无穷多个具有不同频率的三角函数的线性叠加。


3. 为什么可以表示“任何函数”?

(1) 函数的分解性

傅里叶级数的原理依赖于函数的分解性:一个复杂的函数可以分解为更简单的部分,具体为正弦波和余弦波。每个三角函数对应函数的一种“振荡模式”,这些模式可以通过叠加组合还原原函数。

(2) 正交性

三角函数 { cos ⁡ ( n x ) , sin ⁡ ( n x ) } \{\cos(nx), \sin(nx)\} {cos(nx),sin(nx)} 是一组正交函数,满足以下性质:
∫ − π π cos ⁡ ( n x ) cos ⁡ ( m x )   d x = 0 ( n ≠ m ) \int_{-\pi}^\pi \cos(nx) \cos(mx) \, dx = 0 \quad (n \neq m) ππcos(nx)cos(mx)dx=0(n=m)
∫ − π π sin ⁡ ( n x ) sin ⁡ ( m x )   d x = 0 ( n ≠ m ) \int_{-\pi}^\pi \sin(nx) \sin(mx) \, dx = 0 \quad (n \neq m) ππsin(nx)sin(mx)dx=0(n=m)
∫ − π π cos ⁡ ( n x ) sin ⁡ ( m x )   d x = 0 \int_{-\pi}^\pi \cos(nx) \sin(mx) \, dx = 0 ππcos(nx)sin(mx)dx=0
正交性确保傅里叶级数分解的唯一性,使得每个系数 a n a_n an b n b_n bn 都能准确捕捉到函数 f ( x ) f(x) f(x) 中对应频率的振幅。

(3) 收敛性
  • 如果 f ( x ) f(x) f(x) 是分段连续并在 [ − π , π ] [-\pi, \pi] [π,π] 上绝对可积的,则傅里叶级数在每个点上都收敛。
  • 在连续点,傅里叶级数收敛到 f ( x ) f(x) f(x) 的值;
  • 在不连续点,傅里叶级数收敛到左右极限的平均值(狄利克雷条件)。
(4) 三角函数的振荡特性

三角函数可以描述任何局部变化:

  • 低频部分描述函数的整体趋势;
  • 高频部分描述函数的细节和剧烈变化。
    因此,即便函数有不规则点(如跳跃不连续点),也可以通过高频部分的正弦波和余弦波进行近似。

4. 傅里叶级数的适用范围

傅里叶级数适用于以下类型的函数:

  1. 周期函数:在一个周期内定义的函数,适用于傅里叶级数的分解。
  2. 分段连续函数:即使存在有限个不连续点(如阶跃函数),傅里叶级数依然可以收敛。
  3. 平方可积函数:满足 ∫ − π π ∣ f ( x ) ∣ 2 d x < ∞ \int_{-\pi}^\pi |f(x)|^2 dx < \infty ππf(x)2dx< 的函数。

5. 局限性和补充

  1. 发散问题

    • 并非所有函数的傅里叶级数都一致收敛。
    • 存在某些函数(如 f ( x ) = 1 x f(x) = \frac{1}{x} f(x)=x1 在某些区间上的定义)可能导致傅里叶级数发散。
  2. 吉布斯现象

    • 对于不连续点,傅里叶级数在不连续点附近的部分和会出现“振荡”现象(称为吉布斯现象),但随着项数增加,这种振荡的幅度会趋于有限值。
  3. 非周期函数

    • 对于非周期函数,傅里叶级数需要扩展到傅里叶变换,表示非周期信号的频率分量。

总结

  • 任何满足一定条件的函数(如周期函数、分段连续函数或平方可积函数)都可以用正弦和余弦函数的无穷级数表示。
  • 这是因为正弦和余弦函数构成一个完备的基底,可以捕捉函数的所有振荡特性。
  • 尽管傅里叶级数对函数的表达存在局限性,但它提供了一个强大的工具,广泛应用于物理学、信号处理和工程领域。


1. 傅里叶级数的直观理解

想象一下,我们在听音乐。一首音乐其实是由很多不同频率的声音(音调)组成的。傅里叶的想法类似,他发现任何复杂的声音(或函数)都可以用简单的“正弦波”和“余弦波”叠加出来

  • 正弦波和余弦波:它们是像波浪一样上下起伏的函数,用来表示周期性变化。
  • 叠加原理:通过无数不同频率的正弦波和余弦波的叠加,可以重建任何一个复杂的波形,比如方波、锯齿波甚至不规则的波形。

2. 为什么正弦波和余弦波可以表示复杂的函数?

正弦波和余弦波就像是搭积木的“砖块”,它们每一个都有明确的频率和振幅。傅里叶发现:

  • 低频的正弦波:决定了函数的整体形状;
  • 高频的正弦波:细化函数的复杂局部变化;
  • 通过把所有这些频率的“积木”加在一起,可以精确地还原出任何函数。

即使函数不规则或不连续(比如“方波”这种函数),也可以通过很多“高频的积木”来接近它。


3. 示例:用傅里叶级数逼近方波

我们用一个简单的例子来说明:如何用傅里叶级数逼近“方波”这种函数。

方波定义

一个周期为 2 π 2\pi 2π 的方波函数:
f ( x ) = { 1 , − π ≤ x < 0 − 1 , 0 ≤ x ≤ π f(x) = \begin{cases} 1, & -\pi \leq x < 0 \\ -1, & 0 \leq x \leq \pi \end{cases} f(x)={1,1,πx<00xπ

傅里叶级数展开为:
f ( x ) = ∑ n = 1 , 3 , 5 , … ∞ 4 n π sin ⁡ ( n x ) f(x) = \sum_{n=1, 3, 5, \dots}^\infty \frac{4}{n\pi} \sin(nx) f(x)=n=1,3,5,4sin(nx)


4. Python 图像演示

我们用 Python 绘制傅里叶级数逼近方波的过程,显示不同项数下的近似效果。

import numpy as np
import matplotlib.pyplot as plt

# 定义方波函数的傅里叶级数
def fourier_series_approximation(x, n_terms):
    approximation = np.zeros_like(x)
    for n in range(1, n_terms + 1, 2):  # 只取奇数项
        approximation += (4 / (n * np.pi)) * np.sin(n * x)
    return approximation

# 定义 x 轴范围
x = np.linspace(-np.pi, np.pi, 1000)

# 绘制原始方波和傅里叶级数近似
plt.figure(figsize=(10, 6))
plt.plot(x, np.sign(x), label="Original Square Wave", color='blue', linewidth=2)  # 原始方波

# 绘制傅里叶近似的不同阶数
for n_terms in [1, 3, 5, 9, 19]:
    y_approx = fourier_series_approximation(x, n_terms)
    plt.plot(x, y_approx, label=f"Fourier Approx. (n={n_terms})")

plt.axhline(0, color='black', linewidth=0.8, linestyle='--')
plt.axvline(0, color='black', linewidth=0.8, linestyle='--')
plt.title("Fourier Series Approximation of a Square Wave")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.legend()
plt.grid(True)
plt.show()

在这里插入图片描述


5. 图像解释

  1. 蓝色曲线是原始的方波,只有两个值:1 和 -1。
  2. 橙色、绿色、红色等曲线表示傅里叶级数的近似:
    • n = 1 n=1 n=1(只取一项)时,近似是一个简单的正弦波。
    • n = 3 n=3 n=3 n = 5 n=5 n=5 n = 9 n=9 n=9 等时,曲线逐渐更接近方波。
    • 即使曲线在方波的不连续点(跳跃处)出现了“振荡”(称为吉布斯现象),它仍能更好地逼近。

6. 为什么可以表示任意函数?

  1. 正弦波的特性

    • 它们是周期函数的“基本元素”。
    • 不同频率的正弦波能够覆盖从整体趋势到细微变化的所有细节。
  2. 无限项叠加

    • 一旦允许使用无穷多个项,就可以精确地还原出任何函数。
  3. 吉布斯现象

    • 对于不连续函数(如方波),傅里叶级数在跳跃处会振荡,但逼近仍然有效,随着项数增加,误差只在局部出现并趋于有限值。

通过这个例子,您可以直观地看到傅里叶级数是如何通过不同频率的正弦波叠加,还原复杂函数的!


好的!我们用更简单的语言,再次解释,并用一个更直观的比喻来帮助你理解傅里叶级数。我们也会继续用图形来说明。


傅里叶级数的简单理解

1. 什么是傅里叶级数?

傅里叶级数是一种分解复杂函数的方法。它告诉我们:

任何一个复杂的图形,只要是周期的(比如反复重复的波形),都可以分解成无数简单的正弦波(波浪线)和余弦波叠加起来。


2. 直观比喻

想象你在画一幅非常复杂的画,里面有很多细节。傅里叶告诉你:

  1. 你不需要复杂的工具,只需要一个简单的“画笔”(正弦波)。
  2. 用不同大小的画笔(不同频率的正弦波),反复涂抹很多次,就能还原出复杂的画。

简单来说:傅里叶级数用无数“波浪形”画笔,一点一点地画出复杂的图形。


3. 为什么正弦波能表示复杂图形?

正弦波是一种最基本的波形,它可以表示任何周期性变化

  • 一个低频正弦波(周期长)可以画出大致的轮廓;
  • 加入更多高频正弦波(周期短)可以填补细节。

通过无限多种频率的正弦波叠加,就能画出任何你想要的周期性图形。


示例:用傅里叶级数画方波

我们用图来解释:傅里叶级数是如何用正弦波一点点逼近一个复杂的“方波”。

方波的定义

方波是一个简单的图形,只有两个值:在某些地方是“1”,在某些地方是“-1”。它看起来像一个“正方形的波浪”。


Python 演示

我们来画图,看看傅里叶级数是如何通过叠加正弦波,逐渐画出一个方波的。

import numpy as np
import matplotlib.pyplot as plt

# 定义傅里叶级数近似方波的函数
def fourier_series_square_wave(x, n_terms):
    result = np.zeros_like(x)
    for n in range(1, n_terms + 1, 2):  # 只取奇数项
        result += (4 / (n * np.pi)) * np.sin(n * x)
    return result

# 定义 x 轴范围
x = np.linspace(-np.pi, np.pi, 1000)

# 绘制傅里叶级数的不同阶数近似
plt.figure(figsize=(10, 6))
plt.plot(x, np.sign(x), label='Original Square Wave', color='blue', linewidth=2)  # 原始方波

for n_terms in [1, 3, 5, 9, 19]:  # 不同项数的近似
    y_approx = fourier_series_square_wave(x, n_terms)
    plt.plot(x, y_approx, label=f"Fourier Approx. (n={n_terms})")

plt.axhline(0, color='black', linewidth=0.8, linestyle='--')
plt.axvline(0, color='black', linewidth=0.8, linestyle='--')
plt.title("Using Fourier Series to Approximate a Square Wave")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.legend()
plt.grid(True)
plt.show()

在这里插入图片描述


解释图像

  1. 蓝色的方波是我们的目标,只有两个值:1 和 -1。
  2. 黄色、绿色、红色曲线分别是傅里叶级数的近似:
    • 当我们只用 1 个正弦波 时,它只能画出一个大致的波形;
    • 当我们用 3 个正弦波 时,逼近效果更好了;
    • 当我们用 9 个或更多的正弦波 时,它几乎完全接近了方波的形状。
  3. 即使在跳跃处(上下突然变化的地方)有“波纹”(这是吉布斯现象),傅里叶级数仍然可以无限接近。

总结

  • 傅里叶级数就是用无数“波浪线”画复杂图形的方法。
  • 它从大致的轮廓开始(低频波),逐渐加入细节(高频波),最终画出目标图形。
  • 优点:任何周期图形都可以用傅里叶级数表示。
  • 观察图像:通过傅里叶级数的叠加,我们可以看到,复杂的方波是如何逐渐被正弦波还原出来的。

希望这个解释和图像演示让你更直观地理解傅里叶级数!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值