[PYTHON] Nombre bicomplexe considéré par la matrice d'expression

Si vous mettez un nombre complexe dans le composant de la matrice d'expression de nombre complexe, vous pouvez obtenir un nombre appelé nombre bicomplexe. Les nombres bicomplexes sont similaires et non quaternaires aux nombres quaternaires, mais nous explorons leurs propriétés à partir de la matrice de représentation. Il mentionne également qu'il peut être assimilé à l'algèbre de Clifford bidimensionnelle. Un calcul par SymPy est joint.

Ceci est une série d'articles.

  1. Vecteur complexe considéré comme un vecteur réel
  2. Nombre bicomplexe considéré par la matrice d'expression ← Cet article
  3. Nombre quaternaire considéré par la matrice d'expression
  4. Matrice de Pauli et nombres quaternaires dans l'algèbre de Clifford

Cet article contient des articles connexes.

Nombre complexe nombre complexe

Dans Article précédent, j'ai trouvé la matrice de représentation des nombres complexes.

>>> a,b=symbols("a b",real=True)
>>> _1=eye(2)
>>> i=Matrix([[0,-1],[1,0]])
>>> a*_1+b*i
Matrix([
[a, -b],
[b,  a]])
a+bi
↦a\underbrace{\left(\begin{matrix}1 &  0 \\ 0 & 1\end{matrix}\right)}_{1}
+b\underbrace{\left(\begin{matrix}0 & -1 \\ 1 & 0\end{matrix}\right)}_{i}
=\left(\begin{matrix}a & -b \\ b & a\end{matrix}\right)

Mettons un nombre complexe dans le composant de la matrice d'expression.

>>> c,d=symbols("c d",real=True)
>>> (a+b*I)*_1+(c+d*I)*i
Matrix([
[a + I*b, -c - I*d],
[c + I*d,  a + I*b]])
 (a+bi)\left(\begin{matrix}1 &  0 \\ 0 & 1\end{matrix}\right)
+(c+di)\left(\begin{matrix}0 & -1 \\ 1 & 0\end{matrix}\right)
=\left(\begin{matrix}a+bi & -(c+di) \\ c+di & a+bi\end{matrix}\right)

Comment cela peut-il être reconverti en formule? Si vous y pensez simplement, cela ressemble à ceci, mais c'est étrange.

>>> expand((a+b*I)+(c+d*I)*I).collect(I)
a - d + I*(b + c)
\begin{align}
\left(\begin{matrix}a+bi & -(c+di) \\ c+di & a+bi\end{matrix}\right)
↦&(a+bi)+(c+di)i \\
=&a+bi+ci-d \\
=&(a-d)+(b+c)i \\
↦&\left(\begin{matrix}a-d & -(b+c) \\ b+c & a-d\end{matrix}\right) ?
\end{align}

Il n'y a qu'un seul type de $ i $, et la combinaison et les termes similaires sont la cause de l'étrangeté. Pour éviter cela, $ i $ avec le coefficient $ c + di $ et $ i $ à l'extérieur doivent être traités comme des choses différentes. Le $ i $ externe est appelé $ j $ pour la distinction.

\begin{align}
\left(\begin{matrix}a+bi & -(c+di) \\ c+di & a+bi\end{matrix}\right)
↦&(a+bi)+(c+di)j \\
=&a+bi+cj+dij
\end{align}

Séparez la matrice de représentation de $ i, j, ij $. Pour plus de commodité, définissez $ ij = k $.

\begin{align}
&\left(\begin{matrix}a+bi & -(c+di) \\ c+di & a+bi\end{matrix}\right) \\
&=a \underbrace{\left(\begin{matrix} 1& 0 \\ 0& 1 \end{matrix}\right)}_{1}
 +b \underbrace{\left(\begin{matrix} i& 0 \\ 0& i \end{matrix}\right)}_{i}
 +c \underbrace{\left(\begin{matrix} 0&-1 \\ 1& 0 \end{matrix}\right)}_{j}
 +d \underbrace{\left(\begin{matrix} 0&-i \\ i& 0 \end{matrix}\right)}_{ij=k} \\
&↦a+bi+cj+dk
\end{align}

Quelque chose comme un quadrant est sorti. En conclusion, ce n'est pas un nombre quaternaire, mais un autre appelé ** nombre bicomplexe ** qui est apparu un peu dans article précédent.

Bicomplexe

Regardons les propriétés des nombres bicomplexes.

ij=k

Puisque la matrice de représentation de $ i $ est un multiple imaginaire de la matrice unitaire, multipliez la composante de la matrice multipliée par le multiple imaginaire. On comprend que $ ij = k $ est un multiple imaginaire de la composante de $ j $.

>>> _1=eye(2)
>>> i=I*_1
>>> j=Matrix([[0,-1],[1,0]])
>>> i*j
Matrix([
[0, -I],
[I,  0]])
>>> I*j
Matrix([
[0, -I],
[I,  0]])
\begin{align}
i&↦iI=\left(\begin{matrix} i& 0 \\ 0& i \end{matrix}\right) \\
j&↦\left(\begin{matrix} 0&-1 \\ 1& 0 \end{matrix}\right) \\
k=ij&↦i\left(\begin{matrix} 0&-1 \\ 1& 0 \end{matrix}\right)
      =\left(\begin{matrix} 0&-i \\ i& 0 \end{matrix}\right)
\end{align}

Carré d'origine

Les unités imaginaires $ i, j, k $ sont appelées ** yuan **. Vérifiez le carré d'origine.

>>> i**2
Matrix([
[-1,  0],
[ 0, -1]])
>>> j**2
Matrix([
[-1,  0],
[ 0, -1]])
>>> k**2
Matrix([
[1, 0],
[0, 1]])
\begin{align}
i^2
&↦\left(\begin{matrix} i& 0 \\ 0& i \end{matrix}\right)^2
 =\left(\begin{matrix}-1& 0 \\ 0&-1 \end{matrix}\right) \\
j^2
&↦\left(\begin{matrix} 0&-1 \\ 1& 0 \end{matrix}\right)^2
 =\left(\begin{matrix}-1& 0 \\ 0&-1 \end{matrix}\right) \\
k^2
&↦\left(\begin{matrix} 0&-i \\ i& 0 \end{matrix}\right)^2
 =\left(\begin{matrix} 1& 0 \\ 0& 1 \end{matrix}\right)
\end{align}

$ i ^ 2 = j ^ 2 = -1, \ k ^ 2 = 1 $.

$ i $ et $ j $ sont des nombres imaginaires qui valent $ -1 $ lorsqu'ils sont au carré, mais vous pouvez voir qu'ils sont différents en regardant la matrice de représentation. Lorsque $ k $ est au carré, cela devient $ 1 $, mais il s'avère que la matrice de représentation de $ k $ n'est pas une matrice unitaire, mais une sorte de nombre imaginaire.

Ainsi, il existe plus d'un type de nombre imaginaire, et la valeur au carré peut être aussi bien $ 1 $ que $ -1 $.

$ k ^ 2 $ convient bien aux calculs algébriques.

k^2=(ij)^2=i^2j^2=(-1)(-1)=1

Mobilité

La matrice unitaire est commutable, et son multiple imaginaire $ i $ est également commutable. Autrement dit, $ ij = ji $.

>>> i*j==j*i
True
ji↦\left(\begin{matrix} 0&-1 \\ 1& 0 \end{matrix}\right)i
  =\left(\begin{matrix} 0&-i \\ i& 0 \end{matrix}\right)

De même, $ ki = ik $.

>>> k*i==i*k
True

$ jk = kj $ est également convertible car il peut être réduit de $ k = ij $ au calcul de seulement $ i $ et $ j $.

>>> k*i==i*k
True
j\underbrace{k}_{ij}=\underbrace{ji}_{Échange}j=\underbrace{ij}_{k}j=kj

Autrement dit, les éléments $ i, j, k $ du nombre bicomplexe sont commutatifs.

Matrice d'expression

Vérifiez la matrice de représentation pour confirmer que le nombre bicommutatif est commutatif.

>>> a,b,c,d=symbols("a b c d",commutative=True)
>>> A=Matrix([[a,-b],[b,a]])
>>> B=Matrix([[c,-d],[d,c]])
>>> A*B
Matrix([
[a*c - b*d, -a*d - b*c],
[a*d + b*c,  a*c - b*d]])
>>> B*A
Matrix([
[a*c - b*d, -a*d - b*c],
[a*d + b*c,  a*c - b*d]])
>>> A*B==B*A
True
a,b,c,d∈\mathbb{C} \\
A=\left(\begin{matrix} a & -b \\ b & a \end{matrix}\right),
B=\left(\begin{matrix} c & -d \\ d & c \end{matrix}\right) \\
AB=\left(\begin{matrix} ac-bd & -ad-bc \\ ad+bc & ac-bd \end{matrix}\right) \\
BA=\left(\begin{matrix} ac-bd & -ad-bc \\ ad+bc & ac-bd \end{matrix}\right) \\
∴AB=BA

Il a été confirmé que si la somme ou le produit des composants $ a, b, c, d $ est convertible, le produit de la matrice est également convertible.

Produit original

Le produit de différentes espèces d'éléments devient un élément différent.

\begin{align}
ij&=k\ (Définition) \\
jk&=jij=ij^2=-i \\
ki&=iji=i^2j=-j
\end{align}

Le résumé est le suivant.

ij=ji=k,\ jk=kj=-i,\ ki=ik=-j

Puisque le produit de l'un est converti en un autre, un produit de trois ou plus rentrera toujours dans l'un d'eux, et aucun nouveau ne naîtra. Nous décrivons cette propriété comme ** fermée par rapport à la multiplication **.

Conjuguer

De la conjugaison Elmeet de la matrice de représentation, nous obtenons la conjugaison des nombres bicomplexes.

>>> a,b,c,d=symbols("a b c d",real=True)
>>> a*_1+b*i+c*j+d*k
Matrix([
[a + I*b, -c - I*d],
[c + I*d,  a + I*b]])
>>> (a*_1+b*i+c*j+d*k).H
Matrix([
[ a - I*b, c - I*d],
[-c + I*d, a - I*b]])
\begin{align}
(a+bi+cj+dk)^*
↦&\left(\begin{matrix}a+bi & -(c+di) \\ c+di & a+bi\end{matrix}\right)^{\dagger} \\
=&\left(\begin{matrix}a-bi & c-di \\ -(c-di) & a-bi\end{matrix}\right) \\
↦&(a-bi)-(c-di)j \\
=&a-bi-cj+dk
\end{align}

Les signes de $ i et j $ sont inversés. Le fait que $ k $ ne soit pas inversé peut être interprété comme étant compensé par une double inversion de $ k = ij $.

Produit avec conjugué

Si vous représentez un vecteur bidimensionnel avec $ j, k $ et calculez le produit avec conjugué, la partie réelle est le produit intérieur et le terme $ i $ est le produit extérieur.

>>> _1=eye(2)
>>> i=I*_1
>>> j=Matrix([[0,-1],[1,0]])
>>> k=i*j
>>> a=symbols("a0:4",real=True)
>>> b=symbols("b0:4",real=True)
>>> A=a[1]*i+a[2]*k
>>> B=b[1]*i+b[2]*k
>>> A=a[1]*j+a[2]*k
>>> B=b[1]*j+b[2]*k
>>> A.H*B
Matrix([
[(a1 - I*a2)*(b1 + I*b2),                         0],
[                      0, (-a1 + I*a2)*(-b1 - I*b2)]])
>>> expand(A.H*B)[0,0].collect(I)
a1*b1 + a2*b2 + I*(a1*b2 - a2*b1)
\underbrace{(a_1j+a_2k)^*}_{Conjuguer}(b_1j+b_2k)
=\underbrace{(a_1b_1+a_2b_2)}_{produit intérieur}+\underbrace{(a_1b_2-a_2b_1)i}_{Produit extérieur}

Cela peut être calculé de la même manière pour les nombres complexes. En d'autres termes, la puissance de calcul des nombres bi-complexes est la même que celle des nombres complexes.

[Nombre complexe]\ (a_1+a_2i)^*(b_1+b_2i)=(a_1b_1+a_2b_2)+(a_1b_2-a_2b_1)i

Dans les nombres complexes, la signification dépend du contexte car le vecteur est également représenté par la partie réelle et la partie imaginaire, mais dans le nombre bi-complexe, il peut être distingué par les éléments augmentés.

Algèbre de Clifford

S'il s'agit de produits intérieurs et extérieurs, il existe une méthode de calcul plus sophistiquée appelée produits géométriques de l'algèbre de Clifford. On distingue les bases du vecteur et du produit intérieur (scalaire) et du produit extérieur (aire).

\underbrace{(a_1\mathbf{e}_1+a_2\mathbf{e}_2)}_{vecteur}
\underbrace{(b_1\mathbf{e}_1+b_2\mathbf{e}_2)}_{vecteur}
=\underbrace{(a_1b_1+a_2b_2)}_{produit intérieur}
+\underbrace{(a_1b_2-a_2b_1)\mathbf{e}_1\mathbf{e}_2}_{Produit extérieur} \\

La correspondance entre les nombres complexes et bicomplexes et l'algèbre de Clifford est la suivante.

Nombre complexe 双Nombre complexe Algèbre de Clifford Interprétation
Partie réelle j \mathbf{e}_ 1 xVecteur d'unité axiale (base)
i k \mathbf{e}_ 2 yVecteur d'unité axiale (base)
Partie réelle Partie réelle scalaire produit intérieur
i i \mathbf{e}_ 1\mathbf{e}_ 2 Produit extérieur (aire du quadrilatère parallèle enjambée par deux vecteurs)

Contrairement aux nombres complexes et bicomplexes, les produits géométriques sont réglés anti-échangeables ($ \ mathbf {e} _ 1 \ mathbf {e} _ 2 = - \ mathbf {e} _ 2 \ mathbf {e} _ Puisqu'elle a 1 $), l'algèbre de Clifford n'a pas besoin de spécifier le conjugué. En d'autres termes, il remplace le rôle de conjugué par une anti-échangeabilité.

Produit et conjugué

Lors de l'association d'un biscomplexe à une algèbre de Clifford, le produit conjugue le facteur précédent. Cependant, la conjugaison ne peut exprimer une anti-échangeabilité que lorsque l'un des facteurs est la conjugaison et ne change pas. Par conséquent, la combinaison de $ i et j $ ne montre pas d'anti-échangeabilité, et l'algèbre de Clifford et les nombres bicomplexes ne correspondent pas exactement.

\begin{align}
i^*i&=-i^2=1& &\not\cong& (e_1e_2)(e_1e_2)&=-e_1e_1e_2e_2=-1 \\
j^*j&=-j^2=1& &\cong&     e_1e_1&=1 \\
k^*k&=k^2=1&  &\cong&     e_2e_2&=1 \\
i^*j&=-ij=-k& &\cong&     (e_1e_2)e_1&=-e_1e_1e_2=-e_2 \\
j^*i&=-ji=-k& &\not\cong& e_1(e_1e_2)&=e_2 \\
j^*k&=-jk=i&  &\cong&     e_1e_2& \\
k^*j&=kj=-i&  &\cong&     e_2e_1&=-e_1e_2 \\
k^*i&=ki=-j&  &\cong&     e_2(e_1e_2)&=-e_1e_2e_2=-e_1 \\
i^*k&=-ik=j&  &\cong&     (e_1e_2)e_2&=e_1
\end{align}

Puisqu'il y a un problème dans l'interprétation des nombres bicomplexes de l'algèbre de Clifford de cette manière, l'application des nombres bicomplexes nécessite une interprétation différente. Par exemple, l'application de nombres bicomplexes au traitement numérique du signal est interprétée du point de vue de la transformée de Fourier.

3D

J'ai l'impression de pouvoir gérer les vecteurs 3D en utilisant $ i, j, k $, mais cela ne fonctionne pas.

>>> A=a[1]*i+a[2]*j+a[3]*k
>>> B=b[1]*i+b[2]*j+b[3]*k
>>> A.H*B
Matrix([
[      a1*b1 + (a2 - I*a3)*(b2 + I*b3), -I*a1*(-b2 - I*b3) + I*b1*(a2 - I*a3)],
[-I*a1*(b2 + I*b3) + I*b1*(-a2 + I*a3),     a1*b1 + (-a2 + I*a3)*(-b2 - I*b3)]])
>>> list(map(lambda z:z.collect(I),expand(A.H*B)[:,0]))
[a1*b1 + a2*b2 + a3*b3 + I*(a2*b3 - a3*b2), a1*b3 - a3*b1 + I*(-a1*b2 - a2*b1)]
\begin{align}
&(a_1i+a_2j+a_3k)^*(b_1i+b_2j+b_3k) \\
&=(a_1b_1+a_2b_2+a_3b_3) \\
&\quad +(a_2b_3-a_3b_2)i \\
&\quad +(a_1b_3-a_3b_1)j \\
&\quad -(a_1b_2+a_2b_1)k
\end{align}

Les coefficients de $ j et k $ ne sont pas complètement le produit extérieur. On peut voir que les nombres bicomplexes n'ont que le même pouvoir expressif que les nombres complexes en termes de produit extérieur. Un nombre quaternaire est nécessaire pour traiter un produit extérieur tridimensionnel.

4 dimensions

J'ai l'impression de pouvoir gérer un vecteur à 4 dimensions lorsqu'il est combiné avec la partie réelle, mais cela ne fonctionne pas.

>>> A=a[0]*_1+a[1]*i+a[2]*j+a[3]*k
>>> B=b[0]*_1+b[1]*i+b[2]*j+b[3]*k
>>> A.H*B
Matrix([
[ (a0 - I*a1)*(b0 + I*b1) + (a2 - I*a3)*(b2 + I*b3),  (a0 - I*a1)*(-b2 - I*b3) + (a2 - I*a3)*(b0 + I*b1)],
[(a0 - I*a1)*(b2 + I*b3) + (-a2 + I*a3)*(b0 + I*b1), (a0 - I*a1)*(b0 + I*b1) + (-a2 + I*a3)*(-b2 - I*b3)]])
>>> list(map(lambda z:z.collect(I),expand(A.H*B)[:,0]))
[a0*b0 + a1*b1 + a2*b2 + a3*b3 + I*(a0*b1 - a1*b0 + a2*b3 - a3*b2), a0*b2 + a1*b3 - a2*b0 - a3*b1 + I*(a0*b3 - a1*b2 - a2*b1 + a3*b0)]
\begin{align}
&(a_0+a_1i+a_2j+a_3k)^*(b_0+b_1i+b_2j+b_3k) \\
&=(a_0b_0+a_1b_1+a_2b_2+a_3b_3) \\
&\quad +(a_0b_1-a_1b_0+a_2b_3-a_3b_2)i \\
&\quad +(a_0b_2-a_2b_0+a_1b_3-a_3b_1)j \\
&\quad +(a_0b_3+a_3b_0-a_1b_2-a_2b_1)k
\end{align}

Il existe 6 types de formes quadratiques de base (2 vecteurs) qui apparaissent dans le produit extérieur à 4 dimensions (produit de coin), et chacune d'elles est affectée à $ i, j, k $. , Comme pour la 3D, ce n'est pas complètement un produit extérieur.

Article associé

Cette fois, je me concentrerai uniquement sur la matrice de représentation des nombres bicomplexes. Pour les autres propriétés, veuillez vous référer aux articles suivants.

Veuillez vous référer aux articles suivants pour le produit externe et l'algèbre de Clifford.

référence

Je l'ai utilisé comme référence pour SymPy.

Multidimensionnel

Nous avons résumé les variations de Multiple.

De base Alors Type de décomposition Type de décompositionAlors Alors曲 Alors対
Nombre complexe 双Nombrecomplexe 分解型Nombrecomplexe
Quadruple 双Quadruple 分解型Quadruple 分解型双Quadruple 双曲Quadruple 双対Quadruple
Huit yuans 双Huityuans 分解型Huityuans
16 yuans

Recommended Posts

Nombre bicomplexe considéré par la matrice d'expression
Quadrants considérés dans la matrice d'expression
Nombre premier en Python
Gestion des matrices clairsemées dans Scipy
Gérer les nombres complexes en Python