Симметризация матрицы — это шаг, на котором из произвольной квадратной матрицы X получают симметричную матрицу, пригодную для спектрального анализа и модели Вигнера.
Стандартная операция в NumPy:
A = X + X.TПосле этого:
– A гарантированно симметрична
– A[i, j] = A[j, i]
– структура вне диагонали становится парной
Почему симметризация делается именно так:
- Минимальная и детерминированная операция
Не вводит новой случайности, только перераспределяет существующую. - Сохранение независимости до симметрии
Пары элементов(i, j)и(j, i)объединяются в одну симметричную пару. - Совместимость с теорией Вигнера
Симметричность — ключевое требование, иначе спектр не имеет нужных свойств.
Покомпонентно:
– для i ≠ j:
A[i, j] = X[i, j] + X[j, i]
сумма двух независимых случайных величин
– для диагонали:
A[i, i] = 2 * X[i, i]
Важный момент про масштаб:
Симметризация меняет дисперсию элементов:
– вне диагонали дисперсия удваивается
– диагональ усиливается в 2 раза
Поэтому симметризация всегда идёт вместе с нормировкой, обычно:
W = (X + X.T) / np.sqrt(2 * n)Альтернативный, но эквивалентный по смыслу вариант:
W = (X + X.T) / 2Этот вариант используют, если нужно только обеспечить симметрию, а не контролировать спектральный масштаб.
Коротко:
симметризация — это операция X + X.T, которая делает матрицу симметричной, но одновременно меняет масштаб элементов, поэтому в модели Вигнера она обязательно сопровождается нормировкой.