Go 언어로 복소수 계산하기
// Filename: testComplex.go
//
// Execute: go run testComplex.go
//
// or
//
// Compile: go build testComplex.go
// Execute: ./testComplex
package main
import (
"fmt"
"math/cmplx"
)
func main() {
var z1 complex128 = 3.0 + 4.0i
var z2 complex128 = 2.0 - 1.0i
var z3 complex128 = z1 + z2
var z4 complex128 = z1 - z2
var z5 complex128 = z1 * z2
var z6 complex128 = z1 / z2
var z7 complex128 = cmplx.Conj(z1)
var arg float64 = cmplx.Phase(z1) // arument of a complex number
var abs float64 = cmplx.Abs(z1) // arument of a complex number
fmt.Printf("z1 = %f + %fj\n", real(z1), imag(z1))
fmt.Printf("z2 = %f + %fj\n", real(z2), imag(z2))
fmt.Printf("So,\n")
fmt.Printf("z3 = z1 + z2 = %f + %fj\n", real(z3), imag(z3))
fmt.Printf("z4 = z1 - z2 = %f + %fj\n", real(z4), imag(z4))
fmt.Printf("z5 = z1 * z2 = %f + %fj\n", real(z5), imag(z5))
fmt.Printf("z6 = z1 / z2 = %f + %fj\n", real(z6), imag(z6))
fmt.Printf("z7 = cmplx.Conj(z1) = %f + %fj\n", real(z7), imag(z7))
fmt.Printf("arg = cmplx.Phase(z1) = %f\n", arg)
fmt.Printf("abs = |z1| = cmplx.Abs(z1) = %f\n", abs)
}
/*
-------------------
Result of execution:
-------------------
z1 = 3.000000 + 4.000000j
z2 = 2.000000 + -1.000000j
So,
z3 = z1 + z2 = 5.000000 + 3.000000j
z4 = z1 - z2 = 1.000000 + 5.000000j
z5 = z1 * z2 = 10.000000 + 5.000000j
z6 = z1 / z2 = 0.400000 + 2.200000j
z7 = cmplx.Conj(z1) = 3.000000 + -4.000000j
arg = cmplx.Phase(z1) = 0.927295
abs = |z1| = cmplx.Abs(z1) = 5.000000
*/