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 — норма матрицы T-2. |
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/api_docs/python/tf/linalg/eigh_tridiagonal