Idea. Everything is governed by the continuous function λmin. PD is {λmin>0} and PSD is {λmin≥0}; and shifting by ±εI moves λmin by exactly ±ε.
Step 1: λmin is continuous. For symmetric A the Rayleigh formula gives λmin(A)=min∣x∣=1xTAx. If A,B are symmetric and ∣x∣=1,
xTAx=xTBx+xT(A−B)x≥λmin(B)−∥A−B∥,
so λmin(A)≥λmin(B)−∥A−B∥; exchanging A,B gives
∣λmin(A)−λmin(B)∣≤∥A−B∥.
So λmin is 1-Lipschitz.
Step 2: open / closed. PD=λmin−1((0,∞)) is open and PSD=λmin−1([0,∞)) is closed in Symn.
Step 3: intPSD=PD. PD is open and contained in PSD, so PD⊂intPSD. Conversely let A∈PSD with λmin(A)=0. For every ε>0 the matrix A−εI∈Symn has λmin=−ε<0, so it is not PSD, while ∥(A−εI)−A∥=ε. So no neighbourhood of A lies in PSD: A∈/intPSD.
Step 4: PD=PSD. PSD is closed and contains PD, so PD⊂PSD. If A∈PSD, then A+εI has λmin=λmin(A)+ε>0 for ε>0, so it is in PD, and it tends to A as ε→0.
Remark.
- Example (n=2): (1000) is PSD but not PD; (100−ε) is arbitrarily close and not PSD.
- PD is a convex cone, and the identities PD=PSD, intPSD=PD are the standard picture behind semidefinite programming.