【多项式】
多项式:$P(x)=a_0x^n+a_1x^{n-1}+a_2x^{n-2}+…+a_nx^0$
用系数来表示:$a_0a_1a_2…a_n$
例如:$2x^4+3x^2+x+1$
1 | p=[2 0 3 1 1] |
poly2sym(A)
:A是一个行向量,代表一个多项式的系数,利用该行向量构建一个符号类型的多项式
1 | >> p=[2 0 3 1 1]; |
【多项式的根】
roots(A)
:A 是一个行向量,代表一个多项式的系数,用于求解该多项式的根
1 | >> p=[2 0 3 1 1]; |
poly(A)
:A 是一个行向量,代表一个多项式的根,利用根求出该多项式的系数
1 | >> r=[1 -2 3] |
【多项式运算】
加减法:
- 两个多项式阶次相同时,与数组元素加减法相同
- 两个多项式阶次不同时,低阶的多项式用首 0 填补,使其与高阶多项式有同样的阶次
1 | function res=add_and_sub(a,b) |
乘法:
conv(A,B)
:执行 A,B 两向量的卷积运算conv(a,b,'shape')
:按形参‘shape’
返回卷积运算,取值如下:full
:返回完整的卷积,默认值same
:返回部分卷积,其大小与向量 A 大小相同valid
:只返回无填充 0 部分的卷积,此时输出向量 c 的最大值为 max(length(a) - max(0,length(b) - 1),0)
1 | >> A=[1 1]; |
除法:[q,r] = deconv(A,B)
:求多项式 A,B 的除法运算,其中 q 为返回多项式 B 除以 A 的商式,r 为返回 B 除以 A 的余式,即:B*q+r=A
1 | >> A=[1 2 3 4 5] |
【多项式导数】
polyder(A)
:求多项式 A 的导函数多项式polyder(A,B)
:求多项式 A 与多项式 B 乘积的导函数多项式[q,d] = polyder(b,a)
:求多项式 B 与多项式 A 相除的导函数,导函数的分子存入q,分母存入 d
1 | >> a = [3 6 9]; |
【多项式的积分】
polyint(p,k)
:返回以向量 p 为系数的多项式积分,积分的常数项为 k,k 默认为 0
例如:多项式为 $x^2-x+2$,常数项为 $\frac{1}{2}$
有:$\frac{1}{3}x^3-\frac{1}{2}x^2+2x+\frac{1}{2}$
1 | >> p = [1 -1 2]; |
【多项式估值】
y = polyval(p,x)
:p 为多项式的系数向量,x 为矩阵,按数组运算规则来求多项式的值
1 | >> x=[0:0.1:1] |
【有理多项式】
matlab 中,有理多项式由它们的分子多项式和分母多项式表示。
有理多项式展开
[r,p,k]=redidue(a,b)
:对有理多项式 $\frac{a}{b}$ 进行分式展开,r 为留数行向量,p 为极点行向量,k 为直项行向量,a 为分子多项式,b 为分母多项式
例如:$P(x)=\frac{x^3+2x^2+3x+4}{4x^3+5x^2+6x+7}$
分子项:a=[1 2 3 4]
,分母项:b=[4 5 6 7]
进行 redidue(a,b)
后有:
1 | >> a=[1 2 3 4]; |
那么,$P(x)$可表达为:$P(x)=\frac{r1}{x+p1}+\frac{r2}{x+p2}+\frac{r3}{x+p3}+k$
即:$P(x)=\frac{0.1341}{x-1.2078}+\frac{0.0267 - 0.1262i}{x-0.0211 + 1.2035i}+\frac{0.0267 + 0.1262i}{x-0.0211 - 1.2035i}+0.25$
有理多项式展开的逆运算
[b,a] = residue(r,p,k)
:根据 r 留数行向量,p 极点行向量,k 直项行向量,进行展开的逆运算,得到 a 分子多项式,b 分母多项式
1 | >> r =[0.1341, 0.0267 - 0.1262i, 0.0267 + 0.1262i]; |