Каскадная развёртка из неустойчивого истока: фазы и спектр
Каскадная развёртка из неустойчивого истока: четыре фазы, дискретный спектр и условия стабильности кластеров
УДК: 517.9 + 519.245 + 523.12
Авторы: Шунько Михаил Геннадиевич, Выпускник БНТУ ФИТР 2012
Ключевые слова: дискретное отображение, каскадная развёртка, неустойчивость истока, инфляция, дискретный спектр, стабильность кластеров, показатель Ляпунова, численное моделирование
Аннотация
Цель. Исследовать динамику каскадной развёртки дискретной трёхкомпонентной системы из неустойчивого истока, выявить фазовую структуру развёртки, вывести дискретный спектр отношения форма/сила и сформулировать условие стабильности кластеров.
Методы. Использована система с правилами , , и фикс-поинтом , построенная в работе [3]. Начальные условия — самосогласованные значения при : , , с возмущением формы . Численное моделирование выполнено в среде Engee с арифметикой высокой точности (150 значащих цифр). Аналитически выведены: число -folding, дискретный спектр , условие стабильности кластеров .
Результаты. Развёртка содержит четыре фазы. Инфляция (шаги 0–20): форма невидима (), энергия около единицы (), число -folding при и при . Рождение (шаги 20–26): форма достигает фикс-поинта ( при шаге ), энергия начинает рост. Развёртка (шаги 26+): энергия взрывается двойной экспонентой , форма доминирует. Насыщение (шаги 30+): сила падает ниже , каскад замирает. Дискретный спектр — точное тождество, подтверждающее, что уровни разделены множителем (структурной константой системы). Условие стабильности кластера из узлов, живущего шагов: . При достаточно , при — .
Выводы. Четыре фазы развёртки — следствие разных темпов компонент: сила убывает как , форма растёт как , энергия — двойная экспонента. Инфляция не постулируется, а следует из неустойчивости истока (работа [3]). Дискретный спектр с множителем — прямое следствие отношения множителей и . Условие стабильности кластеров даёт оценку минимального числа узлов для структуры, устойчивой на заданном числе шагов.
Ключевые слова: дискретное отображение, каскадная развёртка, неустойчивость истока, инфляция, дискретный спектр, стабильность кластеров, показатель Ляпунова, численное моделирование.
Введение
В работе [3] построена замкнутая трёхтактная дискретная система с фикс-поинтом , выведенным из условия самосогласованности. Показано, что исток неустойчив по двум направлениям: — отталкивающая точка (), — отталкивающая точка (двойная экспонента). Каскад запускается самопроизвольно.
Настоящая работа исследует, что происходит после запуска. Как из микроскопической флуктуации формы развёртывается каскад, какие фазы он проходит и какие структуры могут в нём образоваться.
Три результата составляют содержание работы:
- Четыре фазы развёртки — инфляция, рождение, развёртка, насыщение — как следствие разных темпов компонент.
- Дискретный спектр — точное тождество, показывающее, что уровни разделены структурной константой .
- Условие стабильности кластеров — оценка минимального числа узлов для структуры, устойчивой на шагов.
Работа [1] показала статистически значимую связь проекции с астрономическими расстояниями (). Работа [2] раскрыла двумерную структуру отображения. Работа [3] вывела фикс-поинт из самосогласованности. Настоящая работа описывает динамику развёртки как таковую — без привязки к конкретной физической интерпретации.
Математическая модель
Правила каскада
Система описывается трёхкомпонентным вектором с правилами [3]:
Множители и выведены из фикс-поинта . Их отношение — структурная константа .
Начальные условия
Самосогласованные начальные условия при (формулы (10) из [3]):
Исток — состояние . Форма возмущается флуктуацией . В базовом сценарии .
Точное решение для компонент
При начальных условиях :
Три разных темпа: линейный убывающий, линейный растущий, двойная экспонента. Их пересечение определяет фазовую структуру.
Число -folding
Форма достигает фикс-поинта за:
При : . При : .
Дискретный спектр
Отношение форма/сила:
Это точное тождество. Уровни разделены множителем — структурной константой системы. Дискретность рождена непрерывными правилами: отношение множителей и равно , и каждый шаг умножает ровно на .
Условие стабильности кластеров
Кластер — группа из узлов субстракта, удерживаемая внутренними связями. Сила связи, делегируемая внутри кластера за один шаг, убывает как за шагов. Внешнее возмущение, действующее на кластер, растёт как . Кластер стабилен, если внутренняя связь сильнее внешнего возмущения:
При (порядок истока):
Более точная оценка, учитывающая делегирование силы между узлами:
Условие (8) слабее (7), поскольку учитывает, что не все узлы теряют силу одинаково. Проверка числом: при , ; при , .
Методы
Протокол численного моделирования
Численное моделирование выполнено в среде Engee (engee.com) на языке Julia с арифметикой высокой точности BigFloat (150 значащих цифр), поскольку двойная экспонента при выходит за пределы Float64.
Параметры эксперимента:
| Параметр | Значение |
|---|---|
| Число шагов в такте | 20 |
| Начальная сила $ | a_0 |
| Начальная энергия | 1,0000015 |
| Возмущение формы | |
| Фикс-поинт | |
| Точность | 150 значащих цифр |
| Число шагов развёртки | 0–30 |
Проверяемые утверждения
- Четыре фазы. Развёртка содержит четыре качественно различных этапа, разделённых моментами доминирования компонент.
- -folding. Форма достигает за шагов (формула (4)).
- Дискретный спектр. — точное тождество (формула (5)).
- Стабильность кластеров. (формула (8)).
Результаты
Четыре фазы развёртки
Таблица 1. Динамика компонент при ,
| Шаг n | aₙ | bₙ | bₙ/b* | cₙ | Фаза |
|---|---|---|---|---|---|
| 0 | 4,661 | 1,0 × 10⁻⁶ | 2,3 × 10⁻⁶ | 1,0000015 | Инфляция |
| 5 | 0,247 | 1,3 × 10⁻⁵ | 2,9 × 10⁻⁵ | 1,00005 | Инфляция |
| 10 | 0,0131 | 1,7 × 10⁻⁴ | 3,7 × 10⁻⁴ | 1,0015 | Инфляция |
| 15 | 6,9 × 10⁻⁴ | 2,1 × 10⁻³ | 4,8 × 10⁻³ | 1,049 | Инфляция |
| 20 | 3,7 × 10⁻⁵ | 2,7 × 10⁻² | 0,062 | 4,661 | Рождение |
| 22 | 1,1 × 10⁻⁵ | 7,6 × 10⁻² | 0,171 | 471,96 | Рождение |
| 24 | 3,5 × 10⁻⁶ | 0,211 | 0,475 | 4,96 × 10¹⁰ | Рождение |
| 25 | 1,9 × 10⁻⁶ | 0,352 | 0,791 | 2,46 × 10²¹ | Рождение |
| 26 | 1,1 × 10⁻⁶ | 0,586 | 1,319 | 6,06 × 10⁴² | Развёртка |
| 27 | 6,0 × 10⁻⁷ | 0,977 | 2,198 | 3,67 × 10⁸⁵ | Развёртка |
| 28 | 3,3 × 10⁻⁷ | 1,628 | 3,664 | 1,35 × 10¹⁷¹ | Развёртка |
| 30 | 1,0 × 10⁻⁷ | 4,523 | 10,18 | — | Насыщение |
Фаза 1: Инфляция (шаги 0–20). Форма невидима (), энергия около единицы (). Каскад работает «в темноте» — ничего наблюдаемого. Сила убывает от до .
Фаза 2: Рождение (шаги 20–26). Форма достигает фикс-поинта ( при шаге ). Энергия начинает расти: проходит от до . Аналог фазового перехода.
Фаза 3: Развёртка (шаги 26+). Форма доминирует (). Энергия взрывается двойной экспонентой. Каскадный распад: сила тратится на рост формы, форма превышает насыщение, энергия выделяется.
Фаза 4: Насыщение (шаги 30+). Сила падает ниже . Делегировать нечего. Каскад замирает.
-folding
Таблица 2. Число -folding для различных
| Комментарий | ||
|---|---|---|
| 25,5 | Базовый сценарий | |
| 43,5 | Малая флуктуация | |
| 133,6 | Планковский масштаб |
Формула (4) точно согласуется с численным результатом: при для .
Дискретный спектр
Таблица 3. Отношение — точное тождество
| n | bₙ/|aₙ| (расчёт) | 3ⁿ | Семейство |
|---|---|---|---|
| 0 | 2,15 × 10⁻⁷ | 1 | Силовое |
| 5 | 5,21 × 10⁻⁵ | 243 | Силовое |
| 10 | 1,27 × 10⁻² | 59 049 | Силовое |
| 14 | 1,026 | 4,78 × 10⁶ | Граница |
| 15 | 3,079 | 1,43 × 10⁷ | Форменное |
| 20 | 748 | 3,49 × 10⁹ | Форменное |
| 25 | 1,82 × 10⁵ | 8,47 × 10¹¹ | Энергетическое |
| 30 | 4,42 × 10⁷ | 2,06 × 10¹⁴ | Энергетическое |
Уровни разделены множителем — точно. Граница между силовым и форменным семействами — при .
Стабильность кластеров
Таблица 4. Минимальное число узлов для кластера, живущего шагов
| Структура | ||
|---|---|---|
| 1 | 2 | Прото-частица |
| 2 | 3 | Связанная пара |
| 3 | 6 | Лёгкое ядро |
| 5 | 19 | Среднее ядро |
| 7 | 61 | Тяжёлое ядро |
| 10 | 357 | Крупный кластер |
Динамика компонент
Динамика трёх компонент при , представлена на рис. 1 (логарифмическая шкала). Четыре фазы выделены цветом. Дискретный спектр — на рис. 2: логарифмическая шкала, прямая с наклоном — точное следствие тождества (5). Стабильность кластеров — на рис. 3: граница .
Обсуждение
Происхождение четырёх фаз
Четыре фазы — не произвольное разбиение, а следствие трёх разных темпов. Сила убывает как — медленная геометрическая прогрессия. Форма растёт как — быстрая геометрическая прогрессия. Энергия растёт как — двойная экспонента. Три кривые пересекаются в определённой последовательности, создавая четыре интервала с разным доминированием.
Инфляция — интервал, где форма ещё невидима, а энергия ещё около единицы. Рождение — момент, когда форма догоняет фикс-поинт. Развёртка — энергия уходит на бесконечность. Насыщение — сила исчерпана.
Инфляция без инфлатона
В стандартной космологии инфляция постулируется через поле инфлатона с заданным потенциалом. В модели каскада инфляция — неизбежное следствие неустойчивости истока [3]. Ноль формы — отталкивающая точка (). Единица энергии — отталкивающая точка (двойная экспонента). Каскад запускается сам, без внешнего возмущения.
Число -folding при даёт — больше, чем , требуемых стандартной космологией. Модель обеспечивает достаточную инфляцию при любом разумном .
Дискретность из непрерывности
Дискретный спектр — точное тождество. Уровни разделены множителем — структурной константой, выведенной из фикс-поинта в работе [3]. Дискретность не вводится вручную (как квантование в стандартной физике), а рождается из непрерывных правил: отношение множителей и равно .
Стабильность кластеров
Условие — оценка минимального числа узлов для структуры, устойчивой на шагов. Множитель — обратный к (множителю силы): за шагов делегированная сила убывает как , и для компенсации нужно узлов с суммарной силой , то есть .
Оценка асимптотическая: реальная стабильность зависит от топологии связей, распределения силы между узлами и характера внешнего возмущения. Однако условие (8) даёт нижнюю границу, проверяемую численно.
Ограничения
-
Параметрическая зависимость. Границы фаз зависят от и . При других значениях шаги сдвигаются, но качественная картина (четыре фазы) сохраняется.
-
Отсутствие взаимодействия. Каскад (1) описывает эволюцию одного узла. Образование кластеров требует взаимодействия между узлами, что в данной модели не моделируется. Условие (8) — аналитическая оценка, не подтверждённая симуляцией многочастичной системы.
-
Физическая интерпретация. Соответствие фаз космологическим эпохам — аналогия, не доказательство. Работа [1] показала статистически значимую связь проекции с астрономическими расстояниями (), но физический механизм требует отдельного исследования.
Заключение
Исследована каскадная развёртка дискретной трёхкомпонентной системы из неустойчивого истока. Развёртка содержит четыре фазы: инфляцию (формы нет, энергия около единицы), рождение (форма достигает фикс-поинта), развёртку (энергия взрывается), насыщение (сила исчерпана). Границы фаз вычислены аналитически и подтверждены численно.
Дискретный спектр — точное тождество, следующее из отношения множителей и . Уровни разделены структурной константой , выведенной из фикс-поинта в работе [3].
Условие стабильности кластеров даёт нижнюю оценку числа узлов для структуры, устойчивой на шагов. Оценка аналитическая; проверка в многочастичной модели — следующая задача.
Число -folding при превышает космологическое требование . Инфляция в модели — не постулат, а следствие неустойчивости истока.
Дальнейшее исследование предполагает: многочастичную симуляцию с взаимодействием узлов, проверку условия стабильности (8) и исследование образования устойчивых структур в субстрате.
Список литературы
-
Шунько, М. Г. Дискретное динамическое отображение с показателем и статистическая корреляция с распределением планетных расстояний Солнечной системы / М. Г. Шунько // Engee. — 2026.
-
Шунько, М. Г. Двумерная структура дискретного отображения с показателем : каскад узлов, вторая степень свободы и зеркальная симметрия / М. Г. Шунько // Engee. — 2026.
-
Шунько, М. Г. Трёхтактный пермутационный цикл дискретного отображения с фикс-поинтом : самосогласованность, неустойчивость и точный возврат / М. Г. Шунько // Engee. — 2026.
-
Ланда, П. С. Нелинейные колебания и волны / П. С. Ланда. — М.: Наука, 1997. — 496 с.
-
Шустер, Г. Детерминированный хаос: Введение / Г. Шустер. — М.: Мир, 1988. — 240 с.
-
Каток, А. Б. Введение в современную теорию динамических систем / А. Б. Каток, Б. Хассельблатт. — М.: Факториал, 2005. — 802 с.
-
Devaney, R. L. An Introduction to Chaotic Dynamical Systems / R. L. Devaney. — 2nd ed. — Boulder: Westview Press, 2003. — 335 p.
-
Арнольд, В. И. Теория катастроф / В. И. Арнольд. — М.: Наука, 1990. — 128 с.
-
Гурвиц, А. Теория функций / А. Гурвиц, Р. Курант. — М.: Наука, 1968. — 648 с.
-
Лихтенберг, А. Регулярная и стохастическая динамика / А. Лихтенберг, М. Либерман. — М.: Мир, 1984. — 528 с.
-
Bezanson, J. Julia: A fresh approach to numerical computing / J. Bezanson, A. Edelman, S. Karpinski, V. B. Shah // SIAM Review. — 2017. — Vol. 59, № 1. — P. 65–98.
-
Engee — среда численного моделирования URL: https://engee.com.
Приложение А. Вывод тождеств и оценок
А.1. Точное решение каскада
При начальных условиях правила (1) дают:
Доказательство — индукция по . База — тривиальна. Шаг: . Аналогично для и .
А.2. Дискретный спектр
Из (А1):
Тождество точное. Множитель — структурная константа (формула (3) из [3]).
А.3. Число -folding
Форма достигает при :
А.4. Условие стабильности кластеров
Кластер из узлов. Внутренняя сила связи за шагов убывает как . Внешнее возмущение, действующее на один узел, растёт как . Условие стабильности: суммарная внутренняя связь превышает возмущение:
При :
Учёт делегирования силы между узлами (не все узлы теряют силу с множителем , часть удерживается внутренними связями) даёт более слабую оценку:
Условие (А6) использовано в работе как основная оценка. Для малых (1–3) разница между (А5) и (А6) невелика: vs .
Приложение Б. Исходный код
Численное моделирование выполнено в среде Engee. Ниже приведён полный исходный код расчёта четырёх фаз, проверки дискретного спектра и условия стабильности кластеров.
Листинг Б1. Расчёт фаз, спектра и стабильности
import matplotlib.pyplot as plt
import numpy as np
from decimal import Decimal, getcontext
# Высокая точность (150 знаков) — двойная экспонента требует
getcontext().prec = 150
# Параметры
N = 20
a0 = Decimal("4.660964")
c0 = Decimal("1.000001467918")
delta_b = Decimal("1e-6")
b_star = Decimal(4) / Decimal(9)
five_ninth = Decimal(5) / Decimal(9)
five_third = Decimal(5) / Decimal(3)
# Каскад
a = -a0
b = -delta_b
c = c0
print("=" * 80)
print("Каскадная развёртка: четыре фазы")
print("=" * 80)
print(" n | |a| | |b| | |b|/b* | c")
print("-" * 75)
key_steps = [0, 5, 10, 15, 20, 22, 24, 25, 26, 27, 28, 30]
for n in range(31):
a_f = abs(float(a))
b_f = abs(float(b))
c_f = float(c)
ratio_b = b_f / float(b_star)
if n in key_steps:
print(f"{n:3d} | {a_f:<16.6g} | {b_f:<16.6g} | {ratio_b:<14.4f} | {c_f}")
a = a * five_ninth
b = b * five_third
c = c * c
# E-folding
print("\n" + "=" * 80)
print("E-folding")
print("=" * 80)
for db in [1e-6, 1e-10, 1e-30]:
n_ef = np.log(float(b_star) / db) / np.log(5/3)
print(f"delta_b = {db}: N_e-fold = {n_ef:.1f}")
# Дискретный спектр
print("\n" + "=" * 80)
print("Дискретный спектр |b|/|a| = (delta_b/a0) * 3^n")
print("=" * 80)
ratio_0 = float(delta_b / a0)
print(f"delta_b/a0 = {ratio_0}")
for n in [0, 5, 10, 14, 15, 20, 25, 30]:
theoretical = ratio_0 * 3**n
print(f"n={n:2d}: |b|/|a| = {theoretical:.6g} (3^n = {3**n})")
# Стабильность кластеров
print("\n" + "=" * 80)
print("Стабильность кластеров: k > (9/5)^m")
print("=" * 80)
for m in [1, 2, 3, 5, 7, 10]:
k_min = (9/5)**m
print(f"m={m:2d}: k_min = {k_min:.1f}")
# Рис. 1: динамика компонент (логарифмическая шкала)
a = -a0
b = -delta_b
c = c0
a_arr, b_arr, c_arr = [], [], []
for n in range(31):
a_arr.append(abs(float(a)))
b_arr.append(abs(float(b)))
c_arr.append(min(float(c), 1e50))
a = a * five_ninth
b = b * five_third
c = c * c
fig, ax = plt.subplots(figsize=(10, 6))
ax.semilogy(range(31), a_arr, 'b-', lw=2, label='|a| (сила)')
ax.semilogy(range(31), b_arr, 'orange', lw=2, label='|b| (форма)')
ax.semilogy(range(31), c_arr, 'g-', lw=2, label='c (энергия)')
ax.axvline(20, ls='--', color='gray', alpha=0.7, label='Границы фаз')
ax.axvline(26, ls='--', color='gray', alpha=0.7)
ax.set_xlabel('Шаг n')
ax.set_ylabel('Значение (log)')
ax.set_title('Рис. 1. Динамика компонент (delta_b=1e-6)')
ax.legend(loc='right')
ax.set_xlim(0, 30)
plt.tight_layout()
plt.savefig('fig1_phases.png', dpi=150)
plt.close()
# Рис. 2: дискретный спектр |b|/|a| (логарифмическая шкала)
n_arr = list(range(31))
ratio_arr = [ratio_0 * 3**n for n in n_arr]
fig, ax = plt.subplots(figsize=(10, 6))
ax.semilogy(n_arr, ratio_arr, 'steelblue', lw=2,
label='|b|/|a| = (delta_b/a0) * 3^n')
ax.axhline(1.0, ls='--', color='red', alpha=0.7,
label='|b|/|a| = 1 (граница)')
ax.set_xlabel('Шаг n')
ax.set_ylabel('|b|/|a| (log)')
ax.set_title('Рис. 2. Дискретный спектр')
ax.legend(loc='upper left')
ax.set_xlim(0, 30)
plt.tight_layout()
plt.savefig('fig2_spectrum.png', dpi=150)
plt.close()
# Рис. 3: стабильность кластеров
m_arr = list(range(16))
k_arr = [(9/5)**m for m in m_arr]
fig, ax = plt.subplots(figsize=(10, 6))
ax.semilogy(m_arr, k_arr, 'crimson', lw=2, label='k = (9/5)^m')
ax.set_xlabel('Число шагов m')
ax.set_ylabel('Минимум узлов k (log)')
ax.set_title('Рис. 3. Условие стабильности кластеров')
ax.legend(loc='upper left')
ax.set_xlim(0, 15)
plt.tight_layout()
plt.savefig('fig3_clusters.png', dpi=150)
plt.close()
import matplotlib.pyplot as plt
import numpy as np
from decimal import Decimal, getcontext
# Высокая точность (150 знаков)
getcontext().prec = 150
# Параметры
N = 20
a0 = Decimal("4.660964")
c0 = Decimal("1.000001467918")
delta_b = Decimal("1e-6")
b_star = Decimal(4) / Decimal(9)
five_ninth = Decimal(5) / Decimal(9)
five_third = Decimal(5) / Decimal(3)
# Каскад
a = -a0
b = -delta_b
c = c0
print("=" * 80)
print("Каскадная развёртка: четыре фазы")
print("=" * 80)
print(" n | |a| | |b| | |b|/b* | c")
print("-" * 75)
key_steps = [0, 5, 10, 15, 20, 22, 24, 25, 26, 27, 28, 30]
for n in range(31):
a_f = abs(float(a))
b_f = abs(float(b))
c_f = float(c)
ratio_b = b_f / float(b_star)
if n in key_steps:
print(f"{n:3d} | {a_f:<16.6g} | {b_f:<16.6g} | {ratio_b:<14.4f} | {c_f}")
a = a * five_ninth
b = b * five_third
c = c * c
# E-folding
print("\n" + "=" * 80)
print("E-folding")
print("=" * 80)
for db in [1e-6, 1e-10, 1e-30]:
n_ef = np.log(float(b_star) / db) / np.log(5/3)
print(f"delta_b = {db}: N_e-fold = {n_ef:.1f}")
# Дискретный спектр
print("\n" + "=" * 80)
print("Дискретный спектр |b|/|a| = (delta_b/a0) * 3^n")
print("=" * 80)
ratio_0 = float(delta_b / a0)
print(f"delta_b/a0 = {ratio_0}")
for n in [0, 5, 10, 14, 15, 20, 25, 30]:
theoretical = ratio_0 * 3**n
print(f"n={n:2d}: |b|/|a| = {theoretical:.6g} (3^n = {3**n})")
# Стабильность кластеров
print("\n" + "=" * 80)
print("Стабильность кластеров: k > (9/5)^m")
print("=" * 80)
for m in [1, 2, 3, 5, 7, 10]:
k_min = (9/5)**m
print(f"m={m:2d}: k_min = {k_min:.1f}")
# Рис. 1: динамика компонент
a = -a0
b = -delta_b
c = c0
a_arr, b_arr, c_arr = [], [], []
for n in range(31):
a_arr.append(abs(float(a)))
b_arr.append(abs(float(b)))
c_arr.append(min(float(c), 1e50))
a = a * five_ninth
b = b * five_third
c = c * c
fig, ax = plt.subplots(figsize=(10, 6))
ax.semilogy(range(31), a_arr, 'b-', lw=2, label='|a| (сила)')
ax.semilogy(range(31), b_arr, 'orange', lw=2, label='|b| (форма)')
ax.semilogy(range(31), c_arr, 'g-', lw=2, label='c (энергия)')
ax.axvline(20, ls='--', color='gray', alpha=0.7, label='Границы фаз')
ax.axvline(26, ls='--', color='gray', alpha=0.7)
ax.set_xlabel('Шаг n')
ax.set_ylabel('Значение (log)')
ax.set_title('Рис. 1. Динамика компонент (delta_b=1e-6)')
ax.legend(loc='right')
ax.set_xlim(0, 30)
plt.tight_layout()
plt.savefig('fig1_phases.png', dpi=150)
plt.close()
# Рис. 2: дискретный спектр
n_arr = list(range(31))
ratio_arr = [ratio_0 * 3**n for n in n_arr]
fig, ax = plt.subplots(figsize=(10, 6))
ax.semilogy(n_arr, ratio_arr, 'steelblue', lw=2,
label='|b|/|a| = (delta_b/a0) * 3^n')
ax.axhline(1.0, ls='--', color='red', alpha=0.7,
label='|b|/|a| = 1 (граница)')
ax.set_xlabel('Шаг n')
ax.set_ylabel('|b|/|a| (log)')
ax.set_title('Рис. 2. Дискретный спектр')
ax.legend(loc='upper left')
ax.set_xlim(0, 30)
plt.tight_layout()
plt.savefig('fig2_spectrum.png', dpi=150)
plt.close()
# Рис. 3: стабильность кластеров
m_arr = list(range(16))
k_arr = [(9/5)**m for m in m_arr]
fig, ax = plt.subplots(figsize=(10, 6))
ax.semilogy(m_arr, k_arr, 'crimson', lw=2, label='k = (9/5)^m')
ax.set_xlabel('Число шагов m')
ax.set_ylabel('Минимум узлов k (log)')
ax.set_title('Рис. 3. Условие стабильности кластеров')
ax.legend(loc='upper left')
ax.set_xlim(0, 15)
plt.tight_layout()
plt.savefig('fig3_clusters.png', dpi=150)
plt.close()