This Maple worksheet is basically used to perform some algebra needed to better understand

         the normal modes of some systems of coupled oscillators, in several dimensions.

 The command just below tells Maple that it should get itself prepared to receive commands

             involving matrices.  It is quite an old form of that command, the newer editions of Maple

             having newer forms in addition to this one, which is being done in Maple 8.  However,

                 it is sufficient for our purposes.

    When invoked in this way, i.e., with a semi-colon, it lists all the different programs in this block.

 

>    with(linalg);

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

[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, coldi...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, coldi...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, coldi...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, coldi...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, coldi...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, coldi...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, coldi...
[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, coldi...

  We intend to look at varying numbers of carts, all of equal mass m, and moving on a frictionless, horizontal

      surface, but each adjacent ones being attached either to each other or to an adjacent, fixed wall, if they are

    on the ends of the "caravan" of carts.  Each of these springs all have equal spring constants k.

                Therefore, we may suppose that k/m is taken as omega0, squared, and use it to scale all other

     frequencies involved in the problem.  Therefore, the matrix given below, which seems to have all numbers,

only, is really such that every term is multiplied by omega0^2.

For the first case, I just consider two carts, so that we should expect to receive the same information as already

discussed in detail in the text and in the class:

>    K2:=matrix([[2,-1],[-1,2]]);

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

>    eigenvectors(K2);

[3, 1, {vector([-1, 1])}], [1, 1, {vector([1, 1])}]

  The request for the eigenvectors produces a sequence of "things" within brackets---in this case two of them.

    Considering the first one in this sequence, that bracket first tells us that the eigenvalue is 3---remember that

   this means that the solution for the problem of what are the values of the normal mode frequencies, omega, is that

   omega^2 = 3*omega0^2.

                Next in that bracket is the integer 1, which is telling us that in the list of all the eigenvalues of this

matrix this value, 3, occurs just once; i.e., it it the multiplicity of this value in the set of all of them.

     Lastly, inside a brace, is the vector which is the eigenvector associated with this eigenvalue.  It is

actually undetermined modulo some arbitrary constant; therefore, that constant has been chosen by the system

so as to make the various components of the vector as simple as possible.  

      The "physical view" of this eigenvector,

or normal mode, is that the first component multiplies that arbitrary constant to give us the amplitude of the

motion of the first cart, while the second component does the same thing for the second cart.  This one,

namely [-1,1], tells us that the two carts are oscillating in opposite directions, but with otherwise equal

amplitudes, in this particular mode.

   We also consider, briefly, the second entry above, which tells us that the second allow frequency, i.e.,

the frequency of the second normal mode, is just 1*omega0, that it occurs once in our list of all

allowed frequencies, and that its associated mode vector, [1,1], means that the two carts move "together,"

i.e., with the same amplitude and in the same direction, when they are moving (only) with this frequency.

Now, let us go ahead and look at the situation with 3 carts; here, Maple is of considerable help generating

the determinants that are needed.

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

K3 := matrix([[2, -1, 0], [-1, 2, -1], [0, -1, 2]])

>    eigenvectors(K3);

[2, 1, {vector([-1, 0, 1])}], [2+2^(1/2), 1, {vector([1, -2^(1/2), 1])}], [2-2^(1/2), 1, {vector([1, 2^(1/2), 1])}]

   Here the 3 eigenvalues are all different, i.e., there is no degeneracy, and

     a) the first normal mode involves only the first and last carts, moving in opposite directions but equal magnitudes,

    b) the second and third modes involve all three carts moving, with different directions between the two for the

                        middle one.

 

   Now, let's go ahead yet further and look at the situation with 4 carts.

   Do remember that all this is for the situation where all the masses are the same and the springs are the same.

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

K4 := matrix([[2, -1, 0, 0], [-1, 2, -1, 0], [0, -1, 2, -1], [0, 0, -1, 2]])

>    eigenvectors(K4);

[3/2+1/2*5^(1/2), 1, {vector([1, 1/2-1/2*5^(1/2), 1/2-1/2*5^(1/2), 1])}], [3/2-1/2*5^(1/2), 1, {vector([1, 1/2+1/2*5^(1/2), 1/2+1/2*5^(1/2), 1])}], [5/2+1/2*5^(1/2), 1, {vector([-1, 1/2+1/2*5^(1/2), -1...
[3/2+1/2*5^(1/2), 1, {vector([1, 1/2-1/2*5^(1/2), 1/2-1/2*5^(1/2), 1])}], [3/2-1/2*5^(1/2), 1, {vector([1, 1/2+1/2*5^(1/2), 1/2+1/2*5^(1/2), 1])}], [5/2+1/2*5^(1/2), 1, {vector([-1, 1/2+1/2*5^(1/2), -1...

  

  The 4 eigenvalues now come in pairs, as can be seen easily; none are simple.  The eigenvectors all

involve motions of all 4 carts, although it is clear that the ones on each end always have the same amplitudes,

and the pair in the middle also have equal amplitudes, different from the ones on the end.

Here the problem, from Tues. night,

 with the three pendula connected together by a flexible steel bar from which they are suspended.

    As the algebra is a bit messy, I present it here.

>    pen:=matrix([[1,-e,-e],[-e,1,-e],[-e,-e,1]]);

pen := matrix([[1, -e, -e], [-e, 1, -e], [-e, -e, 1]])

>    eigenvectors(pen);

[e+1, 2, {vector([-1, 0, 1]), vector([-1, 1, 0])}], [-2*e+1, 1, {vector([1, 1, 1])}]

So here we have a degeneracy in the normal mode frequencies, with one frequency occuring twice;

   nonetheless, there are two independent mode vectors (eigenvectors) associated with that repeated frequency.

However, as those two vectors correspond to the same frequency any other pair of linear combinations

                  of them is equally valid.

 

   For good measure, let us consider one with 5 carts.

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

MK := matrix([[2, -1, 0, 0, 0], [-1, 2, -1, 0, 0], [0, -1, 2, -1, 0], [0, 0, -1, 2, -1], [0, 0, 0, -1, 2]])

>    eigenvectors(MK);

[2+3^(1/2), 1, {vector([1, -3^(1/2), 2, -3^(1/2), 1])}], [2-3^(1/2), 1, {vector([1, 3^(1/2), 2, 3^(1/2), 1])}], [2, 1, {vector([1, 0, -1, 0, 1])}], [1, 1, {vector([-1, -1, 0, 1, 1])}], [3, 1, {vector([...

  Perhaps surprisingly, we see the results here are much simpler than the ones for 4 carts.

The squares of our normal-mode frequencies, measured in units of the square of the simple frequency, omega0,

 are just    1, 2, 3, and 2 + sqrt(3) and 2-sqrt(3).

    The eigenvectors are also simpler, where the last three above involve paired motions of the first two carts,

    equivalent to the motions of the last two carts, either in the same or opposite directions, with the middle one

    at rest, or, also one where only the end and middle ones move.  As expected, I hope, the ones with radicals

   also involve more complicated/sophisticated motions.

>    ;

>