scipy.linalg.

sqrtm#

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

矩阵平方根。

参数:
A(N, N) array_like

对其求值的矩阵平方根

dispbool,可选

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

blocksize整数,可选

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

返回:
sqrtm(N, N) ndarray

A 处 sqrt 函数的值。dtype 是浮点或复数。精度(数据大小)根据输入 A 的精度确定。当 dtype 为浮点时,精度与 A 相同。当 dtype 为复数时,精度 A 的精度两倍。此精度可能会受到各 dtype 精度范围的限制。

errestfloat

(如果 disp == False)

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

参考

[1]

埃德文·德曼、尼古拉斯·J·海厄姆、鲁易·拉哈(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.]])