021_FourierSeries.mw

フーリエ級数解析

イントロダクション

このワークシートでは、フーリエ級数解析を行います。

> restart;

例1

のこぎり波の解析

> f:=piecewise(x<0,0, x>0 and x<1,x, x>1 and x<2,x-2, x>2,0);

f := PIECEWISE([0, x < 0], [x, 0 < x and x < 1], [x-2, 1 < x and x < 2], [0, 2 < x])

> plot(f, x=-2..4);

[Plot]

> a[0] := (1*int(f,x=0..2))/2;

a[0] := 0

> assume(n, integer);

> a[n] := int(f*cos(n*Pi*x), x=0..2);

a[n] := 0

> b[n] := int(f*sin(n*Pi*x), x=0..2);

b[n] := -2*(-1)^n/(n*Pi)

フーリエ級数の一般型を定義します。

> g := (x,N) -> a[0]+sum(a[n]*cos(n*Pi*x)+b[n]*sin(n*Pi*x), n=1..N);

g := proc (x, N) options operator, arrow; a[0]+(sum(a[n]*cos(n*Pi*x)+b[n]*sin(n*Pi*x), n = 1 .. N)) end proc

> g(x,5);

2*sin(Pi*x)/Pi-sin(2*Pi*x)/Pi+2/3*sin(3*Pi*x)/Pi-1/2*sin(4*Pi*x)/Pi+2/5*sin(5*Pi*x)/Pi

> plot({f,g(x,5)}, x = -2..4);

[Plot]

> plot3d(g(x,N),x=0..2,N=0..5);

[Plot]

例2

奇関数での解析を行います。

f = x, -1<x and x<1

のこぎり波の解析

> f:=piecewise(x>-1 and x<1,x,0);

f := PIECEWISE([x, -1 < x and x < 1], [0, otherwise])

> plot(f, x=-2..4);

[Plot]

> a[0] := (1*int(f,x=0..2))/2;

a[0] := 1/4

> assume(n, integer);

> a[n] := int(f*cos(n*Pi*x), x=0..2);

a[n] := (-1+(-1)^n)/(n^2*Pi^2)

> b[n] := int(f*sin(n*Pi*x), x=0..2);

b[n] := -(-1)^n/(n*Pi)

フーリエ級数の一般型を定義します。

> g := (x,N) -> a[0]+sum(a[n]*cos(n*Pi*x)+b[n]*sin(n*Pi*x), n=1..N);

g := proc (x, N) options operator, arrow; a[0]+(sum(a[n]*cos(n*Pi*x)+b[n]*sin(n*Pi*x), n = 1 .. N)) end proc

> g(x, 5);

1/4-2*cos(Pi*x)/Pi^2+sin(Pi*x)/Pi-1/2*sin(2*Pi*x)/Pi-2/9*cos(3*Pi*x)/Pi^2+1/3*sin(3*Pi*x)/Pi-1/4*sin(4*Pi*x)/Pi-2/25*cos(5*Pi*x)/Pi^2+1/5*sin(5*Pi*x)/Pi

> plot({f, g(x,5)}, x=-2..4);

[Plot]

> plot3d(g(x,N),x=0..2,N=0..5);

[Plot]