跳转到内容

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)

这里,pq 是包含两个多项式系数的向量,结果 r 将包含它们的乘积的系数。

(顺便说一下,该函数被称为 conv 的原因是,我们使用向量卷积来进行多项式乘法。)

  • 除法
[b, r] = deconv(y, a)

这将返回多项式br 的系数,使得

因此,b 包含商的系数,r 包含ya 的余数的系数。

  • 求根
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 试图添加两个不同长度的向量(pq)。此操作未定义。为了解决此问题,您必须在 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

返回 Octave 编程教程索引

华夏公益教科书