Quaternions in Mathematics and Physics.

3 first steps in the Cayley-Dickson construction : from reals to octonions.

Conj[a_]:=a    (*Reals are self-conjugate*)

Conj[{A_,B_}]:={Conj[A],-B}   (*Conjugation at successive steps of the construction*)

x_∘y_:=x y    (*Product between reals*)

X_⋄Y_:={(X[[1]] ∘ Y[[1]])-(Conj[Y[[2]]] ∘  X[[2]]),(Y[[2]] ∘ X[[1]]+X[[2]]∘ Conj[Y[[1]]])}    (*Product between complex numbers*)

X_⊳Y_:={(X[[1]] ⋄ Y[[1]])-(Conj[Y[[2]]]⋄  X[[2]]),(Y[[2]] ⋄ X[[1]]+X[[2]]⋄ Conj[Y[[1]]])}    (*Product between quaternions*)

X_⊐Y_:={(X[[1]] ⊳ Y[[1]])-(Conj[Y[[2]]]⊳ X[[2]]),(Y[[2]] ⊳ X[[1]])+(X[[2]]⊳ Conj[Y[[1]]])}    (*Product between octonions*)

{(Subscript[a, 1]),(Subscript[a, 2])}⋄{(Subscript[b, 1]),(Subscript[b, 2])}     (*Product of two complex numbers : ((Subscript[a, 1])+(Subscript[ia, 2]))((Subscript[b, 1])+(Subscript[ib, 2]))=((Subscript[a, 1])(Subscript[b, 1])-(Subscript[a, 2])(Subscript[b, 2]))+i((Subscript[a, 2])(Subscript[b, 1])+(Subscript[a, 1])(Subscript[b, 2]))*)

Grid[{{,e,i},{e,e,i},{i,i,-e}},Frame->All,Alignment->Right]

{{(Subscript[a, 1]),(Subscript[a, 2])},{(Subscript[a, 3]),(Subscript[a, 4])}}⊳{{(Subscript[b, 1]),(Subscript[b, 2])},{(Subscript[b, 3]),(Subscript[b, 4])}}    (*Product of two quaternions : ((Subscript[a, 1])+(Subscript[ia, 2])+j(Subscript[a, 3])+(Subscript[ka, 4]))((Subscript[b, 1])+(Subscript[ib, 2])+(Subscript[jb, 3])+(Subscript[kb, 4]))=((Subscript[a, 1])(Subscript[b, 1])-(Subscript[a, 2])(Subscript[b, 2])-(Subscript[a, 3])(Subscript[b, 3])-(Subscript[a, 4])(Subscript[b, 4]))+i((Subscript[a, 2])(Subscript[b, 1])+(Subscript[a, 1])(Subscript[b, 2])-(Subscript[a, 4])(Subscript[b, 3])+(Subscript[a, 3])(Subscript[b, 4]))+j((Subscript[a, 3])(Subscript[b, 1])+(Subscript[a, 4])(Subscript[b, 2])+(Subscript[a, 1])(Subscript[b, 3])-(Subscript[a, 2])(Subscript[b, 4]))+k((Subscript[a, 4])(Subscript[b, 1])-(Subscript[a, 3])(Subscript[b, 2])+(Subscript[a, 2])(Subscript[b, 3])+(Subscript[a, 1])(Subscript[b, 4]))*)

Grid[{{,e,i,j,k},{e,e,i,j,k},{i,i,-e,k,-j},{j,j,-k,-e,i},{k,k,j,-i,-e}},Frame->All,Alignment->Right]

{{{(Subscript[a, 1]),(Subscript[a, 2])},{(Subscript[a, 3]),(Subscript[a, 4])}},{{(Subscript[a, 5]),(Subscript[a, 6])},{(Subscript[a, 7]),(Subscript[a, 8])}}}⊐{{{(Subscript[b, 1]),(Subscript[b, 2])},{(Subscript[b, 3]),(Subscript[b, 4])}},{{(Subscript[b, 5]),(Subscript[b, 6])},{(Subscript[b, 7]),(Subscript[b, 8])}}}    (*Product of two octonions : ((Subscript[a, 1])+(Subscript[ia, 2])+j(Subscript[a, 3])+(Subscript[ka, 4])+(Subscript[la, 5])+(Subscript[ma, 6])+(Subscript[na, 7])+(Subscript[pa, 8]))((Subscript[b, 1])+(Subscript[ib, 2])+(Subscript[jb, 3])+(Subscript[kb, 4])+(Subscript[lb, 5])+(Subscript[mb, 6])+(Subscript[nb, 7])+(Subscript[pab, 8]))= too long !*)

Grid[{{,e,i,j,k,l,m,n,p},{e,e,i,j,k,l,m,n,p},{i,i,-e,k,-j,m,-l,-p,n},{j,j,-k,-e,i,n,p,-l,-m},{k,k,j,-i,-e,p,-n,m,-l},{l,l,-m,-n,-p,-e,i,j,k},{m,m,l,-p,n,-i,-e,-k,j},{n,n,p,l,-m,-j,k,-e,-i},{p,p,-n,m,l,-k,-j,i,-e}},Frame->All,Alignment->Right]

Quaternions are usually written as hypercomplex numbers of the form, q = e a + i b + j c + k d, with {a,b,c,d} ∈ Reals. The keys, e=1, i, j, k, obey the non commutative multiplication table above. Applications in physics eventually need the extension {a,b,c,d} ∈ Complex (Biquaternions). In this case, because of a possible confusion in the use of the symbol i, imaginary or quaternionic key, it should eventually be convenient to rewrite the quaternionic keys as, ke, ki, kj and kk). Even more generally {a,b,c,d} ≡ (differential) operators should be allowed. Mathematica is not at ease with quaternions. A specific package exists only capable of handling with real numerical quaternions but difficulties arise when the coefficients become complex, litteral or differential (operators).

<<Quaternions`    (*Loads the package*)

Quaternion[1,2,3,4]+Quaternion[2,3,4,5]   (*Sum : obvious*)

Quaternion[1,2,3,4]**Quaternion[2,3,4,5]    (*Product*)

Exp[Quaternion[1,2,3,4]]   (*Elementary function, in this case exponential*)

FromQuaternion[Quaternion[-36,6,12,12]] (*Return to the traditional notation where I refers to the I key of quaternions, not to the square root of -1, a source of confusion!*)

A more efficient (and secure) approach utilizes a matrix representation of the quaternion algebra. Here are two of them (i = (Sqrt[-1])) :

1. 2x2 matrix representation of the four quaternionic keys (k2e, k2i, k2j and k2k). Each quaternion is written as : q = a k2e + b k2i + c k2j + d k2k.

(Subscript[key2, k_]):=(((-1))^(k+1))I PauliMatrix[k];(Subscript[key2, 0])=IdentityMatrix[2];

k2e=(Subscript[key2, 0]);k2i=(Subscript[key2, 1]);k2j=(Subscript[key2, 2]);k2k=(Subscript[key2, 3]);

Print["{k2e,k2i,k2j,k2k} =",Table[(Subscript[key2, k])//MatrixForm,{k,0,3}]]

{k2i.k2i==-k2e,k2j.k2j==-k2e,k2k.k2k==-k2e,k2i.k2j==k2k,k2j.k2k==k2i,k2k.k2i==k2j,k2j.k2i==-k2k,k2k.k2j==-k2i,k2i.k2k==-k2j}    (*Checking the multiplication table*)

quat2[{a_,b_,c_,d_}]:={a,b,c,d}.Table[(Subscript[key2, k]),{k,0,3}]

quat2[{a,b,c,d}]//MatrixForm    (*2x2 matrix representation of the quaternion, q=a k2e + b k2i + c k2j + d k2k*)

2. 4x4 matrix representation of the four quaternionic keys (k4e, k4i, k4j and k4k).

k4e=(Subscript[key4, 0])=IdentityMatrix[4]

k4i=(Subscript[key4, 1])={{0,I,0,0},{I,0,0,0},{0,0,0,I},{0,0,I,0}}

k4j=(Subscript[key4, 2])={{0,0,0,-1},{0,0,1,0},{0,-1,0,0},{1,0,0,0}}

k4k=(Subscript[key4, 3])={{0,0,I,0},{0,0,0,-I},{I,0,0,0},{0,-I,0,0}}

Print["{k4e,k4i,k4j,k4k} =",Table[(Subscript[key4, k])//MatrixForm,{k,0,3}]]

{k4i.k4i==-k4e,k4j.k4j==-k4e,k4k.k4k==-k4e,k4i.k4j==k4k,k4j.k4k==k4i,k4k.k4i==k4j,k4j.k4i==-k4k,k4k.k4j==-k4i,k4i.k4k==-k4j}    (*Checking the multiplication table*)

quat4[{a_,b_,c_,d_}]:={a,b,c,d}.Table[(Subscript[key4, k]),{k,0,3}]

quat4[{a,b,c,d}]

quat4[{a,b,c,d}]//MatrixForm    (*4x4 matrix representation of the quaternion, q=a k2e + b k2i + c k2j + d k2k*)

1. Quaternions and 3D rotations.

Exp[(π/4)Quaternion[0,0,0,1]]**Quaternion[0,1,0,0]**Exp[-(π/4)Quaternion[0,0,0,1]]    (*Direct rotation by π/2 of the vector {1,0,0} around the unit vector {0,0,1}*)

Graphics3D[{Line[{{1,0,0},{0,0,0},{0,0,1},{1,0,0},{1,1,0},{0,0,0},{0,0,1},{1,1,0},{1,0,0}}],Dashed,Arrow[{{0,0,0},{1,1,1}/(Sqrt[3])}],Line[{{1,1,1}/(Sqrt[3]),{1,1,1}}]},Axes->True,AxesLabel->{x,y,z}]   (*A tetrahedron inscribed in a unit cube. The dashed main diagonal will serve below as an axis of rotation*)

Graphics3D[{Line[{{1,0,0},{0,0,0},{0,0,1},{1,0,0},{1,1,0},{0,0,0},{0,0,1},{1,1,0},{1,0,0}}],Dashed,Arrow[{{0,0,0},{1,1,1}/(Sqrt[3])}],Line[{{1,1,1}/(Sqrt[3]),{1,1,1}}]},Axes->True,AxesLabel->{x,y,z},Boxed->False]    (*The same tetrahedron without the unit cube. The dashed unit vector will serve below as an axis of rotation*)

Exp[π/4 Quaternion[0,1/(Sqrt[3]),1/(Sqrt[3]),1/(Sqrt[3])]]** Quaternion[0,1/(Sqrt[3]),1/(Sqrt[3]),1/(Sqrt[3])]**   Exp[-π/4 Quaternion[0,1/(Sqrt[3]),1/(Sqrt[3]),1/(Sqrt[3])]]

Exp[π/4 Quaternion[0,1/(Sqrt[3]),1/(Sqrt[3]),1/(Sqrt[3])]]** Quaternion[0,1,0,0]**  Exp[-π/4 Quaternion[0,1/(Sqrt[3]),1/(Sqrt[3]),1/(Sqrt[3])]]

contour={{1,0,0},{0,0,0},{0,0,1},{1,0,0},{1,1,0},{0,0,0},{0,0,1},{1,1,0},{1,0,0}};

Prepend[#,0]&/@contour

quat[{a_,b_,c_,d_}]:=Quaternion[a,b,c,d]

Thread[quat[Prepend[#,0]&/@contour]]

res=Thread[Exp[π/4 Quaternion[0,1/(Sqrt[3]),1/(Sqrt[3]),1/(Sqrt[3])]]**Thread[quat[Prepend[#,0]&/@contour]]**  Exp[-π/4 Quaternion[0,1/(Sqrt[3]),1/(Sqrt[3]),1/(Sqrt[3])]]   ]//Simplify

Rest[#]&/@Partition[Level[res,{2,2}],4]

rotatedcontour=Rest[#]&/@Partition[Level[res,{2,2}],4]

Graphics3D[{Line[rotatedcontour],Dashed,Arrow[{{0,0,0},{1,1,1}/(Sqrt[3])}],Line[{{1,1,1}/(Sqrt[3]),{1,1,1}}]},Axes->True,AxesLabel->{x,y,z},Boxed->False]    (*The previous tetrahedron, rotated by +90° around the unit vector*)

2. Quaternions in Physics : Maxwell equations.

The quaternionic nabla, nablaQ = (i/c)ke (∂_t) ■ + ki (∂_x) ■ + kj (∂_y) ■ + kk (∂_z) ■ ,  may be defined in each representation (2x2 or 4x4) :

nablaQ2:=(({{(I/c)(∂_t)#+I(∂_z)#& , I(∂_x)#-(∂_y)#&}, {I(∂_x)# +(∂_y)#&, (I/c)(∂_t)#-I(∂_z)#& }}))

nablaQ4:=(({{(I/c)(∂_t)# &, I (∂_x)# &, I (∂_z)# &, -(∂_y)# &}, {I (∂_x)# &, (I/c)(∂_t)# &, (∂_y)# &, -I (∂_z)# &}, {I (∂_z)# &, -(∂_y)# &, (I/c)(∂_t)# &, I (∂_x)# &}, {(∂_y)# &, -I (∂_z)# &, I (∂_x)# &, (I/c)(∂_t)# &}}))

a_⊙b_:=Inner[#1[#2]&,a,b]    (*Applying the nabla (Tricks of trade in the Mathematica Journal : https://www.mathematica-journal.com/issue/v8i4/tricks/contents/Tricks8-4_3.html)*)

Deriving the electromagnetic fied from the potential (2x2 representation) :

quat2[{(I/c)V[t,x,y,z],(Subscript[A, 1])[t,x,y,z],(Subscript[A, 2])[t,x,y,z],(Subscript[A, 3])[t,x,y,z]}]//MatrixForm    (*The electromagnetic potential quaternion in the 2x2 representation*)

Field2=-nablaQ2⊙quat2[{(I/c)V[t,x,y,z],(Subscript[A, 1])[t,x,y,z],(Subscript[A, 2])[t,x,y,z],(Subscript[A, 3])[t,x,y,z]}]//Simplify   (*The electromagnetic field quaternion in the 2x2 representation*)

((Field2[[1,1]]+Field2[[2,2]])/2)//Simplify    (*The Lorentz condition*)

((Field2[[1,1]]-Field2[[2,2]])/2)//Simplify    (*Gives I(I/c (Subscript[E, z]) - (Subscript[B, z]))=-(Subscript[E, z])/c-(Subscript[IB, z])*)

-c ComplexExpand[Re[((Field2[[1,1]]-Field2[[2,2]])/2)]] //Simplify   (*Gives (Subscript[E, z])*)

- ComplexExpand[Im[((Field2[[1,1]]-Field2[[2,2]])/2)]] //Simplify   (*Gives (Subscript[B, z])*)

((Field2[[1,2]]+Field2[[2,1]])/2)//Simplify    (*Gives I(I/c (Subscript[E, x]) - (Subscript[B, x]))=-(Subscript[E, x])/c-(Subscript[IB, x])*)

-c ComplexExpand[Re[((Field2[[1,2]]+Field2[[2,1]])/2)]] //Simplify   (*Gives (Subscript[E, x])*)

-ComplexExpand[Im[((Field2[[1,2]]+Field2[[2,1]])/2)]] //Simplify   (*Gives (Subscript[B, x])*)

((Field2[[1,2]]-Field2[[2,1]])/2)//Simplify    (*Gives -I/c (Subscript[E, y]) + (Subscript[B, y])*)

ComplexExpand[Re[((Field2[[1,2]]-Field2[[2,1]])/2)]] //Simplify   (*Gives (Subscript[B, y])*)

-ComplexExpand[Im[((Field2[[1,2]]-Field2[[2,1]])/2)]] //Simplify   (*Gives (Subscript[E, y])*)

Deriving Maxwell equations in the 2x2 representation) :

nablaQ2conjug:=(({{(I/c)(∂_t)#-I(∂_z)#& , -I(∂_x)#+(∂_y)#&}, {-I(∂_x)# -(∂_y)#&, (I/c)(∂_t)#+I(∂_z)#& }}))    (*Nabla conjugate*)

QELM2=quat2[{0,(I/c)(Subscript[El, 1])[t,x,y,z]-(Subscript[B, 1])[t,x,y,z],(I/c)(Subscript[El, 2])[t,x,y,z]-(Subscript[B, 2])[t,x,y,z],(I/c)(Subscript[El, 3])[t,x,y,z]-(Subscript[B, 3])[t,x,y,z]}]    (*The electromagnetic field*)

resu2=(nablaQ2conjug⊙QELM2-(Subscript[μ, 0])quat2[{I c ρ,(Subscript[I, x]),(Subscript[I, y]),(Subscript[I, z])}])//Simplify   (*Leads to Maxwell's equations. Not so easily decodable because of the intricate 2x2 matrix representation,(({{a+I d, I b-c}, {I b+c, a-I d}}))*)

ComplexExpand[Re[resu2]]

ComplexExpand[Im[resu2]]

Deriving Maxwell equations in the 4x4 representation  :

nablaQ4conjug:=(({{(I/c)(∂_t)# &, -I (∂_x)# &, -I (∂_z)# &, (∂_y)# &}, {-I (∂_x)# &, (I/c)(∂_t)# &, -(∂_y)# &, I (∂_z)# &}, {-I (∂_z)# &, (∂_y)# &, (I/c)(∂_t)# &, -I (∂_x)# &}, {-(∂_y)# &, I (∂_z)# &, -I (∂_x)# &, (I/c)(∂_t)# &}}))

QELM4=quat4[{0,(I/c)(Subscript[El, 1])[t,x,y,z]-(Subscript[B, 1])[t,x,y,z],(I/c)(Subscript[El, 2])[t,x,y,z]-(Subscript[B, 2])[t,x,y,z],(I/c)(Subscript[El, 3])[t,x,y,z]-(Subscript[B, 3])[t,x,y,z]}]

resu4=(nablaQ4conjug⊙QELM4-(Subscript[μ, 0])quat4[{I c ρ,(Subscript[I, x]),(Subscript[I, y]),(Subscript[I, z])}])//Simplify   (*Leads to Maxwell's equations. Easily decodable because of the neat 4x4 matrix representation,(({{a, I b, I d, -c}, {I b, a, c, -I d}, {I d, -c, a, I b}, {c, -I d, I b, a}}))*)

Decoding through the separation of the real and imaginary parts (div (Overscript[B, ->])=0 in blue, curl (Overscript[E, ->])+(∂_t) (Overscript[B, ->]) =0 in magenta, div (Overscript[E, ->]) =ρ/(Subscript[ϵ, 0]) in green, curl (Overscript[B, ->]) -(1/(c^2)) (∂_t) (Overscript[E, ->]) =(Subscript[μ, 0]) (Overscript[I, ->]) in red) :

ComplexExpand[Re[resu4]]    (*The first component is clearly equivalent to div[(Overscript[B, ->])]=0 and so on*)

{{-Derivative[0,0,0,1][(Subscript[B, 3])][t,x,y,z]-Derivative[0,0,1,0][(Subscript[B, 2])][t,x,y,z]-Derivative[0,1,0,0][(Subscript[B, 1])][t,x,y,z],-((Derivative[0,0,0,1][(Subscript[El, 2])][t,x,y,z])/c)+((Derivative[0,0,1,0][(Subscript[El, 3])][t,x,y,z])/c)+((Derivative[1,0,0,0][(Subscript[B, 1])][t,x,y,z])/c),-((Derivative[0,0,1,0][(Subscript[El, 1])][t,x,y,z])/c)+((Derivative[0,1,0,0][(Subscript[El, 2])][t,x,y,z])/c)+((Derivative[1,0,0,0][(Subscript[B, 3])][t,x,y,z])/c),(Subscript[I, y]) (Subscript[μ, 0])-Derivative[0,0,0,1][(Subscript[B, 1])][t,x,y,z]+Derivative[0,1,0,0][(Subscript[B, 3])][t,x,y,z]+((Derivative[1,0,0,0][(Subscript[El, 2])][t,x,y,z])/(c^2))},{-((Derivative[0,0,0,1][(Subscript[El, 2])][t,x,y,z])/c)+((Derivative[0,0,1,0][(Subscript[El, 3])][t,x,y,z])/c)+((Derivative[1,0,0,0][(Subscript[B, 1])][t,x,y,z])/c),-Derivative[0,0,0,1][(Subscript[B, 3])][t,x,y,z]-Derivative[0,0,1,0][(Subscript[B, 2])][t,x,y,z]-Derivative[0,1,0,0][(Subscript[B, 1])][t,x,y,z],-(Subscript[I, y]) (Subscript[μ, 0])+Derivative[0,0,0,1][(Subscript[B, 1])][t,x,y,z]-Derivative[0,1,0,0][(Subscript[B, 3])][t,x,y,z]-((Derivative[1,0,0,0][(Subscript[El, 2])][t,x,y,z])/(c^2)),((Derivative[0,0,1,0][(Subscript[El, 1])][t,x,y,z])/c)-((Derivative[0,1,0,0][(Subscript[El, 2])][t,x,y,z])/c)-((Derivative[1,0,0,0][(Subscript[B, 3])][t,x,y,z])/c)},{-((Derivative[0,0,1,0][(Subscript[El, 1])][t,x,y,z])/c)+((Derivative[0,1,0,0][(Subscript[El, 2])][t,x,y,z])/c)+((Derivative[1,0,0,0][(Subscript[B, 3])][t,x,y,z])/c),(Subscript[I, y]) (Subscript[μ, 0])-Derivative[0,0,0,1][(Subscript[B, 1])][t,x,y,z]+Derivative[0,1,0,0][(Subscript[B, 3])][t,x,y,z]+((Derivative[1,0,0,0][(Subscript[El, 2])][t,x,y,z])/(c^2)),-Derivative[0,0,0,1][(Subscript[B, 3])][t,x,y,z]-Derivative[0,0,1,0][(Subscript[B, 2])][t,x,y,z]-Derivative[0,1,0,0][(Subscript[B, 1])][t,x,y,z],-((Derivative[0,0,0,1][(Subscript[El, 2])][t,x,y,z])/c)+((Derivative[0,0,1,0][(Subscript[El, 3])][t,x,y,z])/c)+((Derivative[1,0,0,0][(Subscript[B, 1])][t,x,y,z])/c)},{-(Subscript[I, y]) (Subscript[μ, 0])+Derivative[0,0,0,1][(Subscript[B, 1])][t,x,y,z]-Derivative[0,1,0,0][(Subscript[B, 3])][t,x,y,z]-((Derivative[1,0,0,0][(Subscript[El, 2])][t,x,y,z])/(c^2)),((Derivative[0,0,1,0][(Subscript[El, 1])][t,x,y,z])/c)-((Derivative[0,1,0,0][(Subscript[El, 2])][t,x,y,z])/c)-((Derivative[1,0,0,0][(Subscript[B, 3])][t,x,y,z])/c),-((Derivative[0,0,0,1][(Subscript[El, 2])][t,x,y,z])/c)+((Derivative[0,0,1,0][(Subscript[El, 3])][t,x,y,z])/c)+((Derivative[1,0,0,0][(Subscript[B, 1])][t,x,y,z])/c),-Derivative[0,0,0,1][(Subscript[B, 3])][t,x,y,z]-Derivative[0,0,1,0][(Subscript[B, 2])][t,x,y,z]-Derivative[0,1,0,0][(Subscript[B, 1])][t,x,y,z]}}

ComplexExpand[Im[resu4]]

{{-c ρ (Subscript[μ, 0])+((Derivative[0,0,0,1][(Subscript[El, 3])][t,x,y,z])/c)+((Derivative[0,0,1,0][(Subscript[El, 2])][t,x,y,z])/c)+((Derivative[0,1,0,0][(Subscript[El, 1])][t,x,y,z])/c),-(Subscript[I, x]) (Subscript[μ, 0])-Derivative[0,0,0,1][(Subscript[B, 2])][t,x,y,z]+Derivative[0,0,1,0][(Subscript[B, 3])][t,x,y,z]-((Derivative[1,0,0,0][(Subscript[El, 1])][t,x,y,z])/(c^2)),-(Subscript[I, z]) (Subscript[μ, 0])-Derivative[0,0,1,0][(Subscript[B, 1])][t,x,y,z]+Derivative[0,1,0,0][(Subscript[B, 2])][t,x,y,z]-((Derivative[1,0,0,0][(Subscript[El, 3])][t,x,y,z])/(c^2)),((Derivative[0,0,0,1][(Subscript[El, 1])][t,x,y,z])/c)-((Derivative[0,1,0,0][(Subscript[El, 3])][t,x,y,z])/c)+((Derivative[1,0,0,0][(Subscript[B, 2])][t,x,y,z])/c)},{-(Subscript[I, x]) (Subscript[μ, 0])-Derivative[0,0,0,1][(Subscript[B, 2])][t,x,y,z]+Derivative[0,0,1,0][(Subscript[B, 3])][t,x,y,z]-((Derivative[1,0,0,0][(Subscript[El, 1])][t,x,y,z])/(c^2)),-c ρ (Subscript[μ, 0])+((Derivative[0,0,0,1][(Subscript[El, 3])][t,x,y,z])/c)+((Derivative[0,0,1,0][(Subscript[El, 2])][t,x,y,z])/c)+((Derivative[0,1,0,0][(Subscript[El, 1])][t,x,y,z])/c),-((Derivative[0,0,0,1][(Subscript[El, 1])][t,x,y,z])/c)+((Derivative[0,1,0,0][(Subscript[El, 3])][t,x,y,z])/c)-((Derivative[1,0,0,0][(Subscript[B, 2])][t,x,y,z])/c),(Subscript[I, z]) (Subscript[μ, 0])+Derivative[0,0,1,0][(Subscript[B, 1])][t,x,y,z]-Derivative[0,1,0,0][(Subscript[B, 2])][t,x,y,z]+((Derivative[1,0,0,0][(Subscript[El, 3])][t,x,y,z])/(c^2))},{-(Subscript[I, z]) (Subscript[μ, 0])-Derivative[0,0,1,0][(Subscript[B, 1])][t,x,y,z]+Derivative[0,1,0,0][(Subscript[B, 2])][t,x,y,z]-((Derivative[1,0,0,0][(Subscript[El, 3])][t,x,y,z])/(c^2)),((Derivative[0,0,0,1][(Subscript[El, 1])][t,x,y,z])/c)-((Derivative[0,1,0,0][(Subscript[El, 3])][t,x,y,z])/c)+((Derivative[1,0,0,0][(Subscript[B, 2])][t,x,y,z])/c),-c ρ (Subscript[μ, 0])+((Derivative[0,0,0,1][(Subscript[El, 3])][t,x,y,z])/c)+((Derivative[0,0,1,0][(Subscript[El, 2])][t,x,y,z])/c)+((Derivative[0,1,0,0][(Subscript[El, 1])][t,x,y,z])/c),-(Subscript[I, x]) (Subscript[μ, 0])-Derivative[0,0,0,1][(Subscript[B, 2])][t,x,y,z]+Derivative[0,0,1,0][(Subscript[B, 3])][t,x,y,z]-((Derivative[1,0,0,0][(Subscript[El, 1])][t,x,y,z])/(c^2))},{-((Derivative[0,0,0,1][(Subscript[El, 1])][t,x,y,z])/c)+((Derivative[0,1,0,0][(Subscript[El, 3])][t,x,y,z])/c)-((Derivative[1,0,0,0][(Subscript[B, 2])][t,x,y,z])/c),(Subscript[I, z]) (Subscript[μ, 0])+Derivative[0,0,1,0][(Subscript[B, 1])][t,x,y,z]-Derivative[0,1,0,0][(Subscript[B, 2])][t,x,y,z]+((Derivative[1,0,0,0][(Subscript[El, 3])][t,x,y,z])/(c^2)),-(Subscript[I, x]) (Subscript[μ, 0])-Derivative[0,0,0,1][(Subscript[B, 2])][t,x,y,z]+Derivative[0,0,1,0][(Subscript[B, 3])][t,x,y,z]-((Derivative[1,0,0,0][(Subscript[El, 1])][t,x,y,z])/(c^2)),-c ρ (Subscript[μ, 0])+((Derivative[0,0,0,1][(Subscript[El, 3])][t,x,y,z])/c)+((Derivative[0,0,1,0][(Subscript[El, 2])][t,x,y,z])/c)+((Derivative[0,1,0,0][(Subscript[El, 1])][t,x,y,z])/c)}}