在 Go 语言中查找复数的平方根


在数学中,一个数的平方根是指一个值,当它自身相乘时,会得到原始数字。在 Go 语言中,math/cmplx 包提供了内置函数来查找复数的平方根。在本文中,我们将讨论如何使用示例在 Go 语言中查找复数的平方根。

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

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

package main

import (
   "fmt"
   "math/cmplx"
)

func main() {
   // Creating a complex number
   z := complex(3, 4)
   
   // Finding the square root of the complex number
   sqrtZ := cmplx.Sqrt(z)
   
   // Displaying the result
   fmt.Println("Square Root of", z, "is", sqrtZ)
}

输出

Square Root of (3+4i) is (2+1i)

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

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

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

package main

import (
   "fmt"
   "math/cmplx"
)

func main() {
   // Creating a purely imaginary number
   y := 2i
   
   // Finding the square root of the purely imaginary number
   sqrtY := cmplx.Sqrt(y)
   
   // Displaying the result
   fmt.Println("Square Root of", y, "is", sqrtY)
}

输出

Square Root of (0+2i) is (1+1i)

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

示例 3:查找负实数的平方根

让我们考虑一个使用 Go 语言查找负实数平方根的示例。假设我们要查找 -4 的平方根。以下是实现此目的的代码片段:

package main

import (
   "fmt"
   "math/cmplx"
)

func main() {
   // Creating a negative real number
   z := -4.0
   
   // Finding the square root of the negative real number
   sqrtZ := cmplx.Sqrt(complex(z, 0))
   
   // Displaying the result
   fmt.Println("Square Root of", z, "is", sqrtZ)
}

输出

Square Root of -4 is (0+2i)

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

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

在 Go 语言中,我们可以找到复数的多个平方根。对于给定的复数 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() {
   // Creating a complex number
   z := complex(3, 4)
   
   // Finding the square roots of the complex number
   sqrt1 := cmplx.Sqrt(z)
   sqrt2 := -cmplx.Sqrt(z)
   
   // Displaying the result
   fmt.Printf("Square Roots of %v are:\n%v\n%v", z, sqrt1, sqrt2)
}

输出

Square Roots of (3+4i) are:
(2+1i)
(-2-1i)

结论

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

更新于: 2023年4月17日

313 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.