Octave で多項式 a0*x^n + a1*x^(n-1) + ..... + an の演算をすることができます。多項式 a0*x^n + a1*x^(n-1) + ..... + an を Octave では係数の横ベクトル [a0, a1, ...., an ] で表します。例えば y = x^2 + 2x + 3 の場合は
y = [1, 2, 3]
となります。
多項式の加減算は二つの多項式の次数をそろえる必要があります。y1 = x^2 + 2*x と y2 = x + 3 を加算するには次のようにします。
octave:> y1 = [1, 2, 0]; octave:> y2 = [0, 1, 3]; octave:> y1 + y2 ans = 1 3 3
多項式の乗算は conv 関数で行います。y1 = x + 1、y2 = x^2 - x + 1 の乗算は次のようにします。
octave:> y1 = [1, 1]; octave:> y2 = [1, -1, 1]; octave:> conv (y1, y2) ans = 1 0 0 1
多項式の除算は deconv 関数で行います。次の実行例では、y1 = 4x^3 + 3x^2 + 2x + 9 を y2 = x^2 + 2x + 3 で割った商は b = 4x - 5 で 余りが r = 24 になります。
octave:> y1 = [1, 2, 3]; octave:> y2 = [4, 3, 2, 9]; octave:> [b, r] = deconv (y2, y1) b = 4 -5 r = 24
y = x^2 + 3x + 1 に x = 2 を代入したときの式の値は次のように計算できます。
octave:> y = [2, 3, 1]; octave:> polyval(y, 2) ans = 15
方程式の根は root 関数で得ることができます。x^2 - 2x - 3 = 0 の解は次のようにして得られます。
octave:> roots ( [ 1, -2, -3 ] ) ans = 3.0000 -1.0000
x と y のデータの組 y = ax + b や y = ax^2 + bx + c などの回帰多項式を求めることができます。polyfit 関数は第一引数に x のデータ、第二引数に y のデータ 第三の引数に次数をとり、回帰式の係数と回帰曲線のデータを出力します。
octave:> x = linspace (0, 1, 100); octave:> y = 3 * x .* x + randn(size(x)); octave:> [a1, y1] = polyfit(x, y, 1); octave:> a1 a1 = 2.78584 -0.44202 octave:> [a2, y2] = polyfit(x, y, 2); octave:> a2 = 5.42645 -2.64061 0.45325 octave:> plot(x, y, x, y1, x, y2)