scipy.linalg.

sqrtm#

scipy.linalg.sqrtm(A, disp=True, blocksize=64)[源代码][源代码]#

矩阵平方根。

参数:
A(N, N) array_like

要计算平方根的矩阵

dispbool, 可选

如果结果中的错误估计较大,则打印警告而不是返回估计的错误。(默认值:True)

块大小整数,可选

如果块大小相对于输入数组的大小不是退化的,则使用块算法。(默认值:64)

返回:
sqrtm(N, N) ndarray

A 处的 sqrt 函数值。dtype 为 float 或 complex。精度(数据大小)根据输入 A 的精度确定。当 dtype 为 float 时,精度与 A 相同。当 dtype 为 complex 时,精度是 A 的两倍。精度可能会被每个 dtype 的精度范围所截断。

errest浮动

(如果 disp == False)

估计误差的Frobenius范数,||err||_F / ||A||_F

参考文献

[1]

Edvin Deadman, Nicholas J. Higham, Rui Ralha (2013) “块Schur算法用于计算矩阵平方根,计算机科学讲义,7782卷。第171-182页。”

示例

>>> import numpy as np
>>> from scipy.linalg import sqrtm
>>> a = np.array([[1.0, 3.0], [1.0, 4.0]])
>>> r = sqrtm(a)
>>> r
array([[ 0.75592895,  1.13389342],
       [ 0.37796447,  1.88982237]])
>>> r.dot(r)
array([[ 1.,  3.],
       [ 1.,  4.]])