This function takes a list of matrices (or a single matrix) and returns another list with only positive definite matrices. If there are no positive definite matrices in the list, it returns an empty list.
If a matrix contains an imaginary part below the tolerance level, then only the real part is reported in the output. (See checkPD(...,ZeroTolerance=>...))
i1 : L={matrix{{1,0},{0,1}},matrix{{-2,0},{0,1}},matrix{{sqrt(-1),0},{0,sqrt (-1)}}}
o1 = {| 1 0 |, | -2 0 |, | ii 0 |}
| 0 1 | | 0 1 | | 0 ii |
o1 : List
|
i2 : checkPD(L)
o2 = {| 1 0 |}
| 0 1 |
o2 : List
|
The object checkPD is a method function with options.