Go语言程序查找矩阵的迹和范数


在本教程中,我们将编写一篇查找矩阵的范数和迹的文章。如果矩阵的平方根等于每个成员的平方和,则该矩阵被认为是正常的,迹是矩阵对角元素的总和。

Go语言程序查找范数

查找 2x2 矩阵的范数

在此示例中,我们将了解如何查找 2 X 2 矩阵的范数。

算法

步骤 1 − 首先,我们需要导入 fmt 和 math 包。

步骤 2 − 创建一个函数来查找矩阵的范数。此函数使用两个 for 循环来查找每个元素的平方。

步骤 3 − 通过将每个元素的平方加到 sum 变量中来更新它。返回 sum 变量。

步骤 4 − 启动 main() 函数。初始化一个矩阵并在屏幕上打印它。

步骤 5 − 通过将矩阵及其秩作为参数传递给函数,来调用 findNormal() 函数。

步骤 6 − 将函数的结果存储在一个名为 normal 的新变量中,并使用 fmt.Println() 函数在屏幕上打印它。

示例

package main
import (
   "fmt"
   "math"
)

// function to create normal
func findNormal(mat [2][2]int, n int) float64 {
   var sum int = 0
   for i := 0; i < n; i++ {
      for j := 0; j < n; j++ {
         sum += mat[i][j] * mat[i][j]
      }
   }
   var sum1 float64
   sum1 = float64(sum)
   return math.Sqrt(sum1)
}
func main() {

   // initializing a 2 X 2 matrix
   mat := [2][2]int{
      {1, 2},
      {5, 6},
   }
   // printing matrix
   fmt.Println("The given matrix is: \n")
   for i := 0; i < 2; i++ {
      for j := 0; j < 2; j++ {
         fmt.Print(mat[i][j], "\t")
      }
      fmt.Println()
   }
   fmt.Println()
   normal := findNormal(mat, 2)
   fmt.Println("Normal of Matrix is:", normal)
}

输出

The given matrix is: 

1	2	
5	6	

Normal of Matrix is: 8.12403840463596

查找 3 X 3 矩阵的范数

在此示例中,我们将编写一个 Go 程序来查找 3 X 3 矩阵的范数。

示例

package main
import (
   "fmt"
   "math"
)

// function to find normal
func findNormal(mat [3][3]int, n int) float64 {
   var sum int = 0
   for i := 0; i < n; i++ {
      for j := 0; j < n; j++ {
      sum += mat[i][j] * mat[i][j]
      }
   }
   var sum1 float64
   sum1 = float64(sum)
   return math.Sqrt(sum1)
}
func main() {

   // initializing a 3 X 3 matrix
   mat := [3][3]int{
      {0, 1, 2},
      {4, 5, 6},
      {8, 9, 10},
   }
   
   // printing matrix
   fmt.Println("The given matrix is: \n")
   for i := 0; i < 3; i++ {
      for j := 0; j < 3; j++ {
         fmt.Print(mat[i][j], "\t")
      }
      fmt.Println()
   }
   normal := findNormal(mat, 3)
   fmt.Println("\n Normal of Matrix is:", normal)
}

输出

The given matrix is: 

0	1	2	
4	5	6	
8	9	10	

 Normal of Matrix is: 18.083141320025124

Go语言程序查找迹

查找 2x2 矩阵的迹

在此示例中,我们将使用用户定义函数查找 2 X 2 矩阵的迹。

算法

步骤 1 − 首先,我们需要导入 fmt 和 math 包。

步骤 2 − 创建一个函数来查找矩阵的迹。此函数使用 for 循环来查找对角元素的总和。

步骤 3 − 通过将每个对角元素加到 sum 变量中来更新它。返回 sum 变量。

步骤 4 − 启动 main() 函数。初始化一个矩阵并在屏幕上打印它。

步骤 5 − 通过将矩阵及其秩作为参数传递给函数,来调用 findNormal() 函数。

步骤 6 − 将函数的结果存储在一个名为 trace 的新变量中,并使用 fmt.Println() 函数在屏幕上打印它。

示例

package main
import (
   "fmt"
)

// function to create trace
func findTrace(mat [2][2]int, n int) int {
   var sum int = 0
   for i := 0; i < n; i++ {
      sum += mat[i][i]
   }
   return sum
}
func main() {

   // initializing a 2 X 2 matrix
   mat := [2][2]int{
      {10, 20},
      {50, 60},
   }
   
   // printing matrix
   fmt.Println("The given matrix is: \n")
   for i := 0; i < 2; i++ {
      for j := 0; j < 2; j++ {
         fmt.Print(mat[i][j], "\t")
      }
      fmt.Println()
   }
   trace := findTrace(mat, 2)
   fmt.Println("\nTrace of Matrix is:", trace)
}

输出

The given matrix is: 

10	20	
50	60	

Trace of Matrix is: 70

查找 3 X 3 矩阵的迹

在此示例中,我们将编写一个 Go 程序代码来查找 3 X 3 矩阵的迹。

示例

package main
import (
   "fmt"
)

// function to create trace
func findTrace(mat [3][3]int, n int) int {
   var sum int = 0
   for i := 0; i < n; i++ {
      sum += mat[i][i]
   }
   return sum
}
func main() {
   
   // initializing a 3 X 3 matrix
   mat := [3][3]int{
      {5, 7, 9},
      {2, 4, 6},
      {1, 3, 8},
   }
   
   // printing matrix
   fmt.Println("The given matrix is: \n")
   for i := 0; i < 3; i++ {
      for j := 0; j < 3; j++ {
         fmt.Print(mat[i][j], "\t")
      }
      fmt.Println()
   }
   trace := findTrace(mat, 3)
   fmt.Println("\nTrace of Matrix is:", trace)
}

输出

The given matrix is: 

5	7	9	
2	4	6	
1	3	8	

Trace of Matrix is: 17

结论

成功编译并执行了一个 Go 语言程序来查找矩阵的范数和迹,以及示例。

更新于: 2023年1月2日

115 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告