代码改变世界

MATLAB多项式运算

2015-05-15 16:59  chloe_zhou  阅读(13840)  评论(0编辑  收藏  举报

 序言

   none

 正文

 1. 多项式的表示

  在Matlab中,多项式用一个行向量表示, 行向量的元素值为多项式系数按幂次的降序排列, 如p(x)=x3-2x-5用P=[1,0,-2,-5]表示.

  2. 多项式相关的函数和运算

 (1) 多项式加减: 两个多项式之间的加减是对应幂次的系数进行加减, 可以直接用系数向量的加减法来得出.

 (2) 多项式乘法: 两个多项式的乘法用卷积函数conv来实现, 如计算多项式p1(x)=x3-2x-5p2(x)=2x2+3x+1的积可利用如下代码:

p1=[1,0,-2,-5];
p2=[2,3,1];
conv(p1,p2)

 (3) 多项式除法: deconv. 对于任意两个多项式p1, p2, deconv(p1,p2)的值为两个行向量, 即[q,r]=deconv(p1,p2), 其中q是p1除以p2的商, r是余, 它们满足p1=conv(p2,q)+r.

 (4) 多项式的根: roots. 对于任意多项式p(x), 假设p是它的系数向量, 那么roots(p)的值是一个列向量, 列向量的每个元素都是p(x)=0的根.

   (5) 矩阵的特征多项式由根求多项式: poly. 对于方阵A, poly(A)返回A的特征多项式对应的系数行向量(特征多项式的根为矩阵的特征值). 对于行向量r, poly(r)返回一个以r的所有元素为根的多项式的系数向量.

   (6) 对多项式求导:  polyder. 对于任意多项式p(x), 假设p是它的系数向量, 那么polyder(p)的值是一个行向量, 这个行向量是p'(x)=dp(x)/dx的系数向量.

   (7) 对多项式求不定积分: polyint. 对于任意多项式p(x), 假设p是它的系数向量, 那么polyint(p)的值是一个行向量, 这个行向量是p(x)的不定积分p(x)dx的系数向量. 可知, polyder(polyint(p))的结果为p.