文档反馈

问题文档片段

问题文档片段包含公式时,显示为空格。

提交类型
issue

有点复杂...

找人问问吧。

PR

小问题,全程线上修改...

一键搞定!

请选择提交类型

问题类型
规范和低错类

- 规范和低错类:

- 错别字或拼写错误,标点符号使用错误、公式错误或显示异常。

- 链接错误、空单元格、格式错误。

- 英文中包含中文字符。

- 界面和描述不一致,但不影响操作。

- 表述不通顺,但不影响理解。

- 版本号不匹配:如软件包名称、界面版本号。

易用性

- 易用性:

- 关键步骤错误或缺失,无法指导用户完成任务。

- 缺少主要功能描述、关键词解释、必要前提条件、注意事项等。

- 描述内容存在歧义指代不明、上下文矛盾。

- 逻辑不清晰,该分类、分项、分步骤的没有给出。

正确性

- 正确性:

- 技术原理、功能、支持平台、参数类型、异常报错等描述和软件实现不一致。

- 原理图、架构图等存在错误。

- 命令、命令参数等错误。

- 代码片段错误。

- 命令无法完成对应功能。

- 界面错误,无法指导操作。

- 代码样例运行报错、运行结果不符。

风险提示

- 风险提示:

- 对重要数据或系统存在风险的操作,缺少安全提示。

内容合规

- 内容合规:

- 违反法律法规,涉及政治、领土主权等敏感词。

- 内容侵权。

请选择问题类型

问题描述

点击输入详细问题描述,以帮助我们快速定位问题。

mindspore.scipy.linalg.eigh

查看源文件
mindspore.scipy.linalg.eigh(a, b=None, lower=True, eigvals_only=False, overwrite_a=False, overwrite_b=False, turbo=True, eigvals=None, type=1, check_finite=True)[源代码]

求解复Hermitian矩阵或实对称矩阵的标准或广义特征值问题。

求出 a 的特征值Tensor w 和可选的特征值Tensor v,其中 b 是正定的,使得对于每个特征值 λw 的第i个条目)及其特征向量 viv 的第i列)满足:

              a @ vi = λ * b @ vi
vi.conj().T @ a @ vi = λ
vi.conj().T @ b @ vi = 1

在标准问题中,假设 b 是单位矩阵。

说明

  • Windows平台上还不支持 eigh

  • 如果Tensor是int32、int64类型,它将被强制转换为:mstype.float64类型。

参数:
  • a (Tensor) - 一个shape 为 (M,M) 的复Hermitian矩阵或实对称矩阵,用于计算其特征值和特征向量。

  • b (Tensor, 可选) - 一个shape为 (M,M) 的复Hermitian矩阵或实对称正矩阵。 如果缺省,则假定为传入单位矩阵。 默认值:None

  • lower (bool, 可选) - 控制相关的Tensor数据是取自 ab 的下三角还是上三角。 默认值:True

  • eigvals_only (bool, 可选) - 是否只计算特征值,不计算特征向量。 默认值:False

  • overwrite_a (bool, 可选) - 是否覆盖 a 中的数据(可能会提高性能)。 默认值:False

  • overwrite_b (bool, 可选) - 是否覆盖 b 中的数据(可能会提高性能)。 默认值:False

  • turbo (bool, 可选) - 使用分而治之算法(速度更快,但占用大量内存,仅适用于需要计算全量特征值的广义特征值问题)。 如果不需要计算特征向量,则没有显著影响。 默认值:True

  • eigvals (tuple, 可选) - 要返回的最小和最大(按升序排列)特征值和对应的特征向量的索引: 0<=lo<=hi<=M1。 如果缺省,则返回所有特征值和特征向量。 默认值:None

  • type (int, 可选) - 对于广义问题,此参数指定 wv 要解决的问题类型(仅取1、2、3作为可能的输入):

    1 =>     a @ v = w @ b @ v
    2 => a @ b @ v = w @ v
    3 => b @ a @ v = w @ v
    

    对于标准问题,会忽略此关键字。默认值:1

  • check_finite (bool, 可选) - 是否检查输入矩阵是否只包含有限数。 禁用可能会带来性能增益,但如果输入确实包含INF或NaN,则可能会导致问题(崩溃、程序不终止)。 默认值:True

返回:
  • w (Tensor) - 返回shape为 (N,) 的Tensor,其中特征值 N(1<=N<=M),按升序排列,根据其多样性重复。

  • v (Tensor) - 如果 eigvals_only==False,返回shape为 (M,N) 的Tensor。

异常:
  • RuntimeError - 如果特征值计算不收敛或 b 不是正定矩阵,则会触发报错。 如果输入矩阵不是对称矩阵或Hermitian矩阵,则不会报告错误,但结果将是错误的。

  • TypeError - 如果 a 不是Tensor。

  • TypeError - 如果 low 不是bool类型。

  • TypeError - 如果 eigvals_only 不是bool类型。

  • TypeError - 如果 overwrite_a 不是bool类型。

  • TypeError - 如果 overwrite_b 不是bool类型。

  • TypeError - 如果 turbo 不是bool类型。

  • TypeError - 如果 check_finite 不是bool类型。

  • ValueError - 如果 a 不是2D方阵。

  • ValueError - 如果 b 不为None。

  • ValueError - 如果 eigvals 不是None。

支持平台:

GPU CPU

样例:

>>> import numpy as onp
>>> import mindspore.numpy as mnp
>>> from mindspore import Tensor, dtype
>>> from mindspore.scipy.linalg import eigh
>>> a = Tensor([[6, 3, 1, 5], [3, 0, 5, 1], [1, 5, 6, 2], [5, 1, 2, 2]], dtype.float64)
>>> w, v = eigh(a)
>>> print(onp.allclose(mnp.dot(a, v).asnumpy(), mnp.dot(v, mnp.diag(w)).asnumpy(), 1e-5, 1e-8))
True