2026a

# 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 形式,然后计算三角因子的复数平方根。

# 另请参阅

cbrt | hypot