Функция linalg.cholesky
Функция linalg.cholesky выполняет разложение Холецкого
для симметричной положительно определенной матрицы.
Первым параметром функция принимает тензор с матрицей.
Вторым параметром можно передать булево значение name
для имени операции. Функция возвращает нижнюю треугольную
матрицу L, такую что L @ Lᵀ = A.
Синтаксис
tf.linalg.cholesky(input, [name])
Пример
Давайте вычислим разложение Холецкого для симметричной положительно определенной матрицы:
import tensorflow as tf
a = tf.constant([[4.0, 2.0], [2.0, 3.0]])
res = tf.linalg.cholesky(a)
print(res)
Результат выполнения кода:
tf.Tensor(
[[2. 0.]
[1. 1.4142135]], shape=(2, 2), dtype=float32)
Пример
Давайте проверим, что произведение нижней треугольной матрицы на ее транспонированную версию дает исходную матрицу:
import tensorflow as tf
a = tf.constant([[4.0, 2.0], [2.0, 3.0]])
l = tf.linalg.cholesky(a)
res = tf.matmul(l, l, transpose_b=True)
print(res)
Результат выполнения кода:
tf.Tensor(
[[4. 2.]
[2. 3.]], shape=(2, 2), dtype=float32)
Пример
Давайте вычислим разложение Холецкого для матрицы размером три на три:
import tensorflow as tf
a = tf.constant([
[25.0, 15.0, 5.0],
[15.0, 18.0, 0.0],
[5.0, 0.0, 11.0]
])
res = tf.linalg.cholesky(a)
print(res)
Результат выполнения кода:
tf.Tensor(
[[5. 0. 0.]
[3. 3. 0.]
[1. 1. 3.]], shape=(3, 3), dtype=float32)