您的位置首页百科问答

用Mathematica演示级数逼近问题——傅里叶级数

用Mathematica演示级数逼近问题——傅里叶级数

的有关信息介绍如下:

用Mathematica演示级数逼近问题——傅里叶级数

傅里叶级数,是用来逼近周期函数的一个方法。把一个周期函数展开成傅里叶级数,有一个好处,那就是处处收敛。因此,只要确保级数在一个周期内能够很好地逼近已知函数,那么这个逼近就可以推广到其它所有的周期里面。

先来作一个函数——x/2 的3阶傅里叶级数:

FourierSeries[x/2, x, 3】

并画出对比图:

Plot[{%, x/2}, {x, -3 Pi, 3 Pi}]

可以发现,只在区间{-Pi,Pi}上有可比性!

把级数的表达式处理一番:

FourierSeries[x/2, x, 3] // Simplify

FourierSeries[x/2, x, 3] // Simplify // TraditionalForm

FourierSeries[x/2, x, 3] // FullSimplify

FourierSeries[x/2, x, 3] // FullSimplify // TraditionalForm

用列表的形式,给出t/2的前10阶Fourier级数式:

Table[FourierSeries[t/2, t, n], {n, 1, 10}] //

FullSimplify // TraditionalForm

把列表里的所有表达式画到一起:

Plot[%, {t, -3 Pi, 3 Pi}]

函数t/2前10阶的Fourier级数式,对应的逼近程度(互动模拟):

Manipulate[

Plot[{t/2, Evaluate[FourierSeries[t/2, t, n]]}, {t, -Pi, Pi},

PlotRange -> 2], {n, 1, 10, 1}]

Manipulate[

Plot[{t/2, Evaluate[FourierSeries[t/2, t, n]]}, {t, -3 Pi, 3 Pi},

PlotRange -> 5], {n, 1, 10, 1}]

再尝试一些其它函数,如t^2:

Manipulate[

Plot[{t^2, Evaluate[FourierSeries[t^2, t, n]]}, {t, -3 Pi, 3 Pi}], {n, 1, 10, 1}]

一个分段函数:

f[x_] = Piecewise[{{1, 0 <= x < Pi}, {-1, -Pi <= x < 0}}];

运行互动代码:

Manipulate[

Show[Plot[f[x], {x, -Pi, Pi}, PlotStyle -> {Thickness[0.01], Red},

PlotRange -> {-1.5, 1.5}],

Plot[Evaluate[FourierSeries[f[x], x, n]], {x, -Pi, Pi},

PlotStyle -> {Thickness[0.01], Blue}]], {n, 1, 36, 1}]

再来一个分段函数:

f[x_] = Piecewise[{{0, 0 <= x < Pi}, {x, -Pi <= x < 0}}]

仍旧用上一步的互动代码,逼近情况的互动模拟效果如下!