Как правильно рассчитать главный момент инерции?

Я пишу программу, которая включает вычисление главного момента инерции для белкового остатка на основе координат атома его компонента XYZ. Я очень запутался в том, какие формулы использовать для расчета главного момента инерции для моей ситуации.

Пока моя программа делает следующее:

  1. Вычислить элементы (Ixx, Iyy, Izz и т. д.) симметричной матрицы A
  2. Найдите собственные значения (и, следовательно, главные моменты инерции)

Формулы, которые я первоначально использовал для расчета элементов на шаге 1, были взяты из стр. 5 настоящего документа . Однако, глядя на Википедию , формулы для симметричных матричных элементов разные.

Я также порылся в Интернете и нашел открытый исходный код, в котором центр масс вычитается из координат x, y и z перед началом расчета элементов Ixx, Iyy, Izz и т. д.

Какие формулы/алгоритмы я использую для расчета главного момента инерции для моего случая? Я не уверен, с чего начать, выбирая, какие формулы использовать. Есть ли источник, доступный для тех, у кого слабый физический фон, который поможет мне понять, какую формулу/алгоритм использовать для расчета главного момента инерции?

Ответы (1)

Формулы из документа НАСА и Википедии просто находятся в разных системах координат: формулы в Википедии предполагают систему координат, оси которой проходят через центр масс, тогда как в документе НАСА предполагается произвольная декартова система координат.

Пусть заглавные X i , Y i и Z i обозначают координаты i-го атома в произвольной декартовой системе координат O, а x i , y i и z i обозначают соответствующие координаты в системе O com , переведенные в центр масс молекулы .

Координаты центра масс молекулы в системе О:

Икс с о м "=" 1 М я м я Икс я Д с о м "=" 1 М я м я Д я Z с о м "=" 1 М я м я Z я

Преобразование из O в O com — это просто перевод с помощью [-X com , -Y com , -Z com ]:

Икс я "=" Икс я Икс с о м "=" Икс я 1 М я м я Икс я у я "=" Д я Д с о м "=" Д я 1 М я м я Д я г я "=" Z я Z с о м "=" Z я 1 М я м я Z я

Теперь возьмем, например, формулу для I xx в кадре O:

я Икс Икс "=" я м я ( у я 2 + г я 2 )

(Обратите внимание, что сумма двух членов в скобках — это просто евклидово расстояние между i-м атомом и осью x, как и следовало ожидать.)

Подставляя формулы для y i и z i выше, мы имеем

я Икс Икс "=" я м я [ ( Д я Д с о м ) 2 + ( Z я Z с о м ) 2 ] я Икс Икс "=" я м я ( Д я 2 + Z я 2 ) + я м я ( Д с о м 2 + Z с о м 2 ) 2 я м я ( Д я Д с о м + Z я Z с о м ) я Икс Икс "=" я м я ( Д я 2 + Z я 2 ) + М ( Д с о м 2 + Z с о м 2 ) 2 М ( Д с о м 2 + Z с о м 2 ) я Икс Икс "=" я м я ( Д я 2 + Z я 2 ) 1 М ( я м я Д я ) 2 1 М ( я м я Z я ) 2

что в точности соответствует формуле I xx в документе НАСА. Аналогично для остальных формул.

Интересно, что сумма двух последних слагаемых в итоговой формуле — это именно то, что можно было бы ожидать от теоремы о параллельных осях .

Вывод состоит в том, что вы должны использовать любые формулы, соответствующие вашей системе координат. Если центр вашей системы координат совпадает с центром масс молекулы, то можно воспользоваться более простыми формулами из Википедии. В противном случае вам следует использовать данные из документа НАСА.

Моя программа возвращает числа, намного превышающие ожидаемые (я получаю 30000 для собственных значений, когда я ожидаю что-то между 0 и 40). Какие единицы следует использовать для атомной массы? Я использую стандартный атомный вес, указанный в Википедии, например, у азота всего 14,0067.
Как всегда, вы можете использовать любые единицы, которые вы предпочитаете, пока вы остаетесь последовательными. Будет проще, если вы аннотируете/комментируете потенциальные объявления переменных и код, а также единицы измерения, которые вы используете на любом этапе ввода, вычисления и вывода. В частности, когда вы сравниваете полученные собственные значения с ожидаемыми, единицы измерения также должны быть одинаковыми.