В численном анализе многочлен Уилкинсона — это особый многочлен , который был использован Джеймсом Х. Уилкинсоном в 1963 году для иллюстрации трудности нахождения корня многочлена: расположение корней может быть очень чувствительным к возмущениям коэффициентов многочлена.
Полином Иногда термин «полином Уилкинсона» также используется для обозначения некоторых других полиномов, появляющихся в рассуждениях Уилкинсона.
Полином Уилкинсона возник при изучении алгоритмов нахождения корней полинома. В численном анализе естественным является вопрос о том, является ли задача нахождения корней p по коэффициентам c i хорошо обусловленной . То есть мы надеемся, что небольшое изменение коэффициентов приведет к небольшому изменению корней. К сожалению, в данном случае это не так.
Задача плохо обусловлена, когда многочлен имеет кратный корень. Например, многочлен x 2 имеет двойной корень при x = 0. Однако многочлен x 2 − ε (возмущение размера ε ) имеет корни при ±√ ε , что намного больше ε, когда ε мало.
Поэтому естественно ожидать, что плохая обусловленность также возникает, когда полином имеет нули, которые находятся очень близко. Однако проблема может быть также крайне плохо обусловленной для полиномов с хорошо разделенными нулями. Уилкинсон использовал полином w ( x ) для иллюстрации этого момента (Уилкинсон 1963).
В 1984 году он описал влияние этого открытия на его личность:
Говоря за себя, я считаю это самым травматичным опытом в моей карьере числового аналитика. [1]
Полином Уилкинсона часто используется для иллюстрации нежелательности наивного вычисления собственных значений матрицы путем предварительного вычисления коэффициентов характеристического полинома матрицы , а затем нахождения ее корней, поскольку использование коэффициентов в качестве промежуточного шага может привести к чрезвычайно плохой обусловленности, даже если исходная задача была хорошо обусловлена. [2]
Полином Уилкинсона явно имеет 20 корней, расположенных при x = 1, 2, ..., 20. Эти корни находятся далеко друг от друга. Однако полином все еще очень плохо обусловлен.
Раскрывая многочлен, находим
Если коэффициент при x 19 уменьшить с −210 на 2 −23 до −210.0000001192, то значение полинома w (20) уменьшится с 0 до −2 −23 20 19 = −6.25×10 17 , а корень при x = 20 вырастет до x ≈ 20.8 . Корни при x = 18 и x = 19 сталкиваются в двойной корень при x ≈ 18.62 , который превращается в пару комплексно-сопряженных корней при x ≈ 19.5 ± 1.9 i по мере дальнейшего увеличения возмущения. 20 корней становятся (до 5 десятичных знаков)
Некоторые из корней сильно смещены, хотя изменение коэффициента незначительно, а исходные корни кажутся широко разнесенными. Уилкинсон показал с помощью анализа устойчивости, обсуждаемого в следующем разделе, что это поведение связано с тем фактом, что некоторые корни α (например, α = 15) имеют много корней β , которые «близки» в том смысле, что | α − β | меньше, чем | α |.
Уилкинсон выбрал возмущение 2 −23 , потому что его компьютер Pilot ACE имел 30-битные мантиссы с плавающей точкой , поэтому для чисел около 210, 2 −23 было ошибкой в первой битовой позиции, не представленной в компьютере. Два действительных числа, −210 и −210 − 2 −23 , представлены одним и тем же числом с плавающей точкой, что означает, что 2 −23 является неизбежной ошибкой при представлении действительного коэффициента, близкого к −210, числом с плавающей точкой на этом компьютере. Анализ возмущения показывает, что точность 30-битного коэффициента недостаточна для разделения корней многочлена Уилкинсона.
Предположим, что мы возмущаем многочлен p ( x ) = Π ( x − α j ) с корнями α j , добавляя небольшое кратное t · c ( x ) многочлена c ( x ) , и спрашиваем, как это влияет на корни α j . В первом порядке изменение корней будет контролироваться производной Когда производная мала, корни будут более устойчивыми при изменениях t , и наоборот, если эта производная велика, корни будут неустойчивыми. В частности, если α j является кратным корнем, то знаменатель обращается в нуль. В этом случае α j обычно не дифференцируемо по t (если только c случайно не обращается в нуль там), и корни будут крайне неустойчивыми.
Для малых значений t возмущенный корень задается разложением в степенной ряд по t, и можно ожидать проблем, когда | t | больше радиуса сходимости этого степенного ряда, который задается наименьшим значением | t | таким, что корень α j становится кратным. Очень грубая оценка для этого радиуса берет половину расстояния от α j до ближайшего корня и делит на производную выше.
В примере полинома Уилкинсона степени 20 корни задаются как α j = j для j = 1, ..., 20 , а c ( x ) равно x 19. Таким образом, производная задается как Это показывает, что корень α j будет менее устойчивым, если рядом с α j находится много корней α k , в том смысле, что расстояние |α j − α k | между ними меньше, чем |α j |.
Пример . Для корня α 1 = 1 производная равна 1/19!, что очень мало; этот корень устойчив даже при больших изменениях t . Это потому, что все остальные корни β далеки от него, в том смысле, что | α 1 − β | = 1, 2, 3, ..., 19 больше, чем | α 1 | = 1. Например, даже если t столь же велико, как –10000000000, корень α 1 изменяется только от 1 до примерно 0,99999991779380 (что очень близко к приближению первого порядка 1 + t /19! ≈ 0,99999991779365). Аналогично, другие малые корни многочлена Уилкинсона нечувствительны к изменениям t .
Пример . С другой стороны, для корня α 20 = 20 производная равна −20 19 /19! что огромно (около 43000000), поэтому этот корень очень чувствителен к небольшим изменениям t . Другие корни β близки к α 20 , в том смысле, что | β − α 20 | = 1, 2, 3, ..., 19 меньше, чем | α 20 | = 20. Для t = −2 − 23 приближение первого порядка 20 − t ·20 19 /19! = 25,137... к возмущенному корню 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 (к малым возмущениям коэффициента x 19 ), в 20 19 = 52428800000000000000000000.
Второй пример, рассмотренный Уилкинсоном, — Двадцать нулей этого многочлена находятся в геометрической прогрессии с общим отношением 2, и, следовательно, частное не может быть большим. Действительно, нули w 2 довольно устойчивы к большим относительным изменениям коэффициентов.
Разложение выражает полином в определенном базисе, а именно в базисе мономов. Если полином выражается в другом базисе, то задача нахождения его корней может перестать быть плохо обусловленной. Например, в форме Лагранжа небольшое изменение одного (или нескольких) коэффициентов не должно слишком сильно менять корни. Действительно, базисные полиномы для интерполяции в точках 0, 1, 2, ..., 20 имеют вид
Каждый многочлен (степени 20 или ниже) можно выразить в этом базисе:
Для полинома Уилкинсона находим
Учитывая определение базисного полинома Лагранжа ℓ 0 ( x ) , изменение коэффициента d 0 не приведет к изменению корней w . Однако возмущение других коэффициентов (все равные нулю) немного изменит корни. Поэтому полином Уилкинсона хорошо обусловлен в этом базисе.
Уилкинсон обсуждал «свой» многочлен в
Он упоминается в стандартных учебниках по численному анализу, например:
Другие ссылки:
Высокоточный численный расчет представлен в: