在 Golang 中查找复数的平方根

go programmingserver side programmingprogramming

在数学中,数字的平方根是一个值,当将其与自身相乘时,会得出原始数字。在 Golang 中,math/cmplx 包提供了内置函数来查找复数的平方根。在本文中,我们将通过示例讨论如何在 Golang 中查找复数的平方根。

示例 1:查找复数的平方根

让我们考虑一个使用 Golang 查找复数平方根的示例。假设我们要找到 z = 3 + 4i 的平方根。以下是实现此目的的代码片段 −

package main

import (
    "fmt"
    "math/cmplx"
)

func main() {
    // 创建一个复数
    z := complex(3, 4)
    
    // 求复数的平方根
    sqrtZ := cmplx.Sqrt(z)
    
    // 显示结果
    fmt.Println("Square Root of", z, "is", sqrtZ)
}

输出

(3+4i) 的平方根是 (2+1i)

在此示例中,我们首先创建一个复数 z,然后使用 cmplx.Sqrt() 函数求其平方根并将结果存储在 sqrtZ 中。该程序的输出将是 −

示例 2:查找纯虚数的平方根

让我们考虑一个使用 Golang 查找纯虚数的平方根的示例。假设我们想找到 y = 2i 的平方根。以下是实现此目的的代码片段 −

package main

import (
   "fmt"
   "math/cmplx"
)

func main() {
    // 创建一个纯虚数
    y := 2i
    
    // 求纯虚数的平方根
    sqrtY := cmplx.Sqrt(y)
    
    // 显示结果
    fmt.Println("Square Root of", y, "is", sqrtY)
}

输出

(0+2i) 的平方根是 (1+1i)

在此示例中,我们首先创建一个纯虚数 y,然后使用 cmplx.Sqrt() 函数求其平方根并将结果存储在 sqrtY 中。

示例 3:求负实数的平方根

让我们考虑一个使用 Golang 求负实数平方根的示例。假设我们想求 -4 的平方根。以下是实现此目的的代码片段 −

package main

import (
   "fmt"
   "math/cmplx"
)

func main() {
    // 创建负实数
    z := -4.0
    
    // 求负实数的平方根
    sqrtZ := cmplx.Sqrt(complex(z, 0))
    
    // 显示结果
    fmt.Println("Square Root of", z, "is", sqrtZ)
}

输出

-4 的平方根是 (0+2i)

在此示例中,我们首先创建负实数 z,然后使用 cmplx.Sqrt() 函数求其平方根并将结果存储在 sqrtZ 中。由于负实数的平方根是复数,因此我们需要将 z 作为虚部为 0 的复数传递。

示例 4:求复数的多个平方根

在 Golang 中,我们可以求复数的多个平方根。对于给定的复数 z = x + yi,我们可以使用公式 − 求平方根

sqrt(z) = +/- sqrt(r) * [cos((theta + 2k*pi)/2) + i*sin((theta + 2k*pi)/2)], k = 0, 1

其中 r = |z|是复数 z 的模数,theta = arg(z) 是复数 z 的参数。

让我们考虑一个例子,我们想要找到复数 z = 3 + 4i 的两个平方根。以下是实现此目的的代码片段 −

package main

import (
   "fmt"
   "math/cmplx"
)
   
func main() {
    // 创建复数
    z := complex(3, 4)
    
    // 求复数的平方根
    sqrt1 := cmplx.Sqrt(z)
    sqrt2 := -cmplx.Sqrt(z)
    
    // 显示结果
    fmt.Printf("%v 的平方根是:\n%v\n%v", z, sqrt1, sqrt2)
}

输出

(3+4i) 的平方根是:
(2+1i)
(-2-1i)

结论

在 Golang 中,借助 cmplx.Sqrt() 函数,求复数的平方根非常简单。通过使用此函数,我们可以轻松计算任何复数的平方根,无论它是纯实数还是虚数,或者两者的组合。此外,我们可以使用 cmplx.Pow() 函数来查找复数的任何 n 次方根。需要注意的是,当对复数求根时,可能会有多个解,因此我们需要仔细选择适合我们用例的解。借助本文提供的知识和示例,您应该能够使用 Golang 高效地计算项目中复数的平方根。


相关文章