当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.linalg.eigh_tridiagonal用法及代码示例


计算 Hermitian 三对角矩阵的特征值。

用法

tf.linalg.eigh_tridiagonal(
    alpha, beta, eigvals_only=True, select='a', select_range=None,
    tol=None, name=None
)

参数

  • alpha 形状 (n) 的实数或复数张量,矩阵的对角线元素。注意:如果 alpha 是复数,则忽略虚部(假设为零)以满足矩阵是 Hermitian 的要求。
  • beta 形状为 (n-1) 的实数或复数张量,包含矩阵的第一个 super-diagonal 的元素。如果 beta 是复数,则假设矩阵的第一个 sub-diagonal 是 beta 的共轭,以满足矩阵是 Hermitian 的要求
  • eigvals_only 如果为 False,则计算特征值和相应的特征向量。如果为 True,则仅计算特征值。默认为真。
  • select {‘a’, ‘v’, ‘i’}(默认为 'a')中的值的可选字符串,用于确定要计算的特征值:'a':all eigenvalues。 ‘v’:区间内的特征值(最小值,最大值)由 select_range 给出。'i':具有索引最小值
  • select_range 大小 2 元组或列表或张量指定要与 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

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.linalg.eigh_tridiagonal。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。