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