MathGroup Archive 1991

[Date Index] [Thread Index] [Author Index]

Search the Archive

question about Solve

  • To: mathgroup at yoda.ncsa.uiuc.edu
  • Subject: question about Solve
  • From: "Paul N. Schatz" <pns at dalton.acc.virginia.edu>
  • Date: Mon, 7 Jan 1991 13:20:57 EST

This is a question from a semi-beginner. 
I list below a Mma session in which I use Solve.
(I list In and Out followed by a blank line in each
case. Is there a more elegant way to format this from
a Macintosh without a lot of tedious copying and pasting?)
The problem I am trying to solve is the following. I
have an orthogonal matrix u(inverse=transpose)--a 3x3.
I want to solve some equations involving the matrix
elements of u--insuring of course that u be orthogonal.
To start with, I take a simple example in which I know
the answers. You will see below that when I use Solve
with the two conditions orth1 and orth4, I get four
solutions. The third of these is correct. The others
do not keep u orthogonal. Then I use Solve again. This
time I add the additional condition orth2. It seems obvious
to me that I should now get only the one correct solution.
But in fact, Solve reports no solutions. Is it obvious
why this is happening, andf if so, what I can do about it?
Any help would be much appreciated.

         Paul Schatz
         Chemistry Dept.
         University of Virginia



u={{u11,u12,u13},{u21,u22,u23},{u31,u32,u33}}
{{u11, u12, u13}, {u21, u22, u23}, {u31, u32, u33}}

MatrixForm[u]
MatrixForm[{{u11, u12, u13}, {u21, u22, u23}, {u31, u32, u33}}]

do1=m (Sqrt[2] u11 - u12 -Sqrt[3] u13)
m*(2^(1/2)*u11 - u12 - 3^(1/2)*u13)

do2=m (Sqrt[2] u21 - u22 -Sqrt[3] u23)
m*(2^(1/2)*u21 - u22 - 3^(1/2)*u23)

do3=m (Sqrt[2] u31 - u32 -Sqrt[3] u33)
m*(2^(1/2)*u31 - u32 - 3^(1/2)*u33)

orthog=u.Transpose[u]==IdentityMatrix[3]
{{u11^2 + u12^2 + u13^2, u11*u21 + u12*u22 + u13*u23, 
    u11*u31 + u12*u32 + u13*u33}, 
   {u11*u21 + u12*u22 + u13*u23, u21^2 + u22^2 + u23^2, 
    u21*u31 + u22*u32 + u23*u33}, 
   {u11*u31 + u12*u32 + u13*u33, u21*u31 + u22*u32 + u23*u33, 
    u31^2 + u32^2 + u33^2}} == {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}

eq1=do1==Sqrt[2]
m*(2^(1/2)*u11 - u12 - 3^(1/2)*u13) == 2^(1/2)

eq2=do2==-Sqrt[1.0]
m*(2^(1/2)*u21 - u22 - 3^(1/2)*u23) == -1.

eq3=do3==-Sqrt[3.0]
m*(2^(1/2)*u31 - u32 - 3^(1/2)*u33) == -1.732050807568877294

u12=u21=u13=u31=0
0

u11=1.0
1.

orth1=u21^2+u22^2+u23^2==1.0
u22^2 + u23^2 == 1.

orth2=u21 u31+u22 u32+u23 u33==0.0
u22*u32 + u23*u33 == 0.

orth4=u31^2+u32^2+u33^2==1.
u32^2 + u33^2 == 1.

Solve[{eq1,eq2,eq3,orth1,orth4},{m,u22,u23,u32,u33}]//N
{{u32 -> 0., u33 -> 1., u22 -> -0.5, u23 -> 0.8660254037844386468, m -> 1.}, 
  {u32 -> 0.8660254037844386468, u33 -> 0.5, u22 -> -0.5, 
   u23 -> 0.8660254037844386468, m -> 1.}, 
  {u32 -> 0., u33 -> 1., u22 -> 1., u23 -> 0., m -> 1.}, 
  {u32 -> 0.8660254037844386468, u33 -> 0.5, u22 -> 1., u23 -> 0., m -> 1.}}

Solve[{eq1,eq2,eq3,orth1,orth4,orth2},{m,u22,u23,u32,u33}]//N
{}

Solve[{eq1,eq2,eq3,orth1,orth4,orth2},{m,u22,u23,u33}]//N
{}


  • Prev by Date: mathematica bug
  • Next by Date: Re: question about Solve
  • Previous by thread: mathematica bug
  • Next by thread: Re: question about Solve