> with(linalg):
Warning, the protected names norm and trace have been redefined and
unprotected

> W:=matrix(8,8,[[1,0,0,0,0,0,0,0],[1,1,0,0,0,0,0,0],
> [1,1,1,0,1,0,0,0],[1,0,1,0,0,0,0,0],
> [1,0,0,1,0,0,0,0],[1,1,0,1,0,0,1,0],
> [1,1,1,1,1,1,1,1],[1,0,1,1,0,1,0,0]]);

                  [1    0    0    0    0    0    0    0]
                  [                                    ]
                  [1    1    0    0    0    0    0    0]
                  [                                    ]
                  [1    1    1    0    1    0    0    0]
                  [                                    ]
                  [1    0    1    0    0    0    0    0]
             W := [                                    ]
                  [1    0    0    1    0    0    0    0]
                  [                                    ]
                  [1    1    0    1    0    0    1    0]
                  [                                    ]
                  [1    1    1    1    1    1    1    1]
                  [                                    ]
                  [1    0    1    1    0    1    0    0]

> Inverse:=inverse(%);

                  [ 1     0     0     0     0     0    0     0]
                  [                                           ]
                  [-1     1     0     0     0     0    0     0]
                  [                                           ]
                  [-1     0     0     1     0     0    0     0]
                  [                                           ]
                  [-1     0     0     0     1     0    0     0]
       Inverse := [                                           ]
                  [ 1    -1     1    -1     0     0    0     0]
                  [                                           ]
                  [ 1     0     0    -1    -1     0    0     1]
                  [                                           ]
                  [ 1    -1     0     0    -1     1    0     0]
                  [                                           ]
                  [-1     1    -1     1     1    -1    1    -1]

> w:=matrix(1,8,[x[1],x[2],x[3],x[4],x[5],x[6],x[7],x[8]]);

     w := [x[1] , x[2] , x[3] , x[4] , x[5] , x[6] , x[7] , x[8]]

> y:=matrix(1,8,[a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]]);

     y := [a[1] , a[2] , a[3] , a[4] , a[5] , a[6] , a[7] , a[8]]

> Y:=transpose(linsolve(W,transpose(w)));

  Y :=

        [x[1] , -x[1] + x[2] , -x[1] + x[4] , -x[1] + x[5] ,

        -x[2] + x[1] - x[4] + x[3] , -x[4] + x[1] - x[5] + x[8] ,

        -x[2] + x[1] - x[5] + x[6] ,

        x[2] - x[1] + x[4] - x[3] + x[5] - x[8] - x[6] + x[7]]

> X:=matrix(1,8,[1,xi,eta,zeta,xi*eta,eta*zeta,zeta*xi,xi*eta*zeta]);

  X :=

        [1 , xi , eta , zeta , xi eta , eta zeta , zeta xi ,

        xi eta zeta]

> Formfunktionen:=multiply(transpose(Inverse),transpose(X));

  Formfunktionen :=

        [1 - xi - eta - zeta + xi eta + eta zeta + zeta xi

         - xi eta zeta]

        [xi - xi eta - zeta xi + xi eta zeta]

        [xi eta - xi eta zeta]

        [eta - xi eta - eta zeta + xi eta zeta]

        [zeta - eta zeta - zeta xi + xi eta zeta]

        [zeta xi - xi eta zeta]

        [xi eta zeta]

        [eta zeta - xi eta zeta]

> N:=matrix(map(factor,%));

                    [-(-1 + eta) (-1 + xi) (-1 + zeta)]
                    [                                 ]
                    [    xi (-1 + eta) (-1 + zeta)    ]
                    [                                 ]
                    [       -xi eta (-1 + zeta)       ]
                    [                                 ]
                    [    eta (-1 + xi) (-1 + zeta)    ]
               N := [                                 ]
                    [    zeta (-1 + eta) (-1 + xi)    ]
                    [                                 ]
                    [       -zeta xi (-1 + eta)       ]
                    [                                 ]
                    [           xi eta zeta           ]
                    [                                 ]
                    [       -zeta eta (-1 + xi)       ]

> 
> 
