跳轉到內容

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 程式設計教程索引

華夏公益教科書