# sqrt
平方根
# 语法
sqrt(x)
sqrt(A::AbstractMatrix)
# 说明
sqrt(x) 返回 x 的平方根。x 为负实数参数时会抛出 DomainError 的错误类型,应将负实数转化为复数类型求平方根。前缀运算符 √ 与 sqrt 有相同功能。 示例
sqrt(A::AbstractMatrix) 返回矩阵 A 的平方根矩阵 X,使得 X^2 = A。 示例
# 示例
求标量的平方根
求标量的平方根。
sqrt(big(81))
9
求负实数的平方根会抛出 DomainError 错误。
sqrt(big(-81))
ERROR: DomainError with -81.0:
NaN result for non-NaN input.
Stacktrace:
[...]
将负实数转换为复数即可求其复数平方根。
sqrt(complex(-81))
0.0 + 9.0im
求矩阵的平方根
对矩阵求平方根,先创建一个 2×2 的矩阵。
A = [4 0; 0 4]
2×2 Matrix{Int64}:
4 0
0 4
求方阵 A 的平方根。
sqrt(A)
2×2 Matrix{Float64}:
2.0 0.0
0.0 2.0
# 输入参数
x - 输入数组标量 | 向量 | 矩阵 | 多维数组
输入数组,指定为标量、向量、矩阵或多维数组。
数据类型: Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Float16 | Float32 | Float64
复数支持: 是
A - 输入矩阵方阵
输入矩阵,指定为方阵。
数据类型: Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Float16 | Float32 | Float64
复数支持: 是
# 详细信息
矩阵的平方根
如果 A 没有负实数特征值,则计算 A 的主矩阵平方根,即特征值具有正实部的唯一矩阵 X,使得 X^2 = A。否则,返回非主平方根。
如果 A 是实对称或 Hermitian (自共轭)矩阵,则使用其特征分解 (eigen) 来计算平方根。对于此类矩阵,由于舍入误差而显得略微为负的特征值 λ 被视为零。更准确地说,所有特征值大于等于 -rtol*(max |λ|) 的矩阵被视为半正定矩阵(产生 Hermitian 平方根 ),负特征值取为零。 rtol 是 sqrt 的关键字参数(仅在 Hermitian/实对称情况下),默认为按 size(A,1) 缩放的机器精度。
否则,平方根通过 Björck-Hammarling 方法确定,该方法计算复数 Schur 形式,然后计算三角因子的复数平方根。