您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > MATLAB语言多项式计算的分析与概述
1题目:MATLAB语言多项式计算的分析与概述摘要:数值计算在科学研究与工程应用中有着十分广泛的应用,MATLAB向我们提供了标准的多项式的常用函数,包括求根、相乘、相除等。这些功能在进行现代数字信号处理与分析时非常有用。本文主要通过示例的形式分析与概述MATLAB多项式计算的基本内容。关键词:多项式;运算;函数;拟合;MATLAB。一、引言:MATLAB是由MATHWORKS公司推出的一种面向科学与工程的计算软件。如今MATLAB语言发展速度非常快,涉及十分广阔,本文主要讨论MATLAB多项式的计算,可谓MATLAB的冰山一角。读者若要了解MATLAB语言的更多知识还应多读多看他人著作。二、多项式计算:1,多项式的创建方法:在MATLAB里:多项式由一个行向量表示,它的系数是按降序排列。例如:由1×N的向量表示多项式,如用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的元素为多项式的根所确定的多项式。【例1】产生多项式的方法。clear%方法一(由多项式的系数确定的多项式)p=[1-23]%直接给出多项式ppoly2sym(p)%给出p多项式的表达式%方法二(由矩阵所确定的多项式)a=[12;-24]]..[210naaaapnnnnnaxaxaxaP...221102ps=poly(a)%给出a的特征多项式poly2sym(ps)%给出ps多项式的表达式%方法三(由多项式的根确定的多项式)x=[-12]px=poly(x)%以x的元素为多项式的根确定的多项式。poly2sym(px)%给出ps多项式的表达式运行结果为p=1-23ans=x^2-2*x+3a=12-24ps=1-58ans=x^2-5*x+8x=-12px=1-1-2ans=x^2-x-22.多项式函数的引用我们可以很方便地引用多项式函数(即求多项式的函数值)引用格式Y=polyval(px,x)这里,引用函数为polyval。括号中,px为多项式的名,x为多项式自变量取值,Y为对应的函数值。【例2】多项式函数的引用cleard=[-12]px=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的根运行结果为3d=-12px=1-1-2y=10x=Columns1through6-4.0000-3.5000-3.0000-2.5000-2.0000-1.5000Columns7through12-1.0000-0.500000.50001.00001.5000Columns13through182.00002.50003.00003.50004.00004.5000Columns19through245.00005.50006.00006.50007.00007.5000Column258.0000yx=Columns1through618.000013.750010.00006.75004.00001.7500Columns7through120-1.2500-2.0000-2.2500-2.0000-1.2500Columns13through1801.75004.00006.750010.000013.7500Columns19through2418.000022.750028.000033.750040.000046.7500Column2554.0000a=2-13.分式多项式的展开4(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=10PO=-0.7854sdtdsdt1js5幅频相频(2)分子、分母多项式的单项展开留数定理:设函数在D域内除有限个奇点外解析,在闭域D+C上除这些点外连续,则有分子、分母多项式的单项展开在控制系统的分析中经常需要将由分母、分子多项式构成的传递函数进行部分展开,如)(......2211)()(skbnsanbsabsasBsA这时可以用[a,b,k]=residue(AN,BN)来进行分解。这里,A和B为多项式,a和b是展开式的多项式,分别称为留数和残数。AN和BN是A和B的系数。K为直行向量。这对分析函数奇点非常有用。【例4】请将)4)(3()2)(1(sssss进行部分分式展开。AN=[132];BN=[17120];[r,p,k]=residue(AN,BN)r=1.5000-0.6667cnkkaRidzzf1)(2)(60.1667p=-4-30k=[]相当于原式为sss1667.036667.045.14.多项式的乘除与微分运算乘:conv(卷积)除:deconv(解卷)polyder(微分)【例5】计算)18)(32(xxxcleara1=[10];a2=[23];a3=[118];p1=conv(a1,a2)p2=conv(p1,a3)[p3,r]=deconv(p2,a3)conv(p3,a3)+r运行结果为p1=230p2=239540p3=230r=00007ans=239540poly2sym(ans)ans=2*x^3+39*x^2+54*x5.多项式的求根n次多项式有n个根,它们可以是实数、虚数或共扼复数。MATLAB中roots用来求全部根。如A=[61031]A=61031roots(A)ans=0.4414+0.6980i0.4414-0.6980i-0.7006-0.34886.多项式的曲线拟合1.用多项式函数去模拟一个离散数据的方法,称为多项式的曲线拟合。2.方法:1)找出函数上的已知点系列。2)由已知点系列确定多项式,即式中,P为模拟的多项式,polyfit为调用函数,x和y是已知点系列,n是多项式的阶次。(一般n越大越精确)【例6】用多项式去模拟一个正弦函数clearx=0:0.1:6;y=sin(x);xx=0:6;),,(polyfitnyxp8yy=sin(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=3n=4n=5可见,模拟情况与多项式的阶次有关。但并不是拟合的阶次越高越好,一方面,提高阶次必然会增加计算量;另一方面,与数据点吻合的很好也不能说明拟合的结果准确会提高,高阶多项式对噪声(NOISE)敏感度较高,因此容易产生不准确的预测。三、总结:MATLAB是一种以矩阵运算为基础的交换式程序语言,是专门针对科学和工程中计算和绘图的需求而开发的。与其他计算机语言相比,具有简洁和智能化的特点,人机交互性能好,特别是它可以适应多种平台,并且随着计算机硬软件的更行而及时升级。随着MATLAB版本的不断升级更新,它在基本课程教学、科学研究和工程应用中将发挥越来越大的作用。参考文献:【1】《MATLAB基础及应用》155p、156p、157p、158p、159p、160p。刘勍、温志贤,编著。【2】《MATLAB基础及应用教程》周开利编著,北京大学出版社。9
本文标题:MATLAB语言多项式计算的分析与概述
链接地址:https://www.777doc.com/doc-2887877 .html