View Single Post
  #10   Report Post  
Posted to microsoft.public.excel.misc
Jerry W. Lewis Jerry W. Lewis is offline
external usenet poster
 
Posts: 837
Default Calculating a generalized inverse matrix

For A of less than full column rank, the jth column must be the minimum norm
solution of the stated least squares problem. Most packages (including
LINEST) return the solution of a convenient parametrization that is rarely
minimum norm; therefore my suggestion only works when A is full column rank.
On the plus side, that means that it would work in earlier versions of Excel.

Jerry

"Jerry W. Lewis" wrote:

In Excel 2003 or greater, you could avoid much of the programming by using
LINEST to implement the characterization from p.37 of Lawson & Hanson
"Solving Least Squares Problems" that the jth column of the unique
Moore-Penrose generalized inverse is the least squares solution to
A b = e[j]
where e[j] is the vector with 1 in the jth position and zeroes elsewhere.
Thus LINEST(e[j],A) gives the jth column as a row vector in reverse order.

Prior to 2003, LINEST required A to be nonsingular, so this wouldn't work.

For the benefit of those who have no clue what we are talking about, a
generalized inverse (G) of the matrix A satisfies A*G*A = A. If A is
nonsingular, then G is MINVERSE(A) and is unique; otherwise there are
infinitely many different matrices G with this property. The Moore-Penrose
generalized inverse is the unique generalized inverse that satisfies the
following four properties of an inverse
1. A*G*A = A
2. G*A*G = G
3. A*G is symmetric
4. G*A is symmetric

As an example, the 3x2 matrix ={2,1;5,2;2,1} has the 2x3 matrix
={-1,1,-1;2.5,-2,2.5} as its Moore-Penrose generalized inverse

Jerry

"Ying-Foon Chow" wrote:

I'd appreciate if someone can tell me if I could find a (generalized)
inverse matrix of a singular matrix using Excel. Specifically, I have
a square matrix, say 10 by 10, but I know the rank of the matrix is 8.
Still, I need to find its inverse and I think that can be done in
other programming languages, but I am not sure how to do that in Excel
(or if that can be done at all). Thanks in advance.

Regards,
Y. F.