В контексте матрицы Вигнера вычисление стандартного отклонения используют для контроля масштаба элементов после симметризации и нормировки.
В NumPy это делается напрямую:
std = W.std()Где, например:
W = (X + X.T) / np.sqrt(2 * n)Как интерпретировать результат:
– теоретически для внедиагональных элементов
– значит стандартное отклонение элементов порядка:
Поэтому при росте n:
– W.std() убывает
– элементы матрицы становятся всё меньшего масштаба
– но спектр при этом остаётся порядка 1
Если хочется проверить отдельно диагональ и внедиагональные элементы:
diag_std = np.diag(W).std()
off_diag = W[~np.eye(n, dtype=bool)]
off_diag_std = off_diag.std()Что это даёт:
– диагональ имеет больший вклад
– внедиагональные элементы соответствуют теории Вигнера
– можно проверить корректность нормировки
Важно:
– W.std() считается по всем n² элементам
– диагональ даёт вклад порядка 1/n, но их всего n
– поэтому итоговая статистика доминируется внедиагональю
Коротко:
стандартное отклонение элементов матрицы Вигнера убывает как 1/√n, и его вычисление через std() — это проверка правильного масштаба модели.