tf.linalg.eigh_tridiagonal
Вычисляет собственные значения эрмитовой тридиагональной матрицы.
tf.linalg.eigh_tridiagonal(
alpha,
beta,
eigvals_only=True,
select='a',
select_range=None,
tol=None,
name=None
)
| Аргументы | |
|---|---|
alpha | Вещественный или комплексный тензор формы (n), диагональные элементы матрицы. ПРИМЕЧАНИЕ: если alpha является комплексным, мнимая часть игнорируется (предполагается равной нулю), чтобы удовлетворить требованию, что матрица является эрмитовой. |
beta | Вещественный или комплексный тензор формы (n-1), содержащий элементы первой наддиагонали матрицы. Если beta является комплексным, первая поддиагональ матрицы предполагается сопряженной к beta, чтобы удовлетворить требованию, что матрица является эрмитовой. |
eigvals_only | Если False, вычисляются как собственные значения, так и соответствующие собственные векторы. Если True, вычисляются только собственные значения. По умолчанию True. |
select | Необязательная строка со значениями в {‘a’, ‘v’, ‘i’} (по умолчанию 'a'), определяющая, какие собственные значения вычислять: 'a': все собственные значения. ‘v’: собственные значения в интервале (min, max], заданном select_range. 'i’: собственные значения с индексами min ≤ i ≤ max. |
select_range | Кортеж или список или тензор размера 2, определяющий диапазон собственных значений, подлежащих вычислению вместе с select. Если select — 'a', select_range игнорируется. |
tol | Необязательный скаляр. Абсолютная точность, с которой требуется каждое собственное значение. Собственное значение (или группа) считается сходящимся, если оно лежит в интервале этой ширины. Если tol равно None (по умолчанию), используется значение eps*|T|_2, где eps — машинная точность, а |T|_2 — 2-норма матрицы T. |
name | Необязательное имя операции. |
| Возвращаемые значения | |
|---|---|
eig_vals | Собственные значения матрицы в неубывающем порядке. |
eig_vectors | Если eigvals_only равно False, собственные векторы возвращаются во втором выходном аргументе. |
| Исключения | |
|---|---|
ValueError | Если входные значения недопустимы. |
NotImplemented | Вычисление собственных векторов для eigvals_only = False пока не реализовано. |
Данная операция реализует подмножество функциональности scipy.linalg.eigh_tridiagonal.
Примечание: Результат неопределен, если вход содержит +/-inf или NaN, или если какое-либо значение в beta имеет величину, большую, чем numpy.sqrt(numpy.finfo(beta.dtype.as_numpy_dtype).max).
Добавление поддержки внешних пакетных измерений.
Примеры
import numpy eigvals = tf.linalg.eigh_tridiagonal([0.0, 0.0, 0.0], [1.0, 1.0]) eigvals_expected = [-numpy.sqrt(2.0), 0.0, numpy.sqrt(2.0)] tf.assert_near(eigvals_expected, eigvals) # ==> True
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/linalg/eigh_tridiagonal