Re: определение симметрии системы точек
- From
- Sergiy Kanilo ()
- To
- Andrey V. Tutukin
- Date
- 2002-12-14T02:54:26Z
- Area
- RU.ALGORITHMS
From: "Sergiy Kanilo" <skanilo@artannlabs.com>
"Andrey V. Tutukin" <Andrey.V.Tutukin@p71.f14.n5026.z2.fidonet.org> wrote in
message news:1039802512@p71.f14.n5026.z2.ftn...
> Даны декартовы координаты N точек (или атомов). Нужно определить точечную
> группу.
>
> Идею представляю несколько смутно...
> 1) Найти центр масс -- это "уникальная точка", т.е. остаётся на месте при
> применении любых операций симметрии из определяемой группы.
> 2) Поискать главную ось
> 3) Если нет -- плоскость, центр инверсии...
> 4) если есть -- вспомогательную ось...
> и т.д., как в учебниках по молекулярной спектроскопии описано.
>
> Только как найти эти оси да плоскости?
Можно разобраться с плоскостями, а оси - уж как получится :)
Как найти центр масс - наверное понятно, как привести к системе
координат так чтобы центр тяжести соврадал с центром системы
координат тоже понятно.
Теперь допустим каждая точка определена координатой (x,y,z)
Построим для каждой точки матрицу 3x3
x*x x*y x*z
y*x y*y y*z
z*x z*y z*z
и сложим матрицы для всех точек.
Определим собственные вектора и значения этой суммарной
матрицы.
Если все значения различные, то возможны три плоскости
симметрии (с нормалями по собственным векторам)
После того как плоскости найдены надо пройтись по точкам
и проверить наличие для каждой из них симметричной пары
(относительно каждой оси)
Если два из собственных значений совпадают, может быть
осевая симметрия или симметрия с поворотом вокруг оси
соответствующей собственному вектору для третьего
(несовпадающего) собственного значения.
Тут с проверкой несколько сложнее (так что додумай сам :)
Если три совпадают - это уж вообще черти что :)
Cheers,
Serge
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)