From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: System of nonlinear equations: no convergence to a root using fsolve
Date: Fri, 8 Jul 2011 17:33:49 +0000 (UTC)
Organization: Xoran Technologies
Lines: 31
Message-ID: <iv7f1t$h8a$>
References: <iv7cr9$aqv$>
Reply-To: <HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: 1310146429 17674 (8 Jul 2011 17:33:49 GMT)
NNTP-Posting-Date: Fri, 8 Jul 2011 17:33:49 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1440443
Xref: comp.soft-sys.matlab:735575

"Romain " <> wrote in message <iv7cr9$aqv$>...
> F(1)=x(1)^2+x(2)^2+x(3)^2-EXO_SIGMA1SQ;
> F(2)=x(4)^2+x(5)^2+x(6)^2-EXO_SIGMA2SQ;
> F(3)=x(7)^2+x(8)^2-EXO_SIGMA3SQ;
> F(4)=x(1)*x(4)+x(2)*x(5)+x(3)*x(6)-EXO_SIGMA12;
> F(5)=x(2)*x(7)+x(3)*x(8)-EXO_SIGMA13;
> F(6)=x(5)*x(7)+x(6)*x(8)-EXO_SIGMA23;
> F(7)=x(2)*EXO_K1+x(5)*EXO_K2+x(7);
> F(8)=x(3)*EXO_K1+x(6)*EXO_K2+x(8);
> 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.

Well, it's pretty clear that the system can fail to have a solution. Your very first equation, for example, requires that


and similarly with your 2nd and third equation. If that's not satisifed, then right away you know a solution does not exist.

If that's not the problem, your first 3 equations provide a clue to where a solution lies, if it does exist. The first equation implies, for example, that

abs(x(i))   <=   sqrt(F(1)+EXO_SIGMA1SQ)

for i=1,2,3. The 2nd and 3rd equations  provide similar bounds/ranges for the 
other x(i). 

To search for the global minimum, one thing you could try is to coarsely discretize the above ranges for x(i), into e.g.  5 bins. Then you could do an exhaustive search  over all combinations of those values to see which most nearly solves the equation. That would at least give you some idea where to initialize.