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