Golang 找到给定矩阵的迹和范数

Golang 找到给定矩阵的迹和范数

在本教程中,我们将编写一篇文章来找到矩阵的范数和迹。如果一个矩阵的平方根等于每个元素的平方和,那么这个矩阵被认为是 正规的 ;而 是一个矩阵对角元素的总和。

找到给定矩阵的范数

步骤

第一步 - 首先我们需要导入 fmt 和 math 包。

第二步 - 创建一个函数来找到矩阵的范数。这个函数使用两个循环来找到每个元素的平方。

第三步 - 通过将每个元素的平方加到 sum 变量中来更新 sum 变量。返回 sum 变量。

第四步 - 启动 main() 函数。初始化一个矩阵并将其打印在屏幕上。

第五步 - 通过将矩阵及其秩作为参数传递给 findNormal() 函数来调用该函数。

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

示例1

让我们编写一个 Go 程序,使用 for 循环来找到 2×2 矩阵的范数。

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() {
   mat := [2][2]int{
      {1, 2},
      {5, 6},
   }
   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

示例2

在这个示例中,我们将编写一个Go程序来找到一个3 X 3矩阵的法线。

package main
import (
   "fmt"
   "math"
)
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() {
   mat := [3][3]int{
      {0, 1, 2},
      {4, 5, 6},
      {8, 9, 10},
   }
   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

寻找给定矩阵的特征值

步骤

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

步骤2 - 创建一个函数来找到矩阵的特征值。该函数使用循环来找到对角线元素的和。

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

步骤4 - 开始 main() 函数。初始化一个矩阵并在屏幕上打印出来。

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

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

示例

让我们编写一个 Go 语言程序来找到一个 2 X 2 矩阵的特征值。

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() {
   mat := [2][2]int{
      {10, 20},
      {50, 60},
   }
   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

结论

成功编译和执行了一个用于查找矩阵的常规和迹的Golang程序,并附有示例。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程