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.]])