>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь

25. Многочлены через Корни

Произведение */y-r называется многочленом, выраженным через его корни 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. Коэффициенты через корни
   pir=: */@(]-[)"1 0              NB. Многочлен через корни

  ,.&.>(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. Первые семь членов ряда Тейлора для экспоненты
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



>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь