qml.kernels.displace_matrix¶
- displace_matrix(K)[source]¶
Remove negative eigenvalues from the given kernel matrix by adding a multiple of the identity matrix.
This method keeps the eigenvectors of the matrix intact.
- Parameters
K (array[float]) – Kernel matrix, assumed to be symmetric.
- Returns
Kernel matrix with eigenvalues offset by adding the identity.
- Return type
array[float]
Example:
Consider a symmetric matrix with both positive and negative eigenvalues:
>>> K = np.array([[0, 1, 0], [1, 0, 0], [0, 0, 2]]) >>> np.linalg.eigvalsh(K) array([-1., 1., 2.])
We then can shift all eigenvalues of the matrix by adding the identity matrix multiplied with the absolute value of the smallest (the most negative, that is) eigenvalue:
>>> K_displaced = qml.kernels.displace_matrix(K) >>> np.linalg.eigvalsh(K_displaced) array([0., 2., 3.])
If the input matrix does not have negative eigenvalues,
displace_matrix
does not have any effect.
code/api/pennylane.kernels.displace_matrix
Download Python script
Download Notebook
View on GitHub