您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > MATLAB在级数的应用
《MATLAB语言》课程论文MATLAB在级数的应用姓名:杨小花学号:12010245315专业:通信工程班级:通信工程(1)班指导老师:汤全武学院:物理电气信息学院完成日期:2011.12.10MATLAB在级数中的应用(杨小花120102453152010级通信班)【摘要】MATLAB除了对数值计算外,还有对符号对象进行的运算,即直接对抽象的符号进行计算,并将所得结果以标准的符号形式来表示。符号计算可以获得比数值计算更一般的结果。MATLAB符号计算是通过集成在MATLAB中的符号运算工具箱来实现的。实际上,MATLAB中的符号运算工具箱是建立在功能强大的Maple软件基础上。本文是通过所用的MATLAB符号计算的知识来求解相关级数的问题,主要有常数项级数的求和与收敛;函数的泰勒展开;函数的傅里叶展开级傅里叶的变换;拉普拉斯的变换。并且用MATLAB绘图方便及可以绘制各种图形的功能绘制级数中相关的图像。【关键字】MATLAB语言级数求和泰勒级数傅里叶级数图形绘制一.问题的提出MATLAB现已成为一种广泛应用与工程计算及数值分析领域的新型高级语言。在各高等院校,MATLAB已成为线性代数,自动控制理论,数字信号处理,时间序列分析,动态分析仿真,图像处理等许多课程的基本教学工具,成为大学生和研究生的必须掌握的基本编程语言。在科研与工程领域,MATLAB以被广泛的应用与科学研究和解决各种具体的实践问题。可知,MATLAB将在科学研究和工程应用中发挥越来越大的作用。二.MATLAB在级数中的应用1.常数项级数的求和与审敛分析:在高等数学中,级数的求和及审敛是最基础,但也是很重要的一部分,有些级数的求和较为简单,而有些则不然,用传统的手解方法是很困难的,但这些问题用MATLAB求解会简单化。因此,咋计算机的快速发展的背景下,我们要充分利用合理的资源来求解问题,以提高速率。问题一.求解级数s1=32nxn,12nnxns的和程序如下:n=sym('n');x=sym('x');%定义符号变量n,xs1=symsum(x^n/n*3^2,n,1,inf);%求s1,求和变量n不能省略s1=-9*log(1-x)s2=x+2*x^2+3*x^3+...+n*x^n+...;%求s2,变量n为1到ns2=x/(x-1)^2问题二.求级数2)1(21nnf,))1(212nnf的和程序如下:clear%清屏symsn;%定义符号变量nf1=(2*n-1)/2^n;%级数f1的表达式f2=1/(n*(2*n+1));%级数f2的表达式s3=symsum(f1,n,1,inf)%求s3,变量n从1到无穷s4=symsum(f2,n,1,inf)%求s4,变量n从1到无穷运行结果为:s3=3s4=2-2*log(2)说明:本例是收敛的情况,如果发散,则得到的和为inf,因此,本方法就可以同时用来解决求和问题和收敛性问题。问题三.求解级数3f=nx2)sin(,nfxnn)1(14的和程序如下:clearsymsnx;%定义符号变量n,xf3=sin(x)/n^2;%级数f3的表达式f4=(-1)^(n-1)*x^n/n;%级数f4的表达式s5=symsum(f3,n,1,inf)%变量n从1到无穷s6=symsum(f4,n,1,inf)%变量n从1到无穷运行结果为:s5=1/6*sin(x)*pi^2s6=log(1+x)说明:从这个例子可以看出,symsum()这个函数不但可以处理常数项级数,也可以处理函数项级数。2.函数的泰勒级数展开级数是高等数学中函数的一种重要表现形式,有许多复杂的函数都可以用级数简单的;表示,而将一个复杂的函数展开成幂级数并去前面的若干项来近似表达这个函数是一种很好的近似方法,在学习级数的时候,我们知道展开成级数有时候是比较麻烦的,但用MATLAB求解却很简便。泰勒(Taylor)级数将一个任意函数表示为幂级数,并且,在许多情况下,只需要取幂级数的前几项来表示该函数,这对于大多数工程应用问题来说,精度已经足够。MATLAB提供了taylor函数将函数展开为幂级数,其调用格式为:taylor(f,v,,n,a)该函数将函数f按变量v展开为泰勒级数,展开到第n项(即变量v的n-1次幂)为止,n的默认值为6,v的默认值与diff函数相同。参数a指定将函数f在自变量v=a出展开,a的默认值为0.问题一.将函数xxnxxxf11)(2在x=1处按5次多项式展开程序如下:x=sym('x');%定义符号变量xf1=(1+x+x^2)/(1-x+x^2);%函数f1的表达式taylor(f1,6,1)%求f1,展开到x=1的5次幂是应选择n=6ans=3-2*(x-1)^2+2*(x-1)^3-2*(x-1)^5问题二.将函数231)(2xxfx展开为(x+4)的幂级数程序如下:x=sym('x');%定义符号变量xf2=1/(x^2+3*x+2);%函数f2的表达式taylor(f2,x,4);%将f2在x=4处展开,默认值为6ans=1/2-3/4*x+7/8*x^2-15/16*x^3问题三.将函数exxf)(展开成x的幂级数程序如下:x=sym('x');%定义符号变量xf3=exp(x);%函数f3的表达式taylor(f3,x)%将f3在x=0处展开,n的默认值为6ans=1+x+1/2*x^2+1/6*x^3+1/24*x^4+1/120*x^5问题四.将函数)1()(xmxf展开为x=0的幂级数,x为任意常数,展开至4次幂程序如下:clear%清屏symsxm;%定义符号变量x,mf4=(1+x)^m;%函数f4的表达式taylor(f4,5)%将f4在x=0处展开至4次幂ans=1+m*x+1/2*m*(m-1)*x^2+1/6*m*(m-1)*(m-2)*x^3+1/24*m*(m-1)*(m-2)*(m-3)*x^43.函数的傅里叶级数展开级变换⑴傅里叶级数(fourierbn)的应用非常广泛,尤其是周期函数在电路分析,数学物理方程,大学物理及模拟电路中都起着非常重要的作用。因为它在各个领域中都起着至关重要的作用,所以傅里叶级数的展开,求解变换是我们务必要掌握的。MATLAB为我们提供了求解这些问题的简便方法。在MATLAB中,进行傅里叶变换的函数是:①fourier(f,x,t):求函数f(x)的傅里叶像函数F(t),②Ifourier(F,t,x):求傅里叶级数F(t)的原函数f(x).问题一.求函数y=|x|的傅里叶变换及其逆变换程序如下:symsxt;%定义符号变量x,ty=abs(x);%y等于绝对值xFt=fourier(y,x,t)%求y的傅里叶变换Ft=-2/t^2fx=ifourier(Ft,t,x)%求Ft的傅里叶逆变换fx=x*(2*heaviside(x)-1)结果中的Heaviside是一个MATLAB函数,数学上称为单位跳跃函数,其定义是0,0,10,0)(xNaNxxxHeaviside(1)⑵离散傅里叶变换(DFT)广泛应用于信号分析,光谱和声谱分析,全息技术等各个领域中。但直接计算DFT的运算与变换的长度N的平方成正比,当N较大时,计算量太大。随着计算机技术的迅速发展,在计算机上进行离散傅里叶变换计算成为可能,特别是快速傅里叶变换(FFT)算法的出现,为傅里叶变换的应用创造了条件。问题一.给定数学函数:)402cos(5)4/102sin(12)(tttx(2)取n=128时,试对t从0s~1s采样,用FFT做快速傅里叶变换,绘制相应的振幅--频率图。在0s~1s时间范围内采样128点,从而可以确定采样周期和采样频率。由于离散傅里叶变换时的下标应是0~N-1,故在实际应用时下标应前移1。有考虑到对离散傅里叶变换来说,其振幅|F(k)|是关于N/2对称的,故只需k从0~N/2即可。程序如下:N=128;%N为采样点数T=1;%采样时间终点t=linspace(0,T,N);%给出N个采样时间ti(i=1:N)x=12*sin(2*pi*10*t+pi/4)+5*cos(2*pi*40*t);%求个采样点样本值xdt=t(2)-t(1);%采样周期f=1/dt;%采样频率X=fft(x);%计算x的快速傅里叶变换xF=X(1:N/2+1);%F(k)=X(k)(k=1:N/2+1)f=f*(0:N/2)/N;%使频率轴f从零开始plot(f,abs(F),'-*')%绘制振幅——频率图xlabel('Frequency');ylabel('|F(k)|'运行程序所绘制的振幅—频率图如图1所示。从图可以看出,在幅值曲线上有两个峰值点,对应的频率为10Hz和40Hz,这正是给定函数中的两个频率值。图1.振幅-——频率图求X的快速傅里叶逆变换,并与原函数进行比较:ix=real(ifft(X));%求逆变换,结果只取实部plot(t,x,t,ix,':')%逆变换结果和原函数的曲线norm(x-ix)%逆变换结果和原函数之间的距离ans=3.3457e-014逆变换结果和原函数曲线如图2所示,可以看出两者一致。另外,逆变换结果和原函数之间的距离也近。图2.FFT逆变换结果和原函数曲线比较(3)连续时间周期信号的傅里叶变换程序如下:t=0:0.1:40;%定义变量t,且t的范围是0--40,其步长为0.1k=1000;%定义变量kfori=-k:ka(i+k+1)=sin(i*pi/2)/(i*pi);a(k+1)=0.5;x(i+k+1,:)=a(i+k+1)*exp(j*i*(t+1)*pi/2);endx=sum(x)%对x进行求和plot(t,x)%绘制t--x曲线其图形如图3所示图3.连续时间周期信号傅里叶变换4.拉普拉斯的逆变换在MATLAB中,进行拉普拉斯逆变换的函数是:①laplace(f,x,t):求函数f(x)的拉普拉斯像函数F(t).②ilaplace(F,t,x):求拉普拉斯像函数F(t)的原函数f(x).问题一.计算xy2的拉普拉斯变换及其逆变换。程序如下:x=sym('x');%定义符号变量xy=x^2;Ft=laplace(y,x,t);%对函数y进行拉普拉斯变换Ft=2/t^3fx=ilaplace(F,t,x);%对函数Ft进行拉普拉斯逆变换fx=x^2三:总结符号运算功能是MATLAB的一个特色,对于许多工程计算问题,MATLAB中及提供了数值运算方法,也提供了符号计算方法。两者各有用途,数值计算方法能得到近似数值解,但不能给出解析解;符号方法能给出解析解,但结果一般较复杂,冗长,且对问题的选择性强,很多问题(特别是求解微分方程的问题)无法用符号方法求解。在实际应用中,应根据问题性质,灵活选择解决方案。通过以上几个与级数相关的例子,可以总结以下几点;1.运算结果在命令窗口中显示出来,如果在语句的最后加分号,那么MATLAB仅仅执行赋值操作,不再显示运算的结果。在MATLAB语句后面可以加注释,用于解释或说明语句的含义,对语句处理结果不产生任何影响。注释以%号开头,后面是注释的内容。2.sym函数可以用来定义符号变量,并且一次只能定义一个符号变量。它可以定义符号常量,使用符号常量进行代数运算时和数值常量进行的运算不同。3.MATLAB语言中的运算符号与数学中的运算符号不同,所以在编写程序的过程中一定要注意其符号。4.在级数展开中,一定要明白其调用格式中每一项所代表的含义,只有这样才能够正确的编写,操作。5.基于MATLAB强大的运算,绘图功能,它可以将复杂的级数求解问题迅速的求解出来,在需要相应的图解时,可以编写程序很快的将图形绘制出来,给人以直观的感觉。四.课程体会经过一学期的紧张而又有序的课程学习,在忙碌之余也得到了颇多的收获。通过老师认真的讲解和MATLAB实验课程的学习,我深深地体会到了MATLAB语言相对于同类语言程序更方便,更简洁易懂。MATLAB语
本文标题:MATLAB在级数的应用
链接地址:https://www.777doc.com/doc-2335308 .html