Is there any function other than Fsolve to solve systems of nonlinear equations ????

13 visualizaciones (últimos 30 días)
I am trying to solve the following system of 3 nonlinear equations:
XYZ(1)-A*(B*XYZ(2)^P1-C*XYZ(2)^P2)^(1/2)=0
XYZ(1)*F+G-XYZ(1)*XYZ(3)*H-I*XYZ(3)=0
XYZ(1)+E-D*XYZ(2)*XYZ(3)^(-1/2)=0
Where A,B,C,D,E,F,G,H,I,P1 and P2 are variables and X,Y and Z are the 3 unknowns to find.
I have tried using the function Fsolve with an m-file but the results were not good enough.
Is there any other function to solve this system ?????
  1 comentario
Walter Roberson
Walter Roberson el 6 de Mayo de 2012
Duplicate is at http://www.mathworks.com/matlabcentral/answers/37287-is-there-any-function-other-than-fsolve-to-solve-systems-of-nonlinear-equations

Iniciar sesión para comentar.

Respuestas (2)

John D'Errico
John D'Errico el 6 de Mayo de 2012
Please expand on what was inadequate about fsolve.
- Did it not converge at all?
- Did it not converge to the solution you want to see? (After all, such a problem will have multiple solutions in general.)
- Did it not converge quickly enough for your needs?
- Was the solution obtained from fsolve not accurate enough for you?
- Do you need a symbolic solution?
The point is, some of these issues can be viewed as merely one of inadequate starting values. Or, you may want a global solver. There is a global optimization toolbox.) Or you may be looking for ALL possible solutions.
And of course, it is likely that no symbolic solution exists, since the problem will be equivalent to solving for the roots of a high order polynomial.
So for a better answer, we need some help here.
  3 comentarios
Geoff
Geoff el 7 de Mayo de 2012
My guess is that you're not using fsolve correctly. Is your function set up to return a small value when delivered the correct solution? Have you looked at the help for fsolve and optimset to see how to increase MaxFunEvals?
kamal kiki
kamal kiki el 7 de Mayo de 2012
I have increased MaxFunEvals but I am still having the message Maximum number of function evaluations reached.
I do not know how to set up the function to return a small value when delivered the correct solution.

Iniciar sesión para comentar.


Walter Roberson
Walter Roberson el 7 de Mayo de 2012
Discussion of this topic should take place in your original Question that this is a duplicate of, http://www.mathworks.com/matlabcentral/answers/37287-is-there-any-function-other-than-fsolve-to-solve-systems-of-nonlinear-equations . Discussion here splits efforts, confuses people, and makes more work for the staff to merge the questions together.

Categorías

Más información sobre Systems of Nonlinear Equations en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by