先週は、複素数をやった。 今週は、多項式 (予定では、今回と次回) [多項式] 1 変数多項式 x : 変数 a_0, a_1, ..., a_n を定数とするときに、 a_0 + a_1 x + a_2 x^2 + .. + a_n x^n = f(x) を、「x の多項式」と言う。 a_0, .., a_n を多項式の係数と呼ぶ。 a_m を x^m の係数 a_0 を定数項 a_0, a_1 x, a_2 x^2, .., a_n x^n を多項式の項 a_m x^m を m 次の項 という。 a_n \ne 0 のとき、多項式 ( の次数は n | は n 次式 ) という。 多項式 f(x) の次数を deg f(x) で表す。f(x) の次数が n ならば、 deg f(x) = n が成立する。 f(x) = a_0, a_0 \ne 0 の時には、deg f(x) = 0 f(x) = 0 の時には、次数は定めない # ものの本によっては、-∞とするものもあるが、ここでは、単に定めない。 2 つの「多項式 f(x), g(x) が等しい」とは 次数が等しく かつ 全ての係数が等しい こと、この場合に、 f(x) = g(x) と書く。 [記号の定義] Z[x] = { x を変数とする 整数 係数多項式 } Q[x] = { x を変数とする 有理数 係数多項式 } R[x] = { x を変数とする 実数 係数多項式 } C[x] = { x を変数とする 複素数 係数多項式 } いま、 f(x) = a_0 + a_1 x + .. a_n x^n = \Sum_{k=0}^n a_k x^k g(x) = b_0 + b_1 x + .. b_m x^m = \Sum_{l=0}^m b_l x^l としたときに、 「多項式の和」を次のように定める。 m \le n の時 b_{m+1} = b_{m+2} = .. = b_n = 0 と定め f(x) \pm g(x) = \Sum_{k=0}^n (a_k \pm b_k ) x^k で、逆に、 n < m の時は、 a_{n+1} = a_{n+2} = .. = a_m = 0 と定め f(x) \pm g(x) = \Sum_{k=0}^m (a_k \pm b_k ) x^k とそれぞれ、定義する。 「多項式の積」を次のように定める。 f(x)g(x) = (\Sum_{k=0}^n a_k x^k) (\Sum_{l=0}^m b_l x^l) = \Sum_{k=0}^n\Sum_{l=0}^m a_kb_l x^(k+l) = \Sum_{i=0}^(n+m) ( \Sum_{ k+l=i, 0\le k\le n, 0\le l\le m ) x^i = a_0b_0 + (a_1b_0 + a_0b_1) x + .. 「多項式の合成」を次の通りに定める。 f(g(x)) = \Sum_{k=0}^n a_k g(x)^k = \Sum_{k=0}^n a_k (\Sum_{l=0}^m b_l x^l)^k # 展開は面倒なので、やらない。 f(x) = a_n x^n の時に、「単項式(モノミアル)」と呼ぶ(多項式は、ポリノミアル)。 # ここまでは、高校で学んだことを、難しく ( 一般的かつ、厳密に.. ) やりなおしただけ [多変数多項式] 複数の変数を含む式 [例 1] f(x,y) = x^3y^2+2xy^5+7x^2y^2+4xy+6 f(x,y) = \Sum_{k=0}^n (\Sum_{l=0}^m a_{k,l} x^k y^l) = a_{0,0} + a_{1,0} x + a_{0,1} y # 係数は、一時変数 [次数] y の定数と思って f(x,y) を変数 x の多項式と考えた時の次数を f(x,y) の x に関する次数と呼び、 deg_x f(x,y) で表す。 同様に x の定数と思って f(x,y) を変数 y の多項式と考えた時の次数を f(x,y) の y に関する次数と呼び、 deg_y f(x,y) で表す。 [総次数] x^i y^i を i+j の次の項と考え a_{i,j} \ne 0 となるものの中で i+j が最大のものを、f(x,y) の(総) 次数と呼び deg f(x,y) で表す。 # n 変数多項式は、行列式を学ぶ時に必要になる。 [例] 先ほどの例の f(x,y) の場合 deg_x f(x,y) = 3 deg_y f(x,y) = 5 deg f(x,y) = 6 一般に n 変数の多項式 f(x_1,x_2,..,x_n) = \Sum_{ (k_1,k_2,..,k_n) \in S ) a_{k_1,k_2,..,k_n} x_1^{k_1}x_2^{k_2}..x_n^{k_n} # (k_1,..,k_n) の取りうる範囲を限定しないと、無限次元になるの で、これは考えたくない、そこで、その範囲 (S) を限定している。 「f(x_1,..,x_n) が斉次式 ( 同次式 ) である」とは、f の全ての項について a_{k_1,k_2,..,k_n} \ne 0 => k_1 + k_2 + .. + k_n = m が成立すること。 [例] 定数式は 0 次の同次式 x y の 3 斉次式 a_{3,0} x^3 + a_{2,1} x^2y + a_{1,2} xy^2 + a_{0,3}y^3 [例] (二項定理) 二項係数とは nCr = ( n ) r = \frac{n(n-1)(n-2)..(n-r+1)}{r(r-1)..1} = \frac{n!}{r!(n-r)!) ( n \in N, r=0,1,..,n ) ただし、 0! = 1, nC0 = 1 と定義する。 二項係数の性質 nC0 = nCn = 1 nC1 = nC(n-1) = n nCr = nC(n-r) # 左右対称 nCr + nC(r-1) = (n+1)Cr ∵ 計算すれば良い # 最後の性質を利用すると、「パスカルの三角形」が作れる。 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 # 二項係数の対称性は、このパスカルの三角形からも解る # ここまでが、二項係数 二項定理とは (x+y) = \Sum_{k=0}^n nCk x^ky^{n-k} 証明は、n に関する帰納法 [例] (多項定理 : 二項定理の一般化 ) # 定理は、一般に n 種類の変数を利用するが、取りあえず 三変数で試す (x+y+z)^n = (x + α)^n α = y + z とおいた = \Sum_{k=0}^n nCk x^kα^{n-k} 二項定理より ここで、 α^k = (y+z)^k = \Sum_{l=0}^k kCl y^lz^{k-l} なので、結局、 (x+y+z)^n = \Sum_{k=0}^n\Sum_{l=0}^k nCk kCl x^{n-k} y^{k-l} z^m ここで、 p = n - k q = k - l r = l と置き換えると = \Sum_{p+q+r=n} \frac{n!}{p!q!r!} x^p y^q z^r となる。 より、一般的に、n 変数にすると.. (x_1 + x_2 + .. + x^m)^n = \Sum_{k_1+k_2+..+k_m = n} \frac{n!}{k_1!k_2!..k_m!} x_1^{k_1} x_2^{k_2}...x_m^{k_m} (where 0 \le k_i) となる。 == # 整数の時と同様、多項式の和、差、積は、再び、多項式となるが、商は多項 # 式とならない場合がある(割り算は、閉じていない)。そこで、整数の時と同 # 様に、「余り」を考える [定理] f(x), g(x) を K-係数多項式 ( Text p.226 定理 1.2 ) とする ( K は、Q, R, C のいずれか ) の時に、 f(x) = h(x) g(x) + r(x) (where deg r(x) < deg g(x), または r(x) = 0) # r(x) = 0 の時 deg r(x) は定めなかった時に注意 を満す、多項式 h(x) : 商 r(x) : 余り が一意に定まる ( 証明は、Text 参照 ) 特に、 r(x) = 0 の時に 「g(x) は、f(x) を割切る」 と呼び g(x) は、f(x) の因数とか、約数とか因子と呼ぶ。 また、逆に、 f(x) は、g(x) で割切れるとか、倍数であると呼ぶ。 [定義] 多項式 f(x), g(x) に対して、 f(x) と g(x) の公約数の内で、次数が最大のもの : 最大公約数 f(x) と g(x) の公倍数の内で、次数が最小のもの : 最小公倍数 [例] f(x)=4x^2, g(x) = 2x^2 + 6x 最大公約数: x, 2x, 5x, -3/2 x, ... : 沢山 # 沢山あることに注意。一つの約数の定数倍は、約数なので.. # 一意に决めたい場合は、最上位の次数の係数を 1 にするなど指定する。 最小公約数: x^3+2x^2, x4^3+8x^2, ... [定理] 剰余定理 f(x) を x-α を割った余りは、f(α) となる。 ∵ f(x) = g(x)(x-α) + r なので、f(α) = g(α)(α-α) + r = r [定理] 因数定理 f(x) を x-α を割り切れる <=> f(α) = 0 [deg の性質] deg(f(x)\pm g(x)) = max(deg f(x), deg g(x)) deg(f(x)g(x)) = deg f(x) + deg g(x) f(x) = h(x)g(x)+r(x) ( h(x) \ne 0, h(x) は商 ) の時 deg h(x) = deg f(x) = deg g(x) == 次回の予告 ( ユークリッドの互除法 ) 510 と 303 の最大公約数を求めたい.. どうするか ? 取りあえず、大きい方を小さい方で割り、その余りを計算する 510 ÷ 303 = 1 .. 207 その余りで、小さい方を割る 303 ÷ 303 = 1 .. 207 同様に.. 207 ÷ 96 = 2 .. 15 96 ÷ 15 = 6 .. 6 15 ÷ 6 = 2 .. 3 6 ÷ 3 = 2 .. 0 <= 割切れた 最後の割切れた数 3 が、実は、元の二つの数 510, 303 の最大公約数 このようなやり方を「ユークリッドの互除法」と呼ぶ # 来年の「ソフトウェア概論」で使う !!