SOLVE not completely solving equations...?



In the below set of commands, the final step is necessary because SOLVE 
isn't doing a very simple calculation in order to solve for a particular 
variable (lenRest).  The extra step allows Maxima to solve it.

My question is, which command, or option, can I use to force Maxima to 
solve (to closed form) such equations without these extra steps.


"Calculate the required rest Length of string to get desired frequency" $

assume( lenRest > 0 ) $
assume( 'freq > 0 ) $
assume( lenTension > 0 ) $
assume( GetUnitMass > 0 ) $
assume( GetCoreArea > 0 ) $
assume( myTension > 0 ) $

GetMass : GetUnitMass * lenRest $

lenK : myTension / lenRest * GetCoreArea $

waveVel : sqrt( ( lenK * ( lenTension - lenRest ) ) / ( GetMass / 
lenTension ) ) $
		
freq : waveVel /  (2.0 * lenTension) $

" Doesn't really solve here... see below... " $
q : solve( 'freq = freq, lenRest )[1] $

" Why doesn't Maxima figure out the next step...? " $
solve( q^2, lenRest );


-- 
edA-qa mort-ora-y
Idea Architect
http://disemia.com/