MAthematica 傅里叶级数展开画图

f[x_] := Which[-Pi <= x < Pi, x]
f[x_] := f[x - 2*Pi] /; x >= Pi
f[x_] := f[x - 2*Pi] /; x < -Pi
A = Plot[f[x], {x, -Pi, Pi}, PlotStyle -> Red];
k = 20;
a[n_] := (1/Pi)*Integrate[f[x]*Cos[n*x], {x, -Pi, Pi}];
b[n_] := (1/Pi)*Integrate[f[x]*Sin[n*x], {x, -Pi, Pi}];
a[0]/2 + Sum[a[n]*Cos[n*x] + b[n]*Sin[n*x], {n, 1, k}]
A2 = Plot[
   Evaluate[
    a[0]/2 + Sum[a[n]*Cos[n*x] + b[n]*Sin[n*x], {n, 1, 2}]], {x, -Pi,
    Pi}, PlotStyle -> Hue[0.5]];
A3 = Plot[
   Evaluate[
    a[0]/2 + Sum[a[n]*Cos[n x] + b[n]*Sin[n x], {n, 1, 3}]], {x, -Pi,
    Pi}, PlotStyle -> Hue[0.3]];
A4 = Plot[
   Evaluate[
    a[0]/2 + Sum[a[n]*Cos[n x] + b[n]*Sin[n x], {n, 1, 4}]], {x, -Pi,
    Pi}, PlotStyle -> Hue[0.4]];
A6 = Plot[
   Evaluate[
    a[0]/2 + Sum[a[n]*Cos[n x] + b[n]*Sin[n x], {n, 1, 6}]], {x, -Pi,
    Pi}, PlotStyle -> Hue[0.6]];
A8 = Plot[
   Evaluate[
    a[0]/2 + Sum[a[n]*Cos[n x] + b[n]*Sin[n x], {n, 1, 8}]], {x, -Pi,
    Pi}, PlotStyle -> Hue[0.8]];
A15 = Plot[
   Evaluate[
    a[0]/2 + Sum[a[n]*Cos[n*x] + b[n]*Sin[n*x], {n, 1, 15}]], {x, -Pi,
     Pi}, PlotStyle -> Hue[0.7]];
Show[A, A2, A3, A4, A6, A8, A15, PlotRange -> All]

你可能感兴趣的:(mathematica)