Check numerically the definite-positiveness on linear subspaces

91 Views Asked by At

I have a given matrix $W\in \mathbb{R}^n$ with known fixed entries.

I would like to check the definite-positiveness of $W$ on appropriate linear subspaces. Typically I would like to show (numerically I would say) : $$ y^TWy > 0, \; \forall y \in \mathbb{R}^n\; |\; A(y) = 0 $$ where $A$ is a linear operator.

I use the function @fmincon of Matlab with an interior point algorithm on the following objective function : $$f(x) = (y^TWy)^2$$ and I add a nonlinear constraint : $|x|=1$. but I don't know how is it pertinent because I don't see numerically that the argmin of $f$ is 0 whatever is the initialization;

Do you have any comments about this method and/or other methods that could be implemented ?

Thanks

1

There are 1 best solutions below

7
On BEST ANSWER

I have no experience with MATLAB's fmincon, but restraining the search to the surface of the unit sphere seems like a sensible thing to do. Does it work for small examples where you know the result?

There is an alternative strategy which hinges on your ability to complete a Cholesky factorization. It will reveal if the matrix is positive definite subject to the limitations of floating point arithmetic.

These are the details:

Since $y^TWy$ is simply a scalar we have $y^TWy = (y^TWy)^T = y^T W^T y$. It follows that $$0 < y^T W y^T \quad\Leftrightarrow \quad 0 < y^T (W+W^T) y.$$ In short, $W$ is positive definite if and only if $W+W^T$ is symmetric positive definite.

Now in the absence of rounding errors Cholesky's algorithm applied to $W+W^T$ will run to completion, provided that $W+W^T$ is symmetric positive definite. If the algorithm fails to complete, then $W+W^T$ is not symmetric positive definite. If you can afford the cost of apply Cholesky's algorithm, then this is this a reliable way to show that $W$ is positive definite.

In the presence of rounding errors, Cholesky's algorithm may fail if $W+W^T$ is too close to a matrix which is not positive definite. In this case, rounding errors will cause a diagonal entry to be non-positive and the algorithm will terminate with an error. Depending on your application, this can also be valuable information to have.