Eigene Funktionen für den Umgang mit 3D- Vektoren

VB \[Implies] Vektorbetrag
ZVP \[Implies] Zeige Vektorprodukt
ZSP \[Implies] Zeige Skalarprodukt
ZSpP \[Implies] Zeige Spatprodukt
ZMP \[Implies] Zeige Matrixprodukt

\(VB[Vec1_] := 
      Module[{i, S, vbE}, S = ""; vbE = 0; 
        For[i = 1, 
          i ≤ \(Dimensions[
                Vec1]\)[[1]], \(i++\), 
          S = StringForm[\*""``(``\!\(\()\^2\)\)"", S, 
              Vec1[[i]]]; 
          If[i < \(Dimensions[
                  Vec1]\)[[1]], 
            S = StringForm["``+", S]]; 
          vbE += Vec1[[i]]\^2]; 
        S = StringForm[\*""|``|=\!\(\@``\)=``≈"", 
            MatrixForm[Vec1], S, \@vbE]; 
        SequenceForm[S, N[\((\@vbE)\)]]]\)
\(ZVP3D[zvpy_, 
        zvpz_] := \((zvp1 = 
          MatrixForm[{StringForm["(``)*(``)-(``)*(``)", 
                zvpy[[2\ ]], 
                zvpz[[3]], 
                zvpy[[3]], 
                zvpz[[2]]], 
              StringForm["(``)*(``)-(``)*(``)", 
                zvpy[[3\ ]], 
                zvpz[[1]], 
                zvpy[[1]], 
                zvpz[[3]]], 
              StringForm["(``)*(``)-(``)*(``)", 
                zvpy[[1\ ]], 
                zvpz[[2]], 
                zvpy[[2]], 
                zvpz[[1]]]}]; 
zvp2 = MatrixForm[Cross[zvpy, zvpz]]; 
        StringForm["a\[Cross]b= `` = ``", zvp1, 
          zvp2])\)\)
ZSP[zspy_, zspz_] := 
        StringForm["[(``)*(``)]+[(``)*(``)]+[(``)*(``)]=``", 
          zspy[[1 ]], 
          zspz[[1]], 
          zspy[[2]], 
          zspz[[2]], 
          zspy[[3]], 
          zspz[[3]], 
          zspy . zspz];
ZSpP[x_, y_, 
        z_] := (StringForm["``\n``", ZVP[x, y],  
          ZSP[Cross[x, y], z]] )

Off[]

\(ZMP[zmpA_, zmpB_] := \((zmpi = 1; zmpk = 1; m = 0; n = 0; p = 0; 
        m = \(Dimensions[zmpA]\)[[1]]; 
        n = \(Dimensions[zmpA]\)[[2]]; 
        p = \(Dimensions[zmpB]\)[[2]]; 
        Print[StringForm["Das Produkt aus den Matrizen `` und `` berechnet sich wie folgt:", MatrixForm[zmpA], MatrixForm[zmpB]]]; 
        Print[StringForm["Die Matrizen sind vom Typ `` und ``. J muss daher `` sein.", Dimensions[zmpA], Dimensions[zmpB], n]]; 
If[
          n ≠ \(Dimensions[
                zmpB]\)[[1]], 
          Print["Produktbildung nicht möglich!"], \((Print[\*""(Subscript[c, ik])=(∑_(j = 1)^n)(Subscript[a, ij])(Subscript[b, jk]);i={1,...,"", m, "};k={1,...,", 
              p, "}"]; 
For[zmpi = 1, 
              zmpi ≤ m, \(zmpi++\), 
              For[zmpk = 1, zmpk ≤ p, \(zmpk++\), 
                Print[StringForm["(Subscript[c, ````])=(Subscript[a, ``1])(Subscript[b, 1``])+(Subscript[a, ``2])(Subscript[b, 2``])=``*``+``*``=``", zmpi, zmpk, 
                    zmpi, zmpk, zmpi, zmpk, zmpA[\([zmpi, 1]\)], 
                    zmpB[\([1, zmpk]\)], zmpA[\([zmpi, 2]\)], 
                    zmpB[\([2, zmpk]\)], 
                    zmpA[\([zmpi, 1]\)]*zmpB[\([1, zmpk]\)] + 
                      zmpA[\([zmpi, 2]\)]*zmpB[\([2, zmpk]\)]]]]]; 
            Print[StringForm["Die Ergebnismatrix C lautet: ``", 
                MatrixForm[zmpA . zmpB]]])\)])\)\)