APL/J言語:ルート表現としての多項式(polynomials in terms of root

APL/J言語:ルート表現としての多項式(polynomials in terms of roots)

どんどんわからなくなってますが、とりあえず翻訳。

      • -

積*/y-rはルートrの表現としての多項式(polynomials in terms of roots r)と呼ばれる。理由は、引数yに多項式を適用したものと表されると同時に関数の結果のルートとゼロのリストがrになるからである。

   */y-r [ y=: 7 [ r=: 2 3 5 [ x=: 7 6 5 4 3 2
40

   pp=: +//.@(*/)
   c=: pp/monomials=: (- ,. 1:) r
   cfr=: [: pp/ - ,. 1:            NB. Coefficients from roots
   pir=: */@(]-[)"1 0              NB. Polynomial in terms of roots

  ,.&.>(r;monomials;c;(cfr r);(c&p. y);(r pir x))
 +-+----+---+---+--+--+
 |2|_2 1|_30|_30|40|40|
 |3|_3 1| 31| 31|  |12|
 |5|_5 1|_10|_10|  | 0|
 | |    |  1|  1|  |_2|
 | |    |   |   |  | 0|
 | |    |   |   |  | 0|
 +-+----+---+---+--+--+

cfrによって生成される係数の最後(最高次)の係数は必然的に1になるので、関数pirはそのままでは一般的な多項式を生成できない。しかし、乗数を提供されれば多項式を生成できる。そこで、次のようにcfrとpirを再定義し、ボックス化された乗数とルートに適用するものとする。

   CFR=: (* cfr)&>/
   PIR=: CFR@[ p. ]

   CFR 3;r
_90 93 _30 3

   (3;r) PIR x
120 36 0 _6 0 0

つぎに、多項式を近似に用いてみよう。

   ]ce=: ^ t. i. 7                 NB.指数についてテイラー数列の最初の7係数
1 1 0.5 0.166667 0.0416667 0.00833333 0.00138889

   (^ - ce&p.) _1 _0.5 0 0.5 1     NB.指数との比較
_0.000176114 _1.45834e_6 0 1.65264e_6 0.000226273

   pD ce                           NB.指数関数はその自身の微分一致する
1 1 0.5 0.166667 0.0416667 0.00833333