数学软件在高等数学教学中的辅助运用

2012-04-29 00:44李红艳万钟林
数学学习与研究 2012年1期

李红艳 万钟林

【摘要】借助MATLAB的强大功能,实现Fourier级数逼近函数的模拟.通过列举的典型实例,运用MATLAB生成拟合图形,结合理论知识,进一步阐释数学软件在高数教学中的重要地位.

【关键词】函数逼近;MATLAB;Fourier级数

【中图分类号】玂173.1オ

周期为2π的函数的獸ourier级数展开 设函数f(x)的周期为2π,在[-π,π]上可积,则它的獸ourier级数展开式为f(x)~a0[]2+А啤轠]n=1(a璶玞os玭x+b璶玸in玭x)(1).其中a璶=1[]πА要π-πf(x)玞os玭x玠玿, n=0,1,2,…

b璶=1[]πА要π-πf(x)玸in玭x玠玿, n=1,2,…

狄利克雷定理(收敛定理) 设f(x)是以2π为周期的函数,如果它在[-π,π]上连续或只有有限个第一类间断点,并且至多只有有限个极值点,则獸ourier级数(1)收敛,且

(1)当x是f的连续点时,级数收敛于f;

(2)当x是f的间断点时,级数收敛于1[]2(f(x-0)+f(x+0)).

用有限的不同的n项傅立叶级数表示有间断点的函数时,在间断点附近会不可避免地出现獹ibbs现象.在某些间断点或者端点,獸ourier级数收敛到该点左右极限和的一半.

对于上述收敛定理的理论描述,学生理解起来费时费力.为了让学生对獸ourier级数展开式有一个直观的理解,下面运用数学软件MATLAB强大的计算和绘图功能,模拟Fourier级数逼近函数.首先建立MATLAB函数文件ゝ_series.m,方便做函数逼近时调用.

例1函数y=x,-π

0,0≤x<π的獸ourier级数展开式及逼近模拟.

獸ourier级数展开式-π玔]4+2[]πА啤轠]n=11[](2n-1)2玞os(2n-1)x+А啤轠]n=1(-1)﹏+1猍]n玸in玭x.

玀ATLAB程序编码

syms x;f=(x-abs(x))/2;xx=-pi:.01:pi;

yy=subs(f,x,xx);plot(xx,yy,‘-),hold on

for n=4∶4∶20

[a,b,f1]=f_series(f,x,n);

y1=subs(f1,x,xx);

plot(xx,y1,‘-.);

if n==8

f1

end

end

输出(1)式中玭=8的Fourier级数展开为

-1/4*pi+2/pi*cos(x)+sin(x)-1/2*sin(2*x)+2/9/pi*cos(3*x)+1/3*sin(3*x)-1/4*sin(4*x)+2/25/pi*cos(5*x)+1/5*sin(5*x)-1/6*sin(6*x)+2/49/pi*cos(7*x)+1/7*sin(7*x)-1/8*sin(8*x)

输出图形为

由生成的图形可以看出,随着n值的增大,獸ourier级数在各连续点越逼近函数值,并且在端点x=-π,x=π处獸ourier级数收敛到两端点(左、右)极限和的一半-π玔]2.这就是狄利克雷收敛定理的一个直观解释.这样学生学习獸ourier展开式不再感觉枯燥和抽象,降低了理论上的难度,同时缩短数学理论与数学应用之间的距离,培养学生的数学实践与创新能力.

例2 方波函数y=1, x≥0,

-1,x<0

在[-π,π]上的獸ourier级数展开式及其逼近模拟.

獸ourier级数展开式4[]πА啤轠]n=1И玸in(2n-1)x[]2n-1.

玀ATLAB程序编码

syms x;f=abs(x)/x;;xx=-pi:pi/200:pi;

xx=xx(xx~=0);xx=sort([xx,-eps,eps]);

yy=subs(f,x,xx);plot(xx,yy,‘-),hold on

for n=2∶6∶20

[a,b,f1]=f_series(f,x,n);

y1=subs(f1,x,xx);

plot(xx,y1,‘-);

if n==8

f1

end

end

输出图形为

输出(1)式中n=8的獸ourier级数展开为

4/pi*sin(x)+4/3/pi*sin(3*x)+4/5/pi*sin(5*x)+4/7/pi*sin(7*x)

由生成的图形可以看出,随着n值的增大,獸ourier级数在各连续点越逼近函数值,并且在端点x=-π,x=π处獸ourier级数收敛到两端点(左、右)极限和的一半0.不过在n=14时图形就可以得出较好的拟合,再增加n值也不会有太大的改善.这是獸ourier级数逼近函数所存在的一个缺陷.

例3 函数y=|x|在[-π,π]上的獸ourier级数展开式及其逼近模拟.

獸ourier级数展开式π玔]2-4[]πА啤轠]n=11[](2n-1)2玞os(2n-1)x.

玀ATLAB程序编码

syms x;f=abs(x);;xx=-pi:pi/200:pi;

yy=subs(f,x,xx);plot(xx,yy,‘-),hold on

for n=2∶6∶20

[a,b,f1]=f_series(f,x,n);

y1=subs(f1,x,xx);

plot(xx,y1,‘--);

if n==8

f1

end

End

输出图形为

输出(1)式中n=8的獸ourier级数展开为

1/2*pi-4/pi*cos(x)-4/9/pi*cos(3*x)-4/25/pi*cos(5*x)-4/49/pi*cos(7*x)

这一函数在[-π,π]都是连续的,因此在各点獸ourier级数都能逼近函数值.由图看,随着n增大,拟合图形几乎和原图重合.

上述通过几个典型实例探讨獸ourier级数逼近函数的MATLAB模拟,旨在借助数学软件MATLAB辅助教学,给出Fourier级数展开式的直观解释,让学生对Fourier级数不再是望而生畏,而是对该内容产生浓厚的学习兴趣,充分调动学生的学习积极性,从而提高教学效果,进而培养学生的数学应用与创新能力.