>>
<<
Ркв
Ввд
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
Фрз
Слв
Изм
Рзг
!:
Помощь
Словарь