MATLAB: Alternatives to fsolve for solving systems of nonlinear equations with boundaries

boundary conditionsfsolveMATLABnonlinear equations

I’m solving an inverse kinematic problem for a four joint robotic arm. Essentially I have 3 equations (X, Y, Z) and four unknowns (Joint 1 – Joint4) so there are multiple possible solutions for each joint angle. It is a system of nonlinear equations.
fsolve is doing a wonderful job of solving the system for me, but in order to be able to apply my program to actual robot control I need to be able to add constraints to the possible range of the joint angles. They must be between 0 and pi radians.
I’ve tried lsqnonlin with boundaries but run into the problem that I have 3 equations and 4 unknowns.
Are there alternative functions that allow boundary inputs that will solve systems of nonlinear equations? Alternativly, is there a way to use/modify fsolve to force solutions into a range? I'm on R2012b.
Any thoughts would be much appreciated as I'm out of ideas and my google-fu is failing me.

Best Answer

I ended up doing a little trig to find a fourth equation, giving me 4 equations and 4 unknowns. Now I can use LSQNONLIN to put upper and lower bounds on my problem and solve it. Works great!