matlab求一个矩阵的特征多项式对应的多项式的根

Matlab如何计算多项式矩阵的乘积如题,如何用Matlab计算多项式矩阵的乘积?
A=sym('a',3)A =[ a1_1,a1_2,a1_3][ a2_1,a2_2,a2_3][ a3_1,a3_2,a3_3]>> B=sym('b',3);>> A*B ans = [ a1_1*b1_1 + a1_2*b2_1 + a1_3*b3_1,a1_1*b1_2 + a1_2*b2_2 + a1_3*b3_2,a1_1*b1_3 + a1_2*b2_3 + a1_3*b3_3][ a2_1*b1_1 + a2_2*b2_1 + a2_3*b3_1,a2_1*b1_2 + a2_2*b2_2 + a2_3*b3_2,a2_1*b1_3 + a2_2*b2_3 + a2_3*b3_3][ a3_1*b1_1 + a3_2*b2_1 + a3_3*b3_1,a3_1*b1_2 + a3_2*b2_2 + a3_3*b3_2,a3_1*b1_3 + a3_2*b2_3 + a3_3*b3_3]
我想问的是多项式矩阵乘积的求法,而不是矩阵的符号计算
给个例子,就清楚了。
为您推荐:
其他类似问题
扫描下载二维码小木虫 --- 500万硕博科研人员喜爱的学术科研平台
&&查看话题
matlab中将含有变量“w”的复杂多项式存入矩阵元素,无法生成矩阵。哪里出问题了?
epssys=1.0e-6;
a =40e-3;& && && && && && && && && && && && && && && &
aa1 = a* ;& && && && && && && && && && && && && &
aa2 = a* ;
aa3 = a* ;
ra11 = (2*pi)*cross(aa2,aa3)/dot(aa1,cross(aa2,aa3));& && &
ra22 = (2*pi)*cross(aa3,aa1)/dot(aa1,cross(aa2,aa3));
ra1 = ra11(1:2);
ra2 = ra22(1:2);
lml1=0.;& && && && && && && && && && && && &&&%空气纵波的拉梅常数
lml2=290.24e9;& && && && && && && && && && && && && &&&%钢纵波的拉梅常数
lmn1=0;& && && && && && && && && && && && && && && && &%空气中没有横波
lmn2=71e9;& && && && && && && && && && && && && && && &%钢横波的拉梅常数
rou1=1.29;& && && && && && && && && && && && && && && &%空气密度
rou2=7800;& && && && && && && && && && && && && && && &%钢密度
a1=w*0.003;
a2=w*1.376e-004;
b2=w*3.315e-004;
& && && && && && && && && && && && && && && && && &
bh2 = @(nu,z)besselj(nu,z)-1i*bessely(nu,z);
%tg=num2str(ones(5, 5));
tg=ones(5, 5);
for n2=1:5
& & for n3=1:5
& && &&&n=n2-3;
& && &&&n1=n3-3;
& && &&&A11=n*besselj(n,a1*r)/r-a1*besselj(n+1,a1*r);&&
& && &&&B11=n*bh2(n,a1*r)/r-a1*bh2(n+1,a1*r);&&
& && &&&C11=n*besselj(n,a2*r)/r-a2*besselj(n+1,a2*r);&&
& && &&&C21=1i*n*besselj(n,b2*r);
& && &&&C31=1i*kz*(n*besselj(n,b2*r)/r-b2*besselj(n+1,b2*r))/kt2;&&%kt2^2=ω^2*ρ2/μ2& &
& && && && &A121=-kz^2*lml1*besselj(n,a1*r);& && &
& && && && &A122=(2*n*lml1*a1+2*lml1*a1)*besselj(n+1,a1*r)/r;
& && && && &A123=lml1*a1^2*besselj(n+2,a1*r);
& && &&&A12=A121-A122+A123;
& && && && &B121=-kz^2*lml1*bh2(n,a1*r);
& && && && &B122=(2*n*lml1*a1+2*lml1*a1)*bh2(n+1,a1*r)/r;
& && && && &B123=lml1*a1^2*bh2(n+2,a1*r);
& && &&&B12=B121-B122+B123;
& && && && &C121=(2*lmn2*n^2-2*lmn2*n-lml2*r^2*kz^2)*besselj(n,a2*r)/r^2;&&%α2=a2
& && && && &C122=(4*lmn2*n+2*lmn2+2*n*lml2+2*lml2)*a2*besselj(n+1,a2*r)/r;
& && && && &C123=(2*lmn2*a2^2+lml2*a2^2)*besselj(n+2,a2*r);
& && &&&C12=C121-C122+C123;
& && && && &C221=(2*lmn2*1i*n^2-2*lmn2*1i*n)*besselj(n,b2*r)/(kt2*r^2);& && &%β2=b2
& && && && &C222=2*lmn2*1i*n*b2*besselj(n+1,b2*r)/(kt2*r);
& && &&&C22=C221-C222;
& && && && &C321=(2*lmn2*1i*kz*(n^2-n))*besselj(n,b2*r)/(kt2*r^2);
& && && && &C322=(2*lmn2*1i*kz*(2*n+1))*b2*besselj(n+1,b2*r)/(kt2*r);
& && && && &C323=2*lmn2*1i*kz*b2^2*besselj(n+2,b2*r)/kt2;
& && &&&C32=C321-C322+C323;
& && && && &C131=2*lmn2*(1i*n^2+n^2)*besselj(n,a2*r)/r^2;
& && && && &C132=2*lmn2*1i*n*a2*besselj(n+1,a2*r)/r;
& && &&&C13=C131-C132;
& && && && &C231=lmn2*(2*n-2*n^2)*besselj(n,b2*r)/r^2;
& && && && &C232=lmn2*2*n*b2*besselj(n+1,b2*r)/r;
& && && && &C233=lmn2*b2^2*besselj(n+2,b2*r);
& && &&&C23=C231+C232+C233;
& && && && &C331=lmn2*(2*n*kz-2*n^2*kz)*besselj(n,b2*r)/(kt2*r^2);
& && && && &C332=lmn2*2*n*kz*b2*besselj(n+1,b2*r)/(kt2*r);
& && &&&C33=C331+C332;
& && && && &C141=lmn2*2*1i*kz*n*besselj(n,a2*r)/r;
& && && && &C142=lmn2*2*1i*kz*a2*besselj(n+1,a2*r);
& && &&&C14=C141+C142;
& && &&&C24=-n*kz*lmn2*besselj(n,b2*r)/r;
& && && && &C341=b2^2*lmn2*n*besselj(n,b2*r)/(kt2*r);
& && && && &C342=b2^3*lmn2*besselj(n+1,b2*r)/kt2;
& && &&&C34=C341-C342;
& && &&&F1=C12*C23*C34;
& && &&&F2=C22*C33*C14;
& && &&&F3=C32*C13*C24;
& && &&&F4=C32*C23*C14;
& && &&&F5=C22*C13*C34;
& && &&&F6=C12*C24*C33;
& && &&&F7=C11*C23*C34;
& && &&&F8=C11*C33*C24;
& && &&&F9=C21*C33*C14;
& && &&&F10=C21*C13*C34;
& && &&&F11=C31*C13*C24;
& && &&&F12=C31*C23*C14;
& && &&&Tn1=A11*(F1+F2+F3-F4-F5-F6);
& && &&&Tn2=B12*(F7-F8+F9-F10+F11-F12);
& && &&&Tn=(Tn1/Tn2);
& && &&&tg_1=Tn;
& && &&&tg(n2,n3)=str2double(vpa(tg_1));& &&&
其实就是中间代换的几个比较繁琐,但是没有多大的意义,可以忽略。最后得到的矩阵行列式det=0,要解出变量w的。现在矩阵一直出不来,不知道为什么。
epssys=1.0e-6;
kl1=w*0.003;
kl2=w*1.376e-004;
kt2=w*3.315e-004;
kz=0;& && && && && && && && && && && && && &&&
a1 = sqrt(kl1^2-kz^2);& && && && && && && && && && &
a2 = sqrt(kl2^2-kz^2);& && && && && && && && && && &
b2 = sqrt(kt2^2-kz^2);& && && && && && && && && && && && && && && && && && && && && && && && && && && &
bh2 = @(nu,z)besselj(nu,z)-1i*bessely(nu,z);
tg=zeros(5,5);
for n2=1:5
& & for n3=1:5
& && &&&n=n2-3;
& && &&&n1=n3-3;
& && &&&A11=n*besselj(n,a1*r)/r-a1*besselj(n+1,a1*r);&&
& && &&&B11=n*bh2(n,a1*r)/r-a1*bh2(n+1,a1*r);& &
& && &&&C11=n*besselj(n,a2*r)/r-a2*besselj(n+1,a2*r);& &
& && &&&C21=1i*n*besselj(n,b2*r);
& && && && &A121=0;
& && && && &A122=(2*n*lml1*a1+2*lml1*a1)*besselj(n+1,a1*r)/r;
& && && && &A123=lml1*a1^2*besselj(n+2,a1*r);
& && &&&A12=A121-A122+A123;
& && && && &B121=0;
& && && && &B122=(2*n*lml1*a1+2*lml1*a1)*bh2(n+1,a1*r)/r;
& && && && &B123=lml1*a1^2*bh2(n+2,a1*r);
& && &&&B12=B121-B122+B123;
& && && && &C121=(2*lmn2*n^2-2*lmn2*n)*besselj(n,a2*r)/r^2;
& && && && &C122=(4*lmn2*n+2*lmn2+2*n*lml2+2*lml2)*a2*besselj(n+1,a2*r)/r;
& && && && &C123=(2*lmn2*a2^2+lml2*a2^2)*besselj(n+2,a2*r);
& && &&&C12=C121-C122+C123;
& && && && &C221=(2*lmn2*1i*n^2-2*lmn2*1i*n)*besselj(n,b2*r)/(kt2*r^2);& && &
& && && && &C222=2*lmn2*1i*n*b2*besselj(n+1,b2*r)/(kt2*r);
& && &&&C22=C221-C222;
& && && && &C131=2*lmn2*(1i*n^2+n^2)*besselj(n,a2*r)/r^2;
& && && && &C132=2*lmn2*1i*n*a2*besselj(n+1,a2*r)/r;
& && &&&C13=C131-C132;
& && && && &C231=lmn2*(2*n-2*n^2)*besselj(n,b2*r)/r^2;
& && && && &C232=lmn2*2*n*b2*besselj(n+1,b2*r)/r;
& && && && &C233=lmn2*b2^2*besselj(n+2,b2*r);
& && &&&C23=C231+C232+C233;
& && && && &C341=b2^2*lmn2*n*besselj(n,b2*r)/(kt2*r);
& && && && &C342=b2^3*lmn2*besselj(n+1,b2*r)/kt2;
& && &&&C34=C341-C342;
& && &&&F1=C12*C23*C34;
& && &&&F5=C22*C13*C34;
& && &&&F7=C11*C23*C34;
& && &&&F10=C21*C13*C34;
& && &&&Tn1=A11*(F1-F5)-A12*(F7-F10);
& && &&&Tn2=B12*(F7-F10)-B11*(F1-F5);
& && &&&Tn=vpa(Tn1/Tn2);
& && &&&tg_1=Tn;
& && &&&tg(n2,n3)=str2double(vpa(tg_1));& &&&
我已经整理了,该怎么联系你
epssys=1.0e-6;
a1=w*0.003;
a2=w*1.376e-004;
kt2=w*3.315e-004;
b2 = kt2;& && && && && && && && && && && && && && && && && && && && && && && && && && && &
bh2 = @(nu,z)besselj(nu,z)-1i*bessely(nu,z);
tg=zeros(5,5);
for n2=1:5
& & for n3=1:5
& && &&&n=n2-3;
& && &&&n1=n3-3;
& && &&&A11=n*besselj(n,a1*r)/r-a1*besselj(n+1,a1*r);&&
& && &&&tg_1=A11;
& && &&&tg(n2,n3)=str2double(vpa(tg_1));& &&&
w是一个未知数,我要生成一个矩阵tg,然后det=0求解出w的值。
我现在真的想不出其他办法了,你能有什么好的想法吗。
能不能把w也进行划分,带入矩阵检验det是否为零。
研究生必备与500万研究生在线互动!
扫描下载送金币一、& 基本统计处理
1、查取最大值MAX函数的命令格式有:[Y,I]= max (X):将max(X)返回矩阵X的各列中的最大元素值及其该元素的位置赋予行向量Y与I;当X为向量时,则Y与I为单变量。[Y,I]=max(X,[],DIM):当DIM=1时按数组X的各列查取其最大的元素值及其该元素的位置赋予向量Y与I;当DIM=2时按数组X的各行查取其最大的元素值及其该元素的位置赋予向量Y与I.max(A,B):返回一个与A,B同维的数组,其每一个元素是由A,B同位置上的元素的最大值组成。
【例1】查找下面数列x的最大值。x=[3 5 9 6 1 8]&&&&&& % 产生数列xx =&&&& 3&&&& 5&&&& 9&&&& 6&&&& 1&&&& 8y=max(x)&&&&&&&&&& % 查出数列x中的最大值赋予yy =&&&& 9[y,l]=max(x) % 查出数列x中的最大值及其该元素的位置赋予y,ly =&&&& 9l =&&&& 3
【例2】分别查找下面3&4的二维数组x中各列和各行元素中的最大值。x=[1 8 4 2;9 6 2 5;3 6 7 1]&&& % 产生二维数组xx =&&&& 1&&&& 8&&&& 4&&&& 2&&&&&&&&& 9&&&& 6&&&& 2&&&& 5&&&&&&&&&& 3&&&& 6&&&& 7&&&& 1y=max(x)&&&&&&&&&& % 查出二维数组x中各列元素的最大值产生赋予行向量yy =&&&& 9&&&& 8&&&& 7&&&& 5
[y,l]=max(x)&&&&&&&& % 查出二维数组x中各列元素的最大值及其这些&&&&&&&&&&&&&&&&&& % 元素的行下标赋予y,ly =&&&& 9&&&& 8&&&& 7&&&& 5l =&&&& 2&&&& 1&&&& 3&&&& 2[y,l]=max(x,[ ],1)&&&&& % 本命令的执行结果与上面命令完全相同y =&&&& 9&&&& 8&&&& 7&&&& 5l =&&&& 2&&&& 1&&&& 3&&&& 2[y,l]=max(x,[ ],2)&&&&& % 由于本命令中DIM=2,故查找操作在各行中进行y =&&&& 8&&&&&&&&& 9&&&&&&&& 7l =&&&& 2&&&&&&&& 1&&&&&&&& 3
[y,l]=max(x)&&&&&&&& % 查出二维数组x中各列元素的最大值及其这些&&&&&&&&&&&&&&&&&& % 元素的行下标赋予y,ly =&&&& 9&&&& 8&&&& 7&&&& 5l =&&&& 2&&&& 1&&&& 3&&&& 2[y,l]=max(x,[ ],1)&&&&& % 本命令的执行结果与上面命令完全相同y =&&&& 9&&&& 8&&&& 7&&&& 5l =&&&& 2&&&& 1&&&& 3&&&& 2[y,l]=max(x,[ ],2)&&&&& % 由于本命令中DIM=2,故查找操作在各行中进行y =&&&& 8&&&&&&&&& 9&&&&&&&& 7l =&&&& 2&&&&&&&& 1&&&&&&&& 3
2、查取最小值MIN函数用来查取数据序列的最小值。它的用法与命令格式与MAX函数完全一样,所不同的是执行的结果是最小值。
3、求中值所谓中值,是指在数据序列中其值的大小恰好在中间。例如,数据序列9,-2,5,7,12的中值为7 。如果为偶数个时,则中值等于中间的两项之平均值。
MEDIAN函数调用的命令格式有:Y=median(X):将median(X)返回矩阵X各列元素的中值赋予行向量Y。若X为向量,则Y为单变量。
Y=median(X,DIM):按数组X的第DIM维方向的元素求其中值赋予向量Y。若DIM=1,为按列操作;若DIM=2,为按行操作。若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。
【例4】试分别求下面数列x1与x2的中值。x1=[9 -2 5 7 12];&&&&&&&&&&& % 奇数个元素y1=median(x)y1 =&&&& 7x2=[9 -2 5 6 7 12];&&&&&&&&&& % 偶数个元素y2=median(x)y2 =&&& 6.5000
【例5】对下面二维数组x,试从不同维方向求出其中值。x=[1 8 4 2;9 6 2 5;3 6 7 1]&&&&& % 产生一个二维数组xx =&&&& 1&&&& 8&&&& 4&&&& 2&&&&&&&&& 9&&&& 6&&&& 2&&&& 5&&&&&&&&& 3&&&& 6&&&& 7&&&& 1y0=median(x)&&&&&&&&&&&&&& % 按列操作y0 =&&&& 3&&&& 6&&&& 4&&&& 2y1=median(x,1)&&&&&&&&&&&&& % 此时DIM=1,故按列操作,结果y1为行向量y1 =&&&& 3&&&& 6&&&& 4&&&& 2y2=median(x,2)&&&&&&&&&&&&& % 此时DIM=2,故按行操作, 结果y2为列向量y2 =&&& 3.0000&&&&&&&&&& 5.5000&&&&&&&&&& 4.5000
4、求和命令格式有:Y=sum(X):将sum(X)返回矩阵X各列元素之和赋予行向量Y;若X为向量,则Y为单变量。
Y=sum(X,DIM):按数组X的第DIM维的方向的元素求其和赋予Y。若DIM=1,为按列操作;若DIM=2,为按行操作。若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。
例如:x=[4 5 6;1 4 8]x =&&&& 4&&&& 5&&&& 6&&&& 1&&&& 4&&&& 8y=sum(x,1)y =&&&& 5&&&& 9&&& 14y=sum(x,2)y =&&& 15&&& 13
5、求平均值MEAN函数调用的命令格式有:Y= mean(X):将mean (X)返回矩阵X各列元素之的平均值赋予行向量Y。若X为向量,则Y为单变量。
Y= mean(X,DIM):按数组X的第DIM维的方向的元素求其平均值赋予向量Y。若DIM=1,为按列操作;若DIM=2,为按行操作。若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。
6、求积命令格式有:Y= prod(X):将prod(X)返回矩阵X各列元素之积赋予行向量Y。若X为向量,则Y为单变量。
Y= prod(X,DIM):按数组X的第DIM维的方向的元素求其积赋予向量Y。若DIM=1,为按列操作;若DIM=2,为按行操作。若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。
&7、 求累计和、累积积、标准方差与升序排序
MATLAB提供的求累计和、累积积、标准方差与升序排序等函数分别为CUMSUM、CUMPROD、STD和SORT,这里仅STD函数为MATLAB程序,其余均为内部函数。这些函数调用的参数与操作方式都与上小节的MEDIAN(中值)函数基本上一样,因此不作详细的介绍。
二、插值与曲线拟合
1.多项式的曲线拟合&&& 对于实验或统计数据,为了描述不同变量之间的关系,经常采用拟合曲线的办法。拟合曲线,就是要根据已知数据找出相应函数的系数。通常情况下,已知数据往往多于未知系数的个数,所以曲线拟合实质上是解超线性方程组。
&曲线拟合涉及回答两个基本问题:最佳拟合意味着什么?应该用什么样的曲线?可用许多不同的方法定义最佳拟合,并存在无穷数目的曲线。所以,从这里开始,我们走向何方?正如它证实的那样,当最佳拟合被解释为在数据点的最小误差平方和,且所用的曲线限定为多项式时,那么曲线拟合是相当简捷的。数学上,称为多项式的最小二乘曲线拟合。如果这种描述使你混淆,再研究图11.1。虚线和标志的数据点之间的垂直距离是在该点的误差。对各数据点距离求平方,并把平方距离全加起来,就是误差平方和。这条虚线是使误差平方和尽可能小的曲线,即是最佳拟合。最小二乘这个术语仅仅是使误差平方和最小的省略说法。
命令格式:p=polyfit(x,y,n):在向量p中返回多项式的系数。其中x和y为已知数据的横坐标和纵坐标向量,n为多项式的次数;[p,s]=polyfit(x,y,n):同时还返回一个误差估计数组s。
Matlab polyval
  函数功能
  多项式的估值运算
  使用方法
  y = polyval(p,x)
  返回n次多项式在x处的值。输入变量p是一个长度为n+1的向量,其元素为按降幂排列的多项式系数。
  y=p1*x^n+p2*x^(n-1)+...+pn*x+p(n+1)
  x可以是一个或者一个向量,在这两种情况下,polyval计算在X中任意元素处的多项式p的估值。
  对多项式p(x)=3*x^2+2*x+1,计算在x=5,7,9的值。
  && p = [3 2 1];
  && x=[5,7,9];
  && polyval(p,[5 7 9])
  %结果为
  86 162 262
x=(0:0.1:2.5);%x轴是0.5,只不过每隔0.1显示一个点(图中的圈)
y=erf(x);%误差函数,非初等函数
p=polyfit(x,y,6);
f=polyval(p,x);
plot(x,y,'o',x,f,'-');
&2. 一维插值插值定义为对数据点之间函数的估值方法,这些数据点是由某些集合给定。当人们不能很快地求出所需中间点的函数值时,插值是一个有价值的工具。例如,当数据点是某些实验测量的结果或是过长的计算过程时,就有这种情况。差值在信号和图像处理方面有很重要的应用。
命令格式:&&&&& yi=interp1(x,Y,xi)&&&&& yi=interp1(x,Y,xi,method)&其中,xi为需要插值的位置所组成的向量,yi为根据插值算法求得的值所组成的向量。x和Y为已知的数据点向量。参量用于确定具体的插值方法,包括:& &linear&:表示采用线性插值方法& &cubic&:表示采用三次插值方法& &nearest&:表示采用最近点插值方法& &spline&:表示采用三次样条插值方法这四种方法都要求把已知数据按x作升序或降序排列
  在选择插值方法时,应该考虑速度、内存需要和光滑问题。在上述四种方法中,最近点插值法最快,但它的插值很粗糙。线性插值较最近点插值法
需要更多的内存和计算时间,但插值曲线连续,并且导数连续。样条插值法虽然比三次插值法所需的内存少,但耗时多,不过插值曲线最光滑。需
要说明的是,由于样条插值的特性,当已知数据分布不均匀时,插值结果不太理想。
【例12】下面两个向量分别包括了年间美国人口普查的年代和相应的人口数(单位为百万)
&&&& 70 ] p=[75.0 105.0 &&&&& 131.0 179.0 &&&&&& 226.0]
估计1975年的人口数 &&&&&&&
interpl(t,p,1975) 估计年每一年的人口数 &&&&&&&
x=00; &&&&&&&
y=interp1(t,p,x,'spline'); &&&&&&&
plot(t,p,'o',x,y)
三.离散傅立叶变换
例&& 给定数学函数  x(t)=12sin(2&&10t+&/4)+5cos(2&&40t)取N=128,试对t从0~1秒采样,用fft作快速傅立叶变换,绘制相应的振幅-频率图。在0~1秒时间范围内采样128点,从而可以确定采样周期和采样频率。由于离散傅立叶变换时的下标应是从0到N-1,故在实际应用时下标应该前移1。又考虑到对离散傅立叶变换来说,其振幅| F(k)|是关于N/2对称的,故只须使k从0到N/2即可。
% 采样点数
% 采样时间终点
3 t=linspace(0,T,N);
% 给出N个采样时间ti(I=1:N)
4 x=12*sin(2*pi*10*t+pi/4)+5*cos(2*pi*40*t);
% 求各采样点样本值x
5 dt=t(2)-t(1);
% 采样周期
% 采样频率(Hz)
7 X=fft(x);
% 计算x的快速傅立叶变换X,ifft是逆变换
8 F=X(1:N/2+1);
% F(k)=X(k)(k=1:N/2+1)
9 f=f*(0:N/2)/N;
% 使频率轴f从零开始
10 plot(f,abs(F),'-*')
% 绘制振幅-频率图
11 xlabel('Frequency');
12 ylabel('|F(k)|')
&四.多项式计算
  1& 多项式的四则运算
    1.多项式的加减运算    2.多项式乘法运算  函数conv(P1,P2)用于求多项式P1和P2的乘积。这里,P1、P2是两个多项式系数向量。&&& 例& 求多项式x4+8x3-10与多项式2x2-x+3的乘积。
    3.多项式除法  函数[Q,r]=deconv(P1,P2)用于对多项式P1和P2作除法运算。其中Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。这里,Q和r仍是多项式系数向量。  deconv是conv的逆函数,即有P1=conv(P2,Q)+r。
&& 2 多项式的导函数(和diff不同的是polyder中p为向量而diff中是符号表达式)
  对多项式求导数的函数是:  p=polyder(P):求多项式P的导函数  p=polyder(P,Q):求P&Q的导函数  [p,q]=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。  上述函数中,参数P,Q是多项式的向量表示,结果p,q也是多项式的向量表示。
& 3& 多项式的求值
  MATLAB提供了两种求多项式值的函数:polyval与polyvalm,它们的输入参数均为多项式系数向量P和自变量x。两者的区别在于前者是代数多项式求值,而后者是矩阵多项式求值。
  1.代数多项式求值  polyval函数用来求代数多项式的值,其调用格式为:  Y=polyval(P,x)  若x为一数值,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。  例& 已知多项式x4+8x3-10,分别取x=1.2和一个2&3矩阵为自变量计算该多项式的值。
  2.矩阵多项式求值  rank(A)求秩,eig(A)求特征值。  polyvalm函数用来求矩阵多项式的值,其调用格式与polyval相同,但含义不同。polyvalm函数要求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))
&& 4 多项式求根
  n次多项式具有n个根,当然这些根可能是实根,也可能含有若干对共轭复根。MATLAB提供的roots函数用于求多项式的全部根,其调用格式为:  x=roots(P)  其中P为多项式的系数向量,求得的根赋给向量x,即x(1),x(2),&,x(n)分别代表多项式的n个根。
  例6-21& 求多项式x4+8x3-10的根。  命令如下:  A=[1,8,0,0,-10];  x=roots(A)  若已知多项式的全部根,则可以用poly函数建立起该多项式,其调用格式为:  P=poly(x)  若x为具有n个元素的向量,则poly(x)建立以x为其根的多项式,且将该多项式的系数赋给向量P。
  例& 已知 f(x)  (1) 计算f(x)=0 的全部根。  (2) 由方程f(x)=0的根构造一个多项式g(x),并与f(x)进行对比。  命令如下:  P=[3,0,4,-5,-7.2,5];  X=roots(P)&&&&&&&&&&& %求方程f(x)=0的根  G=poly(X)&&&&&&&&&&& %求多项式g(x)
阅读(...) 评论()推荐这篇日记的豆列
······
&(3人关注)

我要回帖

更多关于 矩阵最小多项式 的文章

 

随机推荐