2
$\begingroup$

If I try to get an inverse of a matrix:

a | b | c b | d | 0 c | 0 | 0 Inverse[{{a, b, c}, {b, d, 0}, {c, 0, 0}}] 

I get the answer:

{{0, 0, c^(-1)}, {0, d^(-1), -(b/(c d))}, {c^(-1), -(b/(c d)), (b^2 - a d)/(c^2 d)}} 

which is

 0 | 0 | 1/c 0 | 1/d | -b/(c d) 1/c | -b/(c d) | (b^2-a d)/(c^2 d)) 

Now, suppose I want to the inverse of a matrix

 A | b | c b' | d | 0 c' | 0 | 0 

where say $A$ is a symbol matrix of size N x N, $b$ is a vector of size N x 1, $c$ is a vector of size N x 1, $d$ is a scalar of size 1 x 1.

How can I write a formula for Inverse of the above matrix such that I get answers back in terms that use matrix inverse instead of scalar division, e.g. say $(cc')^{-1}c$ instead of $1/c$, and other forms like $A^{-1}$ instead of $1/A$ etc.

$\endgroup$
1

1 Answer 1

2
$\begingroup$

I am not sure what the ultimate aim is here. I post this in case it motivates the desired approach. Anything above N=2 is unwieldy:

Setup:

matg[n_, s_, col_] := Table[Style[Unique[s], col, Bold], {n}] smat[n_, s_, col_] := SparseArray[{i_, j_} :> Style[Unique[s], col, Bold], {n, n}] 

Example:

a = smat[2, "a", Red]; b = List /@ matg[2, "b", Darker[Green]]; c = List /@ matg[2, "c", Blue]; mat = ArrayFlatten[{{a, b, c}, {Transpose[b], Style[Unique["d"], Bold], 0}, {Transpose[c], 0, 0}}]; mat // MatrixForm With[{det = Det[mat]}, Inverse[mat] /. det -> 1 // Column[{Row[{1/Det, Grid[#, Frame -> All, Alignment -> Left, ItemSize -> 10, Background -> LightYellow]}], Row[{"where Det =", det}]}, ItemSize -> 50, Alignment -> Center] &] 

original matrix:

enter image description here

inverse:

enter image description here

$\endgroup$
1

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.