вторник, 17 марта 2026 г.

Произведение трех бикватернионов

Оператор группы Лоренца

При использовании системы Maxima в задаче преобразования выражений в гиперкомплексной форме возникает препятствие в виде объема используемых промежуточных выражений. И решением проблемы стало разбиение цепочки преобразований на несколько, когда вместо длинной последовательности вычислений в одном документе Maxima используются несколько отдельных документов, каждый из которых начинает работу с уже подготовленного выражения, составляющего часть крупного. После применения такого решения удалось обойти проблему сложности выражений для Maxima.

Ключевым набором таких временных выражений является набор коэффициентов матрицы эквивалентной произведению трех бикватернионов. Если есть произведение трех бикватернионов в виде $$ x' = a\cdot x \cdot b $$ То при известных значениях коэффициентов $a$ и $b$, но при трактовке $x$ как переменной, получаем бикватернион из коэффициентов представляющих линейные комбинации неких произведений $a_ib_j$ и $x_k$. Соответственно, вся совокупность коэффициентов $x'_i$ может быть представлена как вектор-столбец, получаемый произведением некой матрицы составленной из произведений $a_ib_j$ на вектор-столбец $x_i$. Если в каждый бикватернион входит 8 компонентов, то в результат $x'_i$ входит сумма из $8\cdot 8\cdot 8 = 512$ величин вида $a_ib_jx_k$, где $a$ и $b$ в решаемой задаче сами по себе сложные выражения. В существенном сокращении анализируемого выражения и состоит задача промежуточного произведения трех бикватернионов. Используя готовые наборы из произведений $a_ib_j$, мы сможем использовать выражения для коэффициентов выражающих $x'_i$ через $x_i$ по отдельности. Используя построенную ранее функцию перевода коэффициентов бикватерниона в матрицу матричного представления, построим произведение трех бикватернионов:
a:makemat(a0,a1,a2,a3,a4,a5,a6,a7);
b:makemat(b0,b1,b2,b3,b4,b5,b6,b7);
x:makemat(x0,x1,x2,x3,x4,x5,x6,x7);
axb:a.x.b;
Здесь переменная $axb$ есть матричное представление результата произведения и бикватернионом результата является первый столбец:
R0:axb[1][1];
R1:axb[2][1];
R2:axb[3][1];
R3:axb[4][1];
R4:axb[5][1];
R5:axb[6][1];
R6:axb[7][1];
R7:axb[8][1];
Поскольку каждый из коэффициентов результата линеен по $x_i$, мы может выделить матричные коэффициенты путем применения операции частной производноы:
A00:diff(R0,x0);
A01:diff(R0,x1);
A02:diff(R0,x2);
A03:diff(R0,x3);
A04:diff(R0,x4);
A05:diff(R0,x5);
A06:diff(R0,x6);
A07:diff(R0,x7);

A10:diff(R1,x0);
A11:diff(R1,x1);
A12:diff(R1,x2);
A13:diff(R1,x3);
A14:diff(R1,x4);
A15:diff(R1,x5);
A16:diff(R1,x6);
A17:diff(R1,x7);

A20:diff(R2,x0);
A21:diff(R2,x1);
A22:diff(R2,x2);
A23:diff(R2,x3);
A24:diff(R2,x4);
A25:diff(R2,x5);
A26:diff(R2,x6);
A27:diff(R2,x7);

A30:diff(R3,x0);
A31:diff(R3,x1);
A32:diff(R3,x2);
A33:diff(R3,x3);
A34:diff(R3,x4);
A35:diff(R3,x5);
A36:diff(R3,x6);
A37:diff(R3,x7);

A40:diff(R4,x0);
A41:diff(R4,x1);
A42:diff(R4,x2);
A43:diff(R4,x3);
A44:diff(R4,x4);
A45:diff(R4,x5);
A46:diff(R4,x6);
A47:diff(R4,x7);

A50:diff(R5,x0);
A51:diff(R5,x1);
A52:diff(R5,x2);
A53:diff(R5,x3);
A54:diff(R5,x4);
A55:diff(R5,x5);
A56:diff(R5,x6);
A57:diff(R5,x7);

A60:diff(R6,x0);
A61:diff(R6,x1);
A62:diff(R6,x2);
A63:diff(R6,x3);
A64:diff(R6,x4);
A65:diff(R6,x5);
A66:diff(R6,x6);
A67:diff(R6,x7);

A70:diff(R7,x0);
A71:diff(R7,x1);
A72:diff(R7,x2);
A73:diff(R7,x3);
A74:diff(R7,x4);
A75:diff(R7,x5);
A76:diff(R7,x6);
A77:diff(R7,x7);
И при выполнении этой программы Maxima формирует итоговые коэффициенты произведения трех бикватернионов:
(A00) -a7*b7-a6*b6-a5*b5-a4*b4+
      a3*b3+a2*b2+a1*b1+a0*b0
(A01) -a2*b7+a3*b6+a4*b5+a5*b4-
      a6*b3+a7*b2+a0*b1+a1*b0
(A02) a1*b7+a4*b6-a3*b5+a6*b4+
      a5*b3+a0*b2-a7*b1+a2*b0
(A03) a4*b7-a1*b6+a2*b5+a7*b4+
      a0*b3-a5*b2+a6*b1+a3*b0
(A04) a3*b7+a2*b6+a1*b5-a0*b4+
      a7*b3+a6*b2+a5*b1-a4*b0
(A05) a6*b7-a7*b6-a0*b5+a1*b4-
      a2*b3+a3*b2+a4*b1-a5*b0
(A06) -a5*b7-a0*b6+a7*b5+a2*b4+
      a1*b3+a4*b2-a3*b1-a6*b0
(A07) -a0*b7+a5*b6-a6*b5+a3*b4+
      a4*b3-a1*b2+a2*b1-a7*b0

(A10) a2*b7-a3*b6+a4*b5+a5*b4+
      a6*b3-a7*b2+a0*b1+a1*b0
(A11) a7*b7+a6*b6-a5*b5-a4*b4-
      a3*b3-a2*b2+a1*b1+a0*b0
(A12) a0*b7-a5*b6-a6*b5+a3*b4-
      a4*b3+a1*b2+a2*b1-a7*b0
(A13) -a5*b7-a0*b6-a7*b5-a2*b4+
      a1*b3+a4*b2+a3*b1+a6*b0
(A14) a6*b7-a7*b6+a0*b5-a1*b4-
      a2*b3+a3*b2-a4*b1+a5*b0
(A15) a3*b7+a2*b6-a1*b5+a0*b4+
      a7*b3+a6*b2-a5*b1+a4*b0
(A16) a4*b7-a1*b6-a2*b5-a7*b4+
      a0*b3-a5*b2-a6*b1-a3*b0
(A17) -a1*b7-a4*b6-a3*b5+a6*b4-
      a5*b3-a0*b2-a7*b1+a2*b0

(A20) -a1*b7+a4*b6+a3*b5+a6*b4-
      a5*b3+a0*b2+a7*b1+a2*b0
(A21) -a0*b7-a5*b6-a6*b5-a3*b4+
      a4*b3+a1*b2+a2*b1+a7*b0
(A22) a7*b7-a6*b6+a5*b5-a4*b4-
      a3*b3+a2*b2-a1*b1+a0*b0
(A23) -a6*b7-a7*b6+a0*b5+a1*b4+
      a2*b3+a3*b2-a4*b1-a5*b0
(A24) -a5*b7+a0*b6+a7*b5-a2*b4+
      a1*b3-a4*b2-a3*b1+a6*b0
(A25) -a4*b7-a1*b6-a2*b5+a7*b4-
      a0*b3-a5*b2-a6*b1+a3*b0
(A26) a3*b7-a2*b6+a1*b5+a0*b4+
      a7*b3-a6*b2+a5*b1+a4*b0
(A27) -a2*b7-a3*b6+a4*b5-a5*b4-
      a6*b3-a7*b2+a0*b1-a1*b0

(A30) a4*b7+a1*b6-a2*b5+a7*b4+
      a0*b3+a5*b2-a6*b1+a3*b0
(A31) -a5*b7+a0*b6-a7*b5+a2*b4+
      a1*b3-a4*b2+a3*b1-a6*b0
(A32) -a6*b7-a7*b6-a0*b5-a1*b4+
      a2*b3+a3*b2+a4*b1+a5*b0
(A33) -a7*b7+a6*b6+a5*b5-a4*b4+
      a3*b3-a2*b2-a1*b1+a0*b0
(A34) a0*b7+a5*b6-a6*b5-a3*b4-
      a4*b3-a1*b2+a2*b1+a7*b0
(A35) -a1*b7+a4*b6-a3*b5-a6*b4-
      a5*b3+a0*b2-a7*b1-a2*b0
(A36) -a2*b7-a3*b6-a4*b5+a5*b4-
      a6*b3-a7*b2-a0*b1+a1*b0
(A37) -a3*b7+a2*b6+a1*b5+a0*b4-
      a7*b3+a6*b2+a5*b1+a4*b0

(A40) -a3*b7-a2*b6-a1*b5+a0*b4-
      a7*b3-a6*b2-a5*b1+a4*b0
(A41) a6*b7-a7*b6-a0*b5+a1*b4-
      a2*b3+a3*b2+a4*b1-a5*b0
(A42) -a5*b7-a0*b6+a7*b5+a2*b4+
      a1*b3+a4*b2-a3*b1-a6*b0
(A43) -a0*b7+a5*b6-a6*b5+a3*b4+
      a4*b3-a1*b2+a2*b1-a7*b0
(A44) -a7*b7-a6*b6-a5*b5-a4*b4+
      a3*b3+a2*b2+a1*b1+a0*b0
(A45) a2*b7-a3*b6-a4*b5-a5*b4+
      a6*b3-a7*b2-a0*b1-a1*b0
(A46) -a1*b7-a4*b6+a3*b5-a6*b4-
      a5*b3-a0*b2+a7*b1-a2*b0
(A47) -a4*b7+a1*b6-a2*b5-a7*b4-
      a0*b3+a5*b2-a6*b1-a3*b0

(A50) a6*b7-a7*b6+a0*b5-a1*b4-
      a2*b3+a3*b2-a4*b1+a5*b0
(A51) -a3*b7-a2*b6+a1*b5-a0*b4-
      a7*b3-a6*b2+a5*b1-a4*b0
(A52) -a4*b7+a1*b6+a2*b5+a7*b4-
      a0*b3+a5*b2+a6*b1+a3*b0
(A53) a1*b7+a4*b6+a3*b5-a6*b4+
      a5*b3+a0*b2+a7*b1-a2*b0
(A54) -a2*b7+a3*b6-a4*b5-a5*b4-
      a6*b3+a7*b2-a0*b1-a1*b0
(A55) a7*b7+a6*b6-a5*b5-a4*b4-
      a3*b3-a2*b2+a1*b1+a0*b0
(A56) a0*b7-a5*b6-a6*b5+a3*b4-
      a4*b3+a1*b2+a2*b1-a7*b0
(A57) -a5*b7-a0*b6-a7*b5-a2*b4+
      a1*b3+a4*b2+a3*b1+a6*b0

(A60) -a5*b7+a0*b6+a7*b5-a2*b4+
      a1*b3-a4*b2-a3*b1+a6*b0
(A61) a4*b7+a1*b6+a2*b5-a7*b4+
      a0*b3+a5*b2+a6*b1-a3*b0
(A62) -a3*b7+a2*b6-a1*b5-a0*b4-
      a7*b3+a6*b2-a5*b1-a4*b0
(A63) a2*b7+a3*b6-a4*b5+a5*b4+
      a6*b3+a7*b2-a0*b1+a1*b0
(A64) a1*b7-a4*b6-a3*b5-a6*b4+
      a5*b3-a0*b2-a7*b1-a2*b0
(A65) -a0*b7-a5*b6-a6*b5-a3*b4+
      a4*b3+a1*b2+a2*b1+a7*b0
(A66) a7*b7-a6*b6+a5*b5-a4*b4-
      a3*b3+a2*b2-a1*b1+a0*b0
(A67) -a6*b7-a7*b6+a0*b5+a1*b4+
      a2*b3+a3*b2-a4*b1-a5*b0

(A70) a0*b7+a5*b6-a6*b5-a3*b4-
      a4*b3-a1*b2+a2*b1+a7*b0
(A71) a1*b7-a4*b6+a3*b5+a6*b4+
      a5*b3-a0*b2+a7*b1+a2*b0
(A72) a2*b7+a3*b6+a4*b5-a5*b4+
      a6*b3+a7*b2+a0*b1-a1*b0
(A73) a3*b7-a2*b6-a1*b5-a0*b4+
      a7*b3-a6*b2-a5*b1-a4*b0
(A74) -a4*b7-a1*b6+a2*b5-a7*b4-
      a0*b3-a5*b2+a6*b1-a3*b0
(A75) -a5*b7+a0*b6-a7*b5+a2*b4+
      a1*b3-a4*b2+a3*b1-a6*b0
(A76) -a6*b7-a7*b6-a0*b5-a1*b4+
      a2*b3+a3*b2+a4*b1+a5*b0
(A77) -a7*b7+a6*b6+a5*b5-a4*b4+
      a3*b3-a2*b2-a1*b1+a0*b0
Небольшое отступление. Именно это разложение и стало основой для нахождения аналога уравнений Коши-Римана в бикватернионах. А именно, поскольку дифференциал аналитической функции от одной бикватернионной переменной имеет вид $$ df(x)=\sum a_idx_jb_k $$ то каждый из элементов этой суммы представим вышеприведенной матрицей, имеющей определенные соотношения равенства между коэффициентами вида $$ A_{ij}=\pm A_{nm} $$ например $$ A_{33}=A_{77} $$ Суммы таких матриц также сохраняют эти соотношения равенства, следовательно для аналитических функций бикватернионного переменного выполняется аналог уравнений Коши-Римана. Вообще говоря, существование уравнений вида Коши-Римана не является свойством какой-то определенной алгебры, будь то алгебра комплексных, бикомплексных чисел или бикватернионов. Дело не в самой алгебре, а в том, является ли она ассоциативной и существует ли в ней подалгебра комплексных чисел. И, возможно, это не единственные критерии.

Оператор группы Лоренца

Комментариев нет:

Отправить комментарий