Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations KootK on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Solving multiple equations using Matlab

Status
Not open for further replies.

avi2112ben

Military
Jul 28, 2006
1
Hi all,
I am quite a newbie using Matlab.. I am trying to get Matlab to solve a set of 12 equations with 12 variables using the solve function. I have written something similar to this (I pasted the original at the end):

>>solve=('equa1','equa2',..,'equa12','var1',..,'var12')

Matlabs gives a Warning:Explicit solution could not be found

Would thanks any tips..
Avi


The line:
>> solve('D1^2=h2^2+m^2' , 'D2^2=C1^2+C2^2-2*C1*C2*cos(s1)' , 'L1+L2=C5' , 'sin(b1)=C3/L1*sin(s1+a1)' , 'cos(b3)=(C5^2+D1^2-D2^2)/(2*C5*D1)' , 'sin(b1)=C3/C2*sin(b2+a2)' , 'cos(s2)=(C1^2+h^2-H^2)/(2*C1*h)' , 'sin(b4)=C2/D2*sin(s1)' , 'sin(b5)=L1/D2*sin(b2)' ,'tan(b7)=m/h', 'cos(b6)=(D1^2+C4^2-L2^2)/(2*D1*C4)' , 's2+b4+b5+b6+b7=360', 's1', 's2', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'L1', 'L2', 'D2')


 
Replies continue below

Recommended for you

I'm not familiar with Matlab capabilities in this area. It sounds like it cannot find an explicit algebraic solution with those variables all on the left hand side of the expression.

In Maple there is an fsolve command which gives numerical (f for floating) solution. In Matlab maybe it is something like option = numerical?

=====================================
Eng-tips forums: The best place on the web for engineering discussions.
 
If you type help solve you will see that solve is a symbolic solver, therefore if the system of equations doesn't admit a solution in closed form (and it seems to be the case since you have trigonometric and power functions) matlab cannot do anything about it.

If you are interested in finding a numerical solution of your system (i.e. an approximation of the solutions of which you can chose the grade of accuracy) check the command fsolve typing help fsolve. This is a numerical solver for systems of nonlinear equations. Remember that for each run of the command you will obtain only one root (whereas your system might admit much many than one solution).

The numerical procedure mught converge towards different solutions depending on the initial guess or it might diverge for a very bad guess.

If you want to find all the solutions I suggest you to implement a cycle in which you randomly chose the initial guess. Since you have a pretty large system of non linear equations I recommend you to do several iterations and memorize the solutions.

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor