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

27. Многочлены: Корни из Коэффициентов II (метод Кернера)

Метод Ньютона находит корни по одному и требует хорошего начального приближения. Метод Кернера является его обобщением, позволяющим вычислить сразу все корни, исходя из списка начальных значений a . Его общая схема заключается в делении каждого элемента результата f a на производную в точке соответствующего корня. В методе Кернера предполагается, что коэффициент при старшей степени многочлена равен единице, а потому необходимо предварительно поделить все коэффициенты на последний (корни при этом не изменяются). Метод позволяет находить и комплексные корни, но только если одно из начальных значений комплексное. В качестве примера рассмотрим разложение экспоненты в ряд Тейлора (корни соответствующего многочлена комплексные):
   ]d=: ^ t. i.6
1 1 0.5 0.166667 0.0416667 0.00833333

   ]c=: (norm=: % {:) d
120 120 60 20 5 1

   +. a=: (init=: r.@}.@i.@#) c |a
 0.540302  0.841471 1 1 1 1 1
_0.416147  0.909297
_0.989992  0.14112
_0.653644 _0.756802
 0.283662 _0.958924

   deriv=: [: */ 0&=@{.}@(-/~ ,: 1:)

   kerner=: 1 : '] - x&p. % deriv@]'

   r=: c kerner ^:_ a
   +.(/:|) r               NB. Действ. и мнимая части корней, упоряд. по модулю
_2.18061 4.57601e_31
 _1.6495     1.69393
 _1.6495    _1.69393
0.239806     3.12834
0.239806    _3.12834

   >./|c p. r
1.04488e_13
Сравните эти результаты с результатами примитива p. для ненормированных коэффициентов d . Тоесть:
   p. 2 4 2
+-+-----+
|2|_1 _1|
+-+-----+

   ,.;}.p. d
 0.2398064j3.12834
0.2398064j_3.12834
   _1.6495j1.69393
  _1.6495j_1.69393
          _2.18061
Метод Ньютона тоже годится для нахождения комплексных корней:
   +. d NEWTON ^:0 1 2 3 _ a=: 1j1
        1        1
0.0166065  0.99639
_0.990523 0.992532
 _1.95338  1.10685
  _1.6495   1.6939



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