當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。