Go語言中的cmplx包


Golang 是一種流行的程式語言,它擁有廣泛的標準庫,使程式設計師能夠輕鬆地執行復雜的任務。cmplx 包就是這樣一個庫,它在 Go 中提供複數運算。在本文中,我們將探討 cmplx 包、其函式以及如何在程式中使用它們。

cmplx 包概述

cmplx 包是 Go 標準庫的一部分,提供複數運算。複數是一個既有實數部分又有虛數部分的數。cmplx 包提供了許多用於處理複數的函式,例如加法、減法、乘法、除法等等。

cmplx 包提供的函式

cmplx 包提供了一系列用於執行復數運算的函式。以下是一些常用的函式:

  • Abs() − Abs() 函式返回複數的絕對值。複數的絕對值是複平面上表示該數的點到原點的距離。

  • Conjugate() − Conjugate() 函式返回複數的共軛複數。複數的共軛複數是透過改變其虛數部分的符號得到的數。

  • Polar() − Polar() 函式返回複數的極座標。複數的極座標是到原點的距離以及正實軸與連線原點和表示該數的點的線之間的角度。

  • Rect() − Rect() 函式返回複數的直角座標。複數的直角座標是其實數部分和虛數部分。

  • Exp() − Exp() 函式返回複數的指數。

  • Log() − Log() 函式返回複數的自然對數。

  • Sin() − Sin() 函式返回複數的正弦。

  • Cos() − Cos() 函式返回複數的餘弦。

  • Tan() − Tan() 函式返回複數的正切。

示例

讓我們來看一個示例,演示如何使用 cmplx 包來對複數執行運算。

package main

import (
   "fmt"
   "math/cmplx"
)

func main() {
   // Create two complex numbers
   z1 := complex(2, 3)
   z2 := complex(4, 5)

   // Calculate the sum of the two complex numbers
   sum := z1 + z2
   fmt.Println("Sum:", sum)

   // Calculate the product of the two complex numbers
   product := z1 * z2
   fmt.Println("Product:", product)

   // Calculate the absolute value of a complex number
   abs := cmplx.Abs(z1)
   fmt.Println("Absolute value of z1:", abs)

   // Calculate the polar coordinates of a complex number
   r, theta := cmplx.Polar(z1)
   fmt.Printf("Polar coordinates of z1: r = %f, theta = %f radians\n", r, theta)

   // Calculate the exponential of a complex number
   exp := cmplx.Exp(z1)
   fmt.Println("Exponential of z1:", exp)

   // Calculate the natural logarithm of a complex number
   log := cmplx.Log(z1)
   fmt.Println("Natural logarithm of z1:", log)

   // Calculate the sine of a complex number
   sin := cmplx.Sin(z1)
   fmt.Println("Sine of z1:", sin)

   // Calculate the cosine of a complex number
   cos := cmplx.Cos(z1)
   fmt.Println("Cosine of z1:", cos)

   // Calculate the tangent of a complex number
   tan := cmplx.Tan(z1)
   fmt.Println("Tangent of z1:", tan)
}

輸出

Sum: (6+8i)
Product: (-7+22i)
Absolute value of z1: 3.6055512754639896
Polar coordinates of z1: r = 3.605551, theta = 0.982794 radians
Exponential of z1: (-7.315110094901103+1.0427436562359045i)
Natural logarithm of z1: (1.2824746787307684+0.982793723247329i)
Sine of z1: (9.154499146911428-4.168906959966565i)
Cosine of z1: (-4.189625690968807-9.109227893755337i)
Tangent of z1: (-0.0037640256415042484+1.0032386273536098i)

程式碼解釋

  • Go 語言中的 cmplx 包提供了複數運算和數學函式。

  • 在程式碼中,我們匯入了 fmt 和 math/cmplx 包。

  • 使用 complex 函式建立了兩個複數 z1 和 z2。

  • 使用 + 和 * 運算子分別計算了兩個複數的和與積。

  • 使用 Abs 函式計算了 z1 的絕對值。

  • 使用 Polar 函式計算了 z1 的極座標,它返回以弧度表示的幅值和相位角。

  • 使用 Exp 函式計算了 z1 的指數。

  • 使用 Log 函式計算了 z1 的自然對數。

  • 使用 Sin、Cos 和 Tan 函式分別計算了 z1 的正弦、餘弦和正切。

結論

Go 語言中的 cmplx 包提供了一系列用於複數運算和數學函式的函式。這些函式可用於在 Go 語言中執行復數計算和運算。

更新於:2023年4月7日

瀏覽量 150

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.