coordmaker.mw

The following program will produce the coordinates of the representation of group S4, Conjugacy Class 1, Example 1.

> restart;

> with(linalg):

Warning, the protected names norm and trace have been redefined and unprotected

> with(LinearAlgebra):

Warning, the name GramSchmidt has been rebound

Z is a matrix which will be used to compute the equilibrium stress later.

> z:=matrix([[2,0,0],[0,2,0],[0,0,2]]);

z := matrix([[2, 0, 0], [0, 2, 0], [0, 0, 2]])

ng1, ng2, and ng3 are each the matricies for cable 1, cable 2, and the strut, respectively.

> ng1:=matrix([[0,1,0],[-1,0,0],[0,0,1]]);

ng1 := matrix([[0, 1, 0], [-1, 0, 0], [0, 0, 1]])

> ng2:=matrix([[0,0,-1],[-1,0,0],[0,1,0]]);

ng2 := matrix([[0, 0, -1], [-1, 0, 0], [0, 1, 0]])

> ng3:=matrix([[1,0,0],[0,-1,0],[0,0,-1]]);

ng3 := matrix([[1, 0, 0], [0, -1, 0], [0, 0, -1]])

The following lines compute (1-g1)+(1-inverse(g1))+w(1-g2)+w(1-inverse(g2))+t(1-g3)+t(1-inverse(g3)), where g1, g2, and g3 are represented by ng1, ng2, and ng3. (g1, g2, and g3 are used in thw code as the matricies that generate all of S4.) w is the stress ratio between cable 1 and cable 2, and t is the resultant equilibrium stress on the strut.

> a:=matrix(evalm(z-ng1-transpose(ng1)));

a := matrix([[2, 0, 0], [0, 2, 0], [0, 0, 0]])

> tb:=matrix(evalm(z-ng2-transpose(ng2)));

tb := matrix([[2, 1, 1], [1, 2, -1], [1, -1, 2]])

> wmat:=matrix([[w,0,0],[0,w,0],[0,0,w]]);

wmat := matrix([[w, 0, 0], [0, w, 0], [0, 0, w]])

> b:=evalm(tb.wmat);

b := matrix([[2*w, w, w], [w, 2*w, -w], [w, -w, 2*w]])

> td:=evalm(z-ng3-transpose(ng3));

td := matrix([[0, 0, 0], [0, 4, 0], [0, 0, 4]])

> tmat:=matrix([[t,0,0],[0,t,0],[0,0,t]]);

tmat := matrix([[t, 0, 0], [0, t, 0], [0, 0, t]])

> d:=evalm(td.tmat);

d := matrix([[0, 0, 0], [0, 4*t, 0], [0, 0, 4*t]])

> evalm(a+b+d);

matrix([[2+2*w, w, w], [w, 2+2*w+4*t, -w], [w, -w, 2*w+4*t]])

Finding the determinant of the above matrix will produce the equilibrium stress for t.

> det(%);

8*w+16*t+12*w^2+48*w*t+32*t^2+24*w^2*t+32*w*t^2

> solve(%=0,t);

-1/8*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(1+w), -1/8*(2+6*w+3*w^2+(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(1+w)

Taking t to be the least negative value of the above choices:

> t:=-1/8*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(1+w);

t := -1/8*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(1+w)

> tmat:=matrix([[t,0,0],[0,t,0],[0,0,t]]);

tmat := matrix([[-1/8*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(1+w), 0, 0], [0, -1/8*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(1+w), 0], [0, 0, -1/8*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4...tmat := matrix([[-1/8*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(1+w), 0, 0], [0, -1/8*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(1+w), 0], [0, 0, -1/8*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4...

> d:=evalm(td.tmat);

d := matrix([[0, 0, 0], [0, -1/2*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(1+w), 0], [0, 0, -1/2*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(1+w)]])

> evalm(a+b+d);

matrix([[2+2*w, w, w], [w, 2+2*w-1/2*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(1+w), -w], [w, -w, 2*w-1/2*(2+6*w+3*w^2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(1+w)]])

The kernel of this matrix will then produce the seed for the representation, which will produce each point in the representation.

> kernel(%);

{vector([-1/2*(3*w^2-2+(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(2+5*w+3*w^2), -(2*w+2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(w*(2+3*w)), 1])}

> tk:=%[1];

tk := vector([-1/2*(3*w^2-2+(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(2+5*w+3*w^2), -(2*w+2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(w*(2+3*w)), 1])

> k:=matrix([[tk[1]],[tk[2]],[tk[3]]]);

k := matrix([[-1/2*(3*w^2-2+(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(2+5*w+3*w^2)], [-(2*w+2-(4+8*w+8*w^2+12*w^3+9*w^4)^(1/2))/(w*(2+3*w))], [1]])

g1, g2, and g3 are the matricies which will generate S4.

> g1:=matrix([[0,-1,0],[-1,0,0],[0,0,-1]]);

g1 := matrix([[0, -1, 0], [-1, 0, 0], [0, 0, -1]])

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

g2 := matrix([[0, 0, 1], [1, 0, 0], [0, 1, 0]])

> g3:=matrix([[0,0,-1],[0,1,0],[1,0,0]]);

g3 := matrix([[0, 0, -1], [0, 1, 0], [1, 0, 0]])

Multiplying be each of the following will produce the coordinates for each vertex of the representation.

> evalf(transpose(evalm(g1.k)));
evalf(transpose(evalm(g2.k)));

evalf(transpose(evalm(g3.k)));

evalf(transpose(evalm(g1.g2.k)));

evalf(transpose(evalm(g1.g3.k)));

evalf(transpose(evalm(g2.g2.k)));

evalf(transpose(evalm(g2.g3.k)));

evalf(transpose(evalm(g3.g3.k)));

evalf(transpose(evalm(g1.g2.g2.k)));

evalf(transpose(evalm(g1.g2.g3.k)));

evalf(transpose(evalm(g1.g3.g3.k)));

evalf(transpose(evalm(g2.g2.g3.k)));

evalf(transpose(evalm(g2.g3.g3.k)));

evalf(transpose(evalm(g3.g3.g3.k)));

evalf(transpose(evalm(g1.g2.g2.g3.k)));

evalf(transpose(evalm(g1.g2.g3.g3.k)));

evalf(transpose(evalm(g1.g3.g3.g3.k)));

evalf(transpose(evalm(g2.g2.g3.g3.k)));

evalf(transpose(evalm(g2.g3.g3.g3.k)));

evalf(transpose(evalm(g1.g2.g2.g3.g3.k)));

evalf(transpose(evalm(g1.g2.g3.g3.g3.k)));

evalf(transpose(evalm(g2.g2.g3.g3.g3.k)));

evalf(transpose(evalm(g1.g2.g2.g3.g3.g3.k)));

matrix([[(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), .5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), -1.]])

matrix([[1., -.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), -1.*(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w))]])

matrix([[-1., -1.*(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), -.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2)]])

matrix([[.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), -1., (2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w))]])

matrix([[(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), 1., .5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2)]])

matrix([[-1.*(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), 1., -.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2)]])

matrix([[-.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), -1., -1.*(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w))]])

matrix([[.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), -1.*(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), -1.]])

matrix([[-1., (2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), .5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2)]])

matrix([[1., .5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), (2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w))]])

matrix([[(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), -.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), 1.]])

matrix([[-1.*(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), -.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), -1.]])

matrix([[-1., .5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), -1.*(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w))]])

matrix([[1., -1.*(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), .5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2)]])

matrix([[.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), (2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), 1.]])

matrix([[-.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), 1., (2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w))]])

matrix([[(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), -1., -.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2)]])

matrix([[-1.*(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), -1., .5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2)]])

matrix([[.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), 1., -1.*(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w))]])

matrix([[1., (2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), -.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2)]])

matrix([[-1., -.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), (2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w))]])

matrix([[-1.*(2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), .5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), 1.]])

matrix([[-.5000000000*(3.*w^2-2.+(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(2.+5.*w+3.*w^2), (2.*w+2.-1.*(4.+8.*w+8.*w^2+12.*w^3+9.*w^4)^(1/2))/(w*(2.+3.*w)), -1.]])

>