分享一下在 MATLAB中的多项式相关运算。
表示多项式
MATLAB将多项式表示为行向量,其中包含按降幂排序的系数。例如,三元素向量
p = [p2 p1 p0];
表示多项式
p(x)=p2x2+p1x+p0.
创建一个向量以表示二次多项式 p(x)=x2−4x+4。
p = [1 -4 4];
此外,还必须将系数为 0
的多项式中间项输入到该向量中,因为 0
用作 x
的特定幂的占位符。
创建一个向量来表示多项式 p(x)=4x5−3x2+2x+33。
p = [4 0 0 -3 2 33];
多项式的计算
将多项式作为向量输入到 MATLAB® 后,请使用 polyval
函数根据特定值计算多项式。
使用 polyval
计算 p(2)。
polyval(p,2)
ans = 153
对多项式求积分和微分
通过polyint
和 polyder
函数对由系数向量表示的任何多项式求解析积分或微分。
使用 polyder
获取多项式 p(x)=x3−2x−5 的导数。生成的多项式为 q(x)=ddxp(x)=3x2−2。
p = [1 0 -2 -5];
q = polyder(p)
q = 1×3
3 0 -2
同样,使用 polyint
对多项式 p(x)=4x3−3x2+1 求积分。生成的多项式为 q(x)=p(x)dx=x4−x3+x。
p = [4 -3 0 1];
q = polyint(p)
q = 1×5
1 -1 0 1 0
polyder
也可以计算两个多项式积或商的导数。例如,创建两个向量来表示多项式 a(x)=x2+3x+5 和 b(x)=2x2+4x+6。
a = [1 3 5];
b = [2 4 6];
通过调用带有单个输出参数的 polyder
来计算导数 ddx[a(x)b(x)]。
c = polyder(a,b)
c = 1×4
8 30 56 38
通过调用带有两个输出参数的 polyder
来计算导数 ddx[a(x)b(x)]。生成的多项式为
ddx[a(x)b(x)]=−2x2−8x−24x4+16x3+40x2+48x+36=q(x)d(x).
[q,d] = polyder(a,b)
q = 1×3
-2 -8 -2
d = 1×5
4 16 40 48 36