Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>The adjugate is <em>probably</em> not what you actually want. </p> <p>If you want the normal adjoint (the conjugate transpose), then <code>x'</code> will give it to you for <code>x</code>. (The non-conjugated transpose is <code>x.'</code>, or <code>transpose(x)</code>. <code>conj(x)</code> gives the complex conjugate, and works on matrices and vectors as well.)</p> <p>If you actually want the <a href="http://en.wikipedia.org/wiki/Adjugate_matrix">adjugate (aka classical adjoint)</a>, I don't believe Octave has it built in. There are a few ways to calculate this. If you can assume invertibility, then it's just <code>det(x)*inv(x)</code>. If not, it's a bit more complicated. In general, the adjugate is the transpose of the cofactor matrix. The cofactor matrix replaces each element in the original matrix with its cofactor (plus or minus its minor, which is the determinant of the original matrix without that row and column. The plus or minus rule is the same for determinant expansion -- if the sum of the row and column is even, it's positive, if negative, it's odd).</p> <p>The simplest codewise is probably to use the SVD (which is built-in) -- the adjugate is an antihomomorphism with adj(xy) = adj(y) adj(x). The SVD of x is a set of matrices u,s,v, with u*s*v' = x, s diagonal, u and v both unitary. adj(x) = adj(u*s*v') = adj(v')adj(s)adj(u). For invertible matrices, the adjugate is just the determinant times the inverse. For unitary matrices, this is just the conjugate transpose. adj(x) = det(v') v adj(s) det(u) u' = det(v'*u) v adj(s) u'. The adjugate of a diagonal matrix s is relatively easy to calculate -- each entry off the diagonal is zero, and each entry on the diagonal is the product of the others.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload