MATLAB2013
第6章MATLAB数值处理
6.1数值运算6.1.1多项式1、多项式的构造最简单的方法为直接输入向量P=[17148]%以向量的形式显示多项式P=17148poly2sym(P)%以符号表达式的形式显示多项式ans=x^3+7*x^2+14*x+8用多项式的根逆推多项式roots=[-0.5,-0.3+0.4*i,-0.3-0.4*i];P=poly(roots)%以向量的形式显示多项式P=1.00001.10000.55000.1250创建方阵A的特征多项式A=[0100;0010;0001;1000];P=poly(A)%以向量的形式显示多项式P=1.0000-0.0000-0.00000-1.00002、多项式的运算多项式的求值运算Matlab中,用函数polyval和polyvalm来计算多项式在给定点的值Y=polyval(p,s),说明:若s为一数值,则求多项式在该点的值;若s为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。Y=polyvalm(p,x),说明:用来求矩阵多项式的值,其调用格式与polyval相同,但含义不同,p为多项式,x为方阵,它以方阵为自变量求多项式的值设A为方阵,P代表多项式x3-5x2+8,那么polyvalm(P,A)的含义是:A*A*A-5*A*A+8*eye(size(A))而polyval(P,A)的含义是:A.*A.*A-5*A.*A+8*ones(size(A))前者以矩阵规则计算多项式的值,后者以数组规则计算多项式的值。P=[1,2,3];A=[1,2;3,4];polyval(P,A)%A可为矩阵或向量,采用数组运算(点运算)ans=6111827polyvalm(P,A)%A必须为方阵,并以X为自变量,采用矩阵运算ans=12142133多项式的四则运算Matlab中,采用+,-运算符来实现多项式的加减运算,采用conv函数和deconv函数来实现多项式的乘除运算。p1=[1-2-12];p2=[010-1];%输入多项式,当相加减的多项式的阶次不同时,低阶多项式用首零填补p3=p1+p2p3=1-1-11p4=p1-p2p4=1-3-13p5=conv(p1,p2)%用conv函数计算多项式的乘法p5=01-2-241-2p2=[10-1];p5=conv(p1,p2)%多项式的乘或除p1和p2的长度可以不等p5=1-2-241-2p2=[10-1];%除法运算中多项式的首系数不能为0.重新输入p2[p6,r]=deconv(p1,p2)%用deconv函数计算多项式的除法p6=1-2%该返回值为p1除以p2的商r=0000%该返回值为p1除以p2的余子式求多项式的根Matlab中使用roots函数来计算多项式的根,根以列向量的形式表示。反之,已知根,也可通过poly函数获得多项式p=[2145];r=roots(p)r=0.2500+1.5612i0.2500-1.5612i-1.0000部分分式展开与组合用residue函数实现多项式的部分分式展开和组合,其调用方式分别为[R,P,K]=residue(B,A)[B,A]=residue(R,P,K) 其中B和A分别为分子和分母多项式的系数行向量,R,P,K分别为零点列项量,极点列向量和余式多项式列向量。例6.8将表达式展开成部分分式之和。b=[5];%输入分子多项式a=conv(conv([