From: "Romain " <>
Newsgroups: comp.soft-sys.matlab
Subject: System of nonlinear equations: no convergence to a root using fsolve
Date: Fri, 8 Jul 2011 16:56:09 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 20
Message-ID: <iv7cr9$aqv$>
Reply-To: "Romain " <>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: 1310144169 11103 (8 Jul 2011 16:56:09 GMT)
NNTP-Posting-Date: Fri, 8 Jul 2011 16:56:09 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 2943433
Xref: comp.soft-sys.matlab:735572

Hello everybody,

I have a problem using the fsolve function. The aim of the procedure I implement is to identify a matrix subject to certain restrictions. To do so, I can decompose my matrix into a nonlinear system of equations. It is a rather small system (8 equations, 8 unknown), however, when I use the fsolve function, I always obtain the error message:'Optimizer appears to be converging to a minimum that is not a root:Sum of squares of the function values exceeds the square root of options.Tolfun.Try again with a new starting point'. I tried with many different initial values, but that was no improvement. Precisely, here is my system:

The EXO variables are constants whose values are known by the program when it runs the algorithm, and the actual variables to value are the x(.).

I am a bit surprised since the system is rather small, and since I previously obtained convergence very easily with a very similar system. According to my thesis supervisor, the system should admit a solution.

Then my question is: how can i solve this system in the end? Is there a way to implement a loop that would create random initial values, so that in the end one of these random sets could succeed to carry the solution? Is there a way to compel the function to stop to a global min, and not a local min? Should I try a different function for solving?

Thanks a lot for any help.