A couple suggestions:

1. As Joe said, If you are solving several equations for several variables, do them together:

eqn1:=.6907*x3+.3336*y3+.6415*z3-2.203 = 0;

eqn2:=cos(theta)*x3+sin(theta)*y3-1. = 0;

solve({eqn1,eqn2}, {x3,y3});

Maple has more sophisticated strategies than just solving for a variable and substituting into an equation.

2. If you are going to solve the equations one as a time, use eval instead of assigning to a variable:

eqn := x+y;

eqn:=eval(eqn, x=1);

is generally much safer than:

eqn := x+y;

x:=1;

solve using sets around the variables gives nice outputs for doing this:

ans1:=solve({eqn2}, {x3});

eqn1a := eval(eqn1, ans1);

solve({eqn1a}, {y3});

3. Don't send floating point numbers into solve.

(In fact, if your equations don't have symbols you aren't solving for, use fsolve.)

In this case, you can't avoid using solve, but solve doesn't like floats. If it sees floating point numbers in the input, it calls 'convert(eqns, rational)' on the input and then evalf() on the output. This often hides what is going on and may not give you what you intend (especially if the floats are approximations of non-rational numbers).

So if you start with input:

eqn1:=0.6907 x3 + 0.3336 y3 + 0.6415 z3 - 2.203 = 0

before solving maple calls convert(eqn1, rational) and turns it into

6907/10000*x3+417/1250*y3+1283/2000*z3-2203/1000 = 0

(this is maybe okay, unless your equations were supposed to be a 4 decimal place approximation of say: 67/97*x3+21/89*2^(1/2)*y3+34/53*z3-81/52*2^(1/2) = 0 )

And while solving, that is in turn simplified to have no fractions:

6907*x3+3336*y3+6415*z3-22030 = 0

When a solution is found, it will have only integers in it as well:

y3 = (6907-22030*cos(theta)+6415*z3*cos(theta))/(-3336*cos(theta)+

6907*sin(theta))

And this answer is already in "lowest terms" and I think we can agree that dividing top and bottom by 1000 would be silly (if you are keeping things as fractions not converting to floats). In fact, in Maple, it would be pointless since the automatic simplifier would put you back where you started.

Now, if you started with floating point numbers, maple actually gives you evalf of the integer answer, and that might look a little wierd if you were expecting maple to do the whole calculation with floating point numbers.

ans:=y3 = (6907.-22030.*cos(theta)+6415.*z3*cos(theta))/(-3336.*cos(theta)+6907.*

sin(theta));

You could however coerce it in the following way:

lhs(ans)=expand(numer(rhs(ans))/10000.)/expand((denom(rhs(ans))/10000.));