《MATLAB基础及应用论文.doc》由会员分享,可在线阅读,更多相关《MATLAB基础及应用论文.doc(9页珍藏版)》请在金锄头文库上搜索。
1、题目 : MATLAB语言多项式计算的分析与概述摘要 :数值计算在科学研究与工程应用中有着十分广泛的应用,MATLAB向我们提供了标准的多项式的常用函数,包括求根、相乘、相除等。这些功能在进行现代数字信号处理与分析时非常有用。本文主要通过示例的形式分析与概述MATLAB多项式计算的基本内容。关键词 : 多项式 ;运算 ; 函数 ; 拟合 ; MATLAB。一、 引言 : MATLAB是由MATH WORKS公司推出的一种面向科学与工程的计算软件。如今MATLAB语言发展速度非常快,涉及十分广阔,本文主要讨论MATLAB多项式的计算,可谓MATLAB的冰山一角。读者若要了解MATLAB语言的更多
2、知识还应多读多看他人著作。二、 多项式计算 :1,多项式的创建方法 :在MATLAB里:多项式由一个行向量表示,它的系数是按降序排列。 例如: 由1N的向量 表示多项式,如用poly2sym()可以查看这个多项式。(1)直接输入法在MATLAB命令窗口中直接输入多项式的系数矢量,然后利用转换函数poly2sym将多项式由系数矢量形式转换为符号新式。(2)指令P=poly(AR)法若AR是方阵,多项式P是该方阵的特征多项式若AR=a1, a2,an-1,an,则AR的元素认为是多项式P的根 如果A为二维矩阵, poly(A)给出A的特征多项式。如果A为一维矩阵, poly(A)表示由A的元素为多
3、项式的根所确定的多项式。【例1】产生多项式的方法。clear%方法一(由多项式的系数确定的多项式)p=1 -2 3%直接给出多项式ppoly2sym(p)%给出p多项式的表达式%方法二(由矩阵所确定的多项式)a=1 2;-2 4ps=poly(a)%给出a的特征多项式poly2sym(ps)%给出ps多项式的表达式%方法三(由多项式的根确定的多项式)x=-1 2px=poly(x)%以x的元素为多项式的根确定的多项式。poly2sym(px)%给出ps多项式的表达式运行结果为p = 1 -2 3 ans = x2-2*x+3a = 1 2 -2 4ps = 1 -5 8 ans = x2-5*
4、x+8x = -1 2px = 1 -1 -2 ans = x2-x-22.多项式函数的引用我们可以很方便地引用多项式函数(即求多项式的函数值)引用格式Y=polyval(px,x)这里,引用函数为polyval。括号中,px为多项式的名,x为多项式自变量取值,Y为对应的函数值。【例2】多项式函数的引用cleard=-1 2px=poly(d)y=polyval(px,4)%求多项式px在自变量等于4时的函数值x=-4:0.5:8yx=polyval(px,x)%求多项式px在自变量等于x序列时的函数值序列plot(x,yx)%作出两个变量的函数图a=roots(px)%求多项式px的根运行结
5、果为d = -1 2px = 1 -1 -2y = 10x = Columns 1 through 6 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 Columns 7 through 12 -1.0000 -0.5000 0 0.5000 1.0000 1.5000 Columns 13 through 18 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 Columns 19 through 24 5.0000 5.5000 6.0000 6.5000 7.0000 7.5000 Column 25 8.
6、0000yx = Columns 1 through 6 18.0000 13.7500 10.0000 6.7500 4.0000 1.7500 Columns 7 through 12 0 -1.2500 -2.0000 -2.2500 -2.0000 -1.2500 Columns 13 through 18 0 1.7500 4.0000 6.7500 10.0000 13.7500 Columns 19 through 24 18.0000 22.7500 28.0000 33.7500 40.0000 46.7500 Column 25 54.0000a = 2-13.分式多项式的
7、展开 (1)传递函数:本质是将时域上的微分或积分方程进行Laplace变换,结果是将时域问题变为频域问题求解,数学变换的关键是 以及式中 于是,传递函数一般是S的多项式。【例3】求一个RC低通滤波器的幅频与相频特性图和转折频率。%低通 r=100千欧 c=1微法x=0:100;y=1./(j*0.1*x+1);A=abs(y);P=angle(y);g=abs(A-0.707);a,b=min(g)x0=x(b)PO=P(b)subplot(221)plot(x,A)subplot(222)plot(x,P)%转折频率为1/RC运行结果为a = 1.0678e-004b = 11x0 = 10
8、PO = -0.7854 幅频 相频(2)分子、分母多项式的单项展开 留数定理:设函数在D域内除有限个奇点外解析,在闭域D+C上除这些点外连续,则有 分子、分母多项式的单项展开在控制系统的分析中经常需要将由分母、分子多项式构成的传递函数进行部分展开,如这时可以用a,b,k=residue(AN,BN) 来进行分解。这里,A和B为多项式,a和b是展开式的多项式,分别称为留数和残数。AN和BN是A和B的系数。K为直行向量。这对分析函数奇点非常有用。【例4】请将进行部分分式展开。 AN=1 3 2; BN=1 7 12 0; r,p,k=residue(AN,BN)r = 1.5000 -0.666
9、7 0.1667p = -4 -3 0k = 相当于原式为4.多项式的乘除与微分运算乘:conv(卷积) 除:deconv(解卷) polyder(微分)【例5】计算cleara1=1 0;a2=2 3;a3=1 18;p1=conv(a1,a2)p2=conv(p1,a3)p3,r=deconv(p2,a3)conv(p3,a3)+r运行结果为p1 = 2 3 0p2 = 2 39 54 0p3 = 2 3 0r = 0 0 0 0ans = 2 39 54 0 poly2sym(ans) ans = 2*x3+39*x2+54*x 5多项式的求根n次多项式有n个根,它们可以是实数、虚数或共
10、扼复数。MATLAB中roots用来求全部根。如 A=6 1 0 3 1A = 6 1 0 3 1 roots(A)ans = 0.4414 + 0.6980i 0.4414 - 0.6980i -0.7006 -0.3488 6. 多项式的曲线拟合1用多项式函数去模拟一个离散数据的方法,称为多项式的曲线拟合。2方法: 1)找出函数上的已知点系列。2)由已知点系列确定多项式,即式中,P为模拟的多项式,polyfit为调用函数,x和y是已知点系列,n是多项式的阶次。(一般 n 越大越精确)【例6】用多项式去模拟一个正弦函数clearx=0:0.1:6;y=sin(x);xx=0:6;yy=sin
11、(xx);a1=polyfit(xx,yy,3);y1=polyval(a1,x);a2=polyfit(xx,yy,4);y2=polyval(a2,x);a3=polyfit(xx,yy,5);y3=polyval(a3,x);subplot(231)plot(x,y,-,x,y1,.)subplot(232)plot(x,y,-,x,y2,.)subplot(233)plot(x,y,-,x,y3,.)结果为n=3 n=4 n=5可见,模拟情况与多项式的阶次有关。但并不是拟合的阶次越高越好,一方面,提高阶次必然会增加计算量;另一方面,与数据点吻合的很好也不能说明拟合的结果准确会提高,高阶多项式对噪声(NOISE)敏感度较高,因此容易产生不准确的预测。三、总结:MATLAB是一种以矩阵运算为基础的交换式程序语言,是专门针对科学和工程中计算和绘图的需求而开发的。与其他计算机语言相比,具有简洁和智能化的特点,人机交互性能好,特别是它可以适应多种平台,并且随着计算机硬软件的更行而及时升级。随着MATLAB版本的不断升级更新,它在基本课程教学、科学研究和工程应用中将发挥越来越大的作用。参考文献:【1】 MATLAB基础及应用155p、156p、157p、158p、159p、160p。刘 勍、温志贤,编著。 【2】 MATLAB基础及应用教程周开利编著,北京大学出版社。1