Math
Корни в движении
Корни многочлена на комплексной плоскости, бегущие, пока плывёт один коэффициент: два корня кубики встречаются на дискриминанте и уходят с вещественной оси парой, шесть корней крутятся на окружности, а десять корней Уилкинсона вышвыриваются в плоскость двумя миллионными долями одного коэффициента — ближайшая пара, число вещественных и граница Коши измеряются вживую, и задача про столкновение.

Что происходит
У многочлена степени n всегда n корней на комплексной плоскости — это основная теорема алгебры, — и они движутся непрерывно, когда движется коэффициент. Здесь один коэффициент t плывёт сам с момента открытия модуля, и корни бегут по плоскости, оставляя следы. У x³ − 3x + t три корня стартуют в −√3, 0 и √3; с ростом t два из них скользят навстречу по вещественной оси, встречаются при t = 2, где дискриминант 108 − 27t² равен нулю, и вместе уходят с оси сопряжённой парой, зеркально сверху и снизу — коэффициенты вещественные, и комплексный корень никогда не путешествует один. Тяни по плоскости — t движется рукой. Квартика x⁴ − 5x² + t делает это дважды; z⁶ − t держит шесть корней на окружности радиуса корень шестой степени из t. А многочлен Уилкинсона, (x − 1)(x − 2)…(x − 10), — причина бессонницы вычислителей: его корни 1…10, коэффициент при x⁹ равен −55, и сдвиг этого коэффициента на одну десятитысячную — две миллионные доли — выбрасывает корни с вещественной прямой больше чем на полединицы. Бледная окружность — граница Коши: ни один корень её не покидает. Корни ищутся итерацией Аберта и сверены с независимым решателем.
Уравнения модуля
Уравнения кубический: x³ − 3x + t; дискриминант 108 − 27t²; t = 0: −√3, 0, √3; t = 2: −2 и двойной корень в 1; t = 3: −2.1038 и 1.0519 ± 0.5652i; при |t| < 2 три вещественных корня, за этой границей сопряжённая пара в 1 ± i√((t − 2)/3) около t = 2 четвёртой степени: x⁴ − 5x² + t; x² = (5 ± √(25 − 4t))/2; t = 0: 0, 0, ±√5; t = 4: ±1, ±2; t = 6.25: ±1.5811 дважды окружность: z⁶ − t; шесть корней на радиусе |t|^(1/6), повёрнутых на 30° при t < 0 многочлен Уилкинсона: (x − 1)(x − 2)…(x − 10) + εx⁹, ε = t·10^−5; x⁹ несёт −55, свободный член равен 10! = 3 628 800; ε = 10^−6 сдвигает корень на 0.013; ε = 10^−4 (две миллионные доли от −55) делает корни комплексными, |Im| до 0.675, сдвиги до 0.90 решатель: метод Аберта–Эрлиха, старт с 0.9 от окружности Коши, а далее с положения предыдущего кадра, чтобы каждый корень сохранял свой след; сверено с numpy.roots до 10^−6 в двойнике Коши: каждый корень удовлетворяет |z| ≤ 1 + max|a_i|/|a_n| задача: сблизить два корня кубического многочлена до 0.2: |t − 2| < 0.03 (пара находится в 1 ± √(|t − 2|/3)); для 1.98 получается 0.163, для 1.95 получается 0.259 мастерская: корни, перетаскиваемые по плоскости, превращаются в коэффициенты по Виету - раскрывается Π(x − r_k), сопряжённые корни сохраняются, корень, лежащий ближе 0.03 к оси, прилипает к ней; Σ r_k = −a_(n−1)/a_n, Π r_k = (−1)^n·a₀/a_n невязка и порог: |p(z)| против 2n·ε·Σ|a_i||z|^i, ошибки округления схемы Горнера в точке z; в вещественном корне x³ − 3x + 3: 8.9·10^−16 при пороге 2.5·10^−14; в корне 10 многочлена Уилкинсона порог равен 0.003 чувствительность: |∂z/∂a_k| = |z|^k / |p′(z)|; Уилкинсон: корень 10 сдвигается на 10⁹/9! = 2755.7 на единицу a₉, корень 1 сдвигается на 2.8·10^−6; число обусловленности Σ|a_i||z|^i / (|z||p′(z)|) = 184756 = C(20, 10) в 10, 110 в 1 кратные корни: кластер в пределах 10^−3 сообщается как таковой; при x³ − 3x + 2 пара в 1 имеет |p′| = 1.1·10^−9 - двойной корень бесконечно чувствителен


