MakarovSuites
Русский
EnglishDeutschРусскийУкраїнськаFrançaisEspañolItalianoPolski
Связь и лицензии

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 - двойной корень бесконечно чувствителен

Другие эксперименты

К каталогу
Дни рождения и коллизии — Изображение из программы

Math

Дни рождения и коллизии

Люди приходят на кольцо дней, пока двое не окажутся на одном: в году из 365 дней это 23-й человек, а не 183-й, на Марсе — 32-й, в 65 536 корзинах хеша — 302-й; прогоны против точной кривой, дни плывут под перетаскиванием от года до 2³², правило квадратного корня читается вживую, и задача про марсианскую комнату.

Код, который сам себя чинит — Изображение из программы

Math

Код, который сам себя чинит

Шестнадцать битов в квадрате, одиннадцать из них — сообщение: щёлкни по одному, и четыре лампы проверок назовут его адрес, а блок починит себя сам. Две ошибки блок поймает, но исправить не сможет; три — и он солжёт уверенно. Каждое утверждение исчерпывающее: все 32 768 одиночных ошибок найдены, все 245 760 двойных пойманы, все тройные исправлены неверно.

Бассейны метода Ньютона — Изображение из программы

Math

Бассейны метода Ньютона

Раскрась каждую стартовую точку по корню, к которому приходит метод Ньютона: при двух корнях граница — прямая, как доказал Кэли в 1879, при трёх — фрактал, который принадлежит всем трём бассейнам сразу. Потяни корень и смотри, как двигаются площади: корень, оттянутый наружу, забирает МЕНЬШЕ окна, а не больше.