Многочлен Уилкинсона
Многочлен Уилкинсона — многочлен, который использовал Джеймс Харди Уилкинсон в 1963 году, чтобы проиллюстрировать трудность нахождения корней многочлена положение корней, так как решение может быть очень чувствительным к малым изменениям коэффициентов многочлена.
Иногда термин многочлен Уилкинсона используется также для других многочленов, возникающих в обсуждениях Уилкинсона.
Предыстория
Многочлен Уилкинсона возник при изучении алгоритмов для поиска корней многочлена В численном анализе закономерно возникает вопрос, насколько хорошо обусловлена задача нахождения корней многочлена p по его коэффициентам ci. Иными словами, мы надеемся, что небольшое изменение коэффициентов приведет к небольшому изменению корней. К сожалению, в данном случае это не так.
Задача плохо обусловлена, если имеет кратный корень. Например, многочлен x2 имеет кратный корень x = 0. Однако, многочлен x2 − ε (возмущение на величину ε) имеет корни ±√ε, которые много больше, чем ε, если ε мало.
Поэтому естественно ожидать, что плохо обусловленная задача возникает также, если многочлен имеет очень близкие корни. Однако задача может оказаться крайне плохо обусловленной для многочлена с хорошо разделёнными корнями. Уилкинсон использовал многочлен w(x), чтобы проиллюстрировать это[1].
В 1984 году, он описал личное впечатление этого открытия:
Говоря за себя, я считаю это самым травмирующим опытом в моей карьере специалиста по численным методам.[2]
Многочлен Уилкинсона часто используется для иллюстрации нежелательности вычисления собственных значений матриц путём сначала вычисления коэффициентов характеристического многочлена матрицы и поиска затем его корней, поскольку использование коэффициентов как промежуточного шага может привести к крайне плохо обусловленной задаче, даже если исходная задача была хорошо обусловлена[3].
Обусловленность многочлена Уилкинсона
Многочлен Уилкинсона имеет очевидно 20 корней со значениями x = 1, 2, ..., 20. Эти корни достаточно далеко расположены друг от друга. Однако, многочлен остаётся очень плохо обусловленным.
Раскрыв скобки, получим
Если коэффициент x19 уменьшен со значения −210 на 2−23 до −210,0000001192, то значение многочлена w(20) уменьшается с 0 до , а корень x = 20 увеличивается до . Корни x = 18 и x = 19 объединяются в кратный корень , который превращается в пару комплексных сопряжённых корней при дальнейшем увеличении. 20 корней переходят в (с точностью до 5 знаков)
Некоторые корни сильно смещаются, даже несмотря на незначительное изменение коэффициента и кажущееся широкое расстояние между исходными корнями. Уилкинсон показал с помощью анализа устойчивости, описанного ниже, что это поведение связано с тем, что некоторые корни α (такие как α = 15) имеют несколько корней β, которые «близки» в смысле, что |α − β| меньше |α|.
Уилкинсон выбрал отклонение 2−23, поскольку его компьютер Pilot ACE имел числа с плавающей запятой с 30-битной мантиссой. Два вещественных числа −210 и −210 − 2−23 в машине представляются одним и тем же плавающим числом, что означает, что 2−23 является неизбежной ошибкой в представлении вещественного коэффициента около −210 числом с плавающей точкой на этом компьютере. Анализ возмущений показывает, что 30-битная точность коэффициентов недостаточна для разделения корней многочлена Уилкинсона.
Анализ устойчивости
Предположим, что мы возмущаем многочлен с корнями путём добавления многочлена с небольшим коэффициентом , и спросим, как это повлияет на корни . В первом приближении изменение корней будет контролироваться производной Если производная мала, корни будут более устойчивы к изменению t, и наоборот, если производная велика, корни будут неустойчивы. В частности, если является кратным корнем, то знаменатель обращается в ноль. В этом случае, αj обычно не дифференцируема по t (если только c случайно не обращается в ноль в этой точке), и корни будут чрезвычайно неустойчивы.
Для малых значений t возмущённый корень задаётся разложением в степенной ряд по t и следует ожидать проблемы, когда |t| больше радиуса сходимости этого степенного ряда, который определяется наименьшим значением |t|, при котором корень становится кратным. Очень грубая оценка этого радиуса получается как половина расстояния от до ближайшего корня с последующим делением на упомянутую выше производную.
На примере многочлена Уилкинсона степени 20, корни задаются как для j = 1, ..., 20, и c(x) равно x19. Так что производная задаётся формулой Это показывает, что корень будет менее устойчивым, если имеется много корней близких к , в том смысле, что расстояние между ними меньше |αj|.
Пример. Для корня производная равна 1/19!, и эта величина очень мала. Этот корень устойчив даже при больших значениях t. Это потому, что все другие корни β далеки от него, в том смысле, что больше, чем . Например, даже если t имеет значение –10000000000, корень изменяется только с 1 до примерно 0,99999991779380 (что очень близко приближению первого порядка 1 + t/19! ≈ 0,99999991779365). Аналогично, другие малые корни многочлена Уилкинсона нечувствительны к изменениям t.
Пример. С другой стороны, для корня , производная равна , что очень велико (около 43000000), так что корень очень чувствителен к малым изменениям t. Другие корни β близки к α20, в смысле, что |β − α20| = 1, 2, 3, ..., 19 меньше . Для t = −2−23, приближение первого порядка для возмущённого корня 20,84... ужасно. И это даже более очевидно для корня α19, где возмущённый корень имеет большую мнимую часть, но приближение первого порядка (как и все приближения более высоких порядков) является действительным. Причина такого расхождения заключается в том, что |t| ≈ 0,000000119 больше радиуса сходимости степенного ряда, упомянутого выше, (который составляет около 0,0000000029, несколько меньше 0,00000001, полученного грубой оценкой) поэтому линейная теория неприменима. Для значения, такого как t = 0,000000001, которое значительно меньше этого радиуса сходимости, приближение первого порядка 19,9569... оказывается достаточно близким к корню 19,9509...
На первый взгляд корни α1 = 1 и α20 = 20 многочлена Уилкинсона кажутся похожими, поскольку они находятся на противоположных концах симметричной линии корней и имеют одинаковый набор расстояний 1, 2, 3, ..., 19 от других корней. Однако приведённый выше анализ показывает, что такая похожесть вводит в заблуждение: корень α20 = 20 менее устойчив, чем α1 = 1 (к малым возмущениям в коэффициенте при x19) на множитель 2019 = 5242880000000000000000000.
Второй пример Уилкинсона
Вторым примером, который рассматривал Уилкинсон, является Двадцать корней этого многочлена являются геометрической прогрессией, и, следовательно, частное Не может быть большим. Действительно, корни w2 довольно устойчивы к большим относительным изменениям коэффициентов.
Эффект базиса
Разложение представлен в определённом базисом, а именно в базисе одночленов. Если многочлен представлен в другом базисе, задача нахождения его корней может перестать быть плохо обусловленной. Например, в форме Лагранжа, небольшое изменение одного (или нескольких) коэффициентов не обязательно приведёт к сильному изменению корней. Действительно, базисные полиномы для интерполяции в точках 0, 1, 2, ..., 20 являются
Любой многочлен (степени 20 или меньше) можно выразить в этом базисе:
Для многочлена Уилкинсона мы находим
Если задано определение базисного многочлена Лагранжа ℓ0(x), изменение коэффициента d0 не приведёт к изменению корней w. Изменение же других коэффициентов (все они равны нулю) лишь слегка изменит корни. Поэтому многочлен Уилкинсона в этом базисе хорошо обусловлен.
Примечания
- ↑ Wilkinson, 1963.
- ↑ Wilkinson, 1984, с. 3.
- ↑ Trefethen, Bau, 1997.
Литература
- James H. Wilkinson. The perfidious polynomial // Studies in Numerical Analysis / (ed) Gene H. Golub. — Mathematical Association of America, 1984. — P. 3. — ISBN 978-0-88385-126-5.
- Lloyd N. Trefethen, David Bau. Numerical Linear Algebra. — SIAM, 1997. — ISBN 0-89871-361-7.
- J. H. Wilkinson. Rounding Errors in Algebraic Processes. — Englewood Cliffs, New Jersey: Prentice Hall., 1963.
Ссылки
Уилкинсон обсуждал «свой» многочлен в книге
- J. H. Wilkinson (1959). The evaluation of the zeros of ill-conditioned polynomials. Part I. Numerische Mathematik 1:150–166.
Она упомянута в стандартных учебниках по методам вычислений, как например
- F. S. Acton, Numerical methods that work, ISBN 978-0-88385-450-1, p. 201.
Другие ссылки:
- Ronald G. Mosier (July 1986). Root neighborhoods of a polynomial. Mathematics of Computation 47(175):265–273.
- J. H. Wilkinson (1984). The perfidious polynomial. Studies in Numerical Analysis, ed. by G. H. Golub, pp. 1–28. (Studies in Mathematics, vol. 24). Washington, D.C.: Mathematical Association of America.
Вычисления двойной точности представлены в:
- Ray Buvel, Polynomials And Rational Functions, part of the RPN Calculator User Manual (for Python), retrieved on 29 July 2006.