Quantcast
Channel: Yet Another Math Programming Consultant
Viewing all articles
Browse latest Browse all 809

Singular system of nonlinear equations

$
0
0
For a project I am faced with solving large, sparse systems of nonlinear equations\[F(x)=0\] In some cases I get a a singular system: the Jacobian at the feasible point is not invertable. These models are also solved using a simple iterative scheme, which tolerates such a condition. How would standard solvers handle this?

I generated a small test problem as follows:

where \(F(x)=0\) has no issues, but \(G(y)=0\) is singular. I simply used:\[\begin{align}&y_1+y_2=1\\&y_1+y_2=1\end{align}\] Let's see what feedback we get:

SolverModeltypeModel StatusFeedback/Notes
ConoptCNSLocally Infeasible
** Error in Square System: Pivot too small.

**** ERRORS/WARNINGS IN EQUATION g(k1)
1 error(s): Pivot too small.

**** ERRORS/WARNINGS IN VARIABLE y(k1)
1 error(s): Pivot too small.
IpoptCNSSolvedFeasible solution
KnitroCNSSolvedFeasible solution
MilesMCPIntermediate Infeasible
Failure to converge
MinosCNSUnbounded
EXIT - The problem is unbounded (or badly scaled).
MinosCNS+basisSolvedFeasible solution
PathCNSSolvedFeasible solution
PathMCPOptimalFeasible solution
SnoptCNSSolvedFeasible solution

Some solvers will report a feasible solution (without a further hint). Conopt does not, but gives a good indication where things go wrong. We are not given the set of dependent equations, but Conopt at least points us clearly to one culprit.

Not related to my problem, but another question is: what if singular but no solution exists? E.g. use: \[\begin{align}&y_1+y_2=1\\&y_1+y_2=2\end{align}\] Conopt gives the same results as above. The other solvers will typically report "infeasible". In most cases a solution corresponding to a phase I "min sum of infeasibilities" objective is provided where \(x\) is feasible and \(y\) is infeasible. Some solvers just give back a solution with many infeasibilities.

Viewing all articles
Browse latest Browse all 809

Trending Articles