Octave 编程教程/多项式
外观
在 Octave 中,多项式由其系数(按降序排列)表示。例如,向量
octave:1> p = [-2, -1, 0, 1, 2];
表示多项式
您可以使用 polyout
函数显示多项式来检查这一点。
octave:2> polyout(p, 'x') -2*x^4 - 1*x^3 + 0*x^2 + 1*x^1 + 2
该函数在指定变量(在本例中为 x
)中显示多项式。注意,^
表示乘方,就像 Octave 运算符一样。
- 求多项式的值
y = polyval(p, x)
这将返回 。如果x 是向量或矩阵,则多项式将在x 的每个元素处求值。
- 乘法
r = conv(p, q)
这里,p
和 q
是包含两个多项式系数的向量,结果 r
将包含它们的乘积的系数。
(顺便说一下,该函数被称为 conv
的原因是,我们使用向量卷积来进行多项式乘法。)
- 除法
[b, r] = deconv(y, a)
这将返回多项式b 和r 的系数,使得
因此,b
包含商的系数,r
包含y 和a 的余数的系数。
- 求根
roots(p)
这将返回一个向量,其中包含系数为 p
的多项式的所有根。
- 导数
q = polyder(p)
这将返回系数为向量 p
给出的多项式的导数的系数。
- 积分
q = polyint(p)
这将返回系数由向量 p
表示的多项式的积分的系数。积分常数设置为 0。
- 数据拟合
p = polyfit(x, y, n)
这将返回一个度数为 的多项式 的系数,该多项式在最小二乘意义上最适合数据 。
由于多项式由其系数向量表示,因此在 Octave 中添加多项式并不简单。例如,我们定义多项式 和 。
octave:1> p = [1, 0, -1]; octave:2> q = [1, 1];
如果我们尝试添加它们,我们会得到
octave:3> p + q error: operator +: nonconformant arguments (op1 is 1x3, op2 is 1x2) error: evaluating binary operator `+' near line 22, column 3
这是因为 Octave 试图添加两个不同长度的向量(p
和 q
)。此操作未定义。为了解决此问题,您必须在 q
中添加一些前导零。
octave:4> q = [0, 1, 1];
请注意,添加前导零不会改变多项式。接下来,我们添加
octave:5> p + q ans = 1 1 0 octave:6> polyout(ans, 'x') 1*x^2 + 1*x^1 + 0