Go語言程式:查詢給定矩陣的跡和範數


本教程將編寫一個程式來查詢矩陣的範數和跡。如果矩陣的平方和等於每個元素平方的和,則該矩陣被認為是正規的;而是矩陣對角元素的總和。

查詢給定矩陣的範數

演算法

步驟1 - 首先,我們需要匯入fmt和math包。

步驟2 - 建立一個函式來查詢矩陣的範數。此函式使用兩個for迴圈來查詢每個元素的平方。

步驟3 - 透過將每個元素的平方新增到sum變數中來更新sum變數。返回sum變數。

步驟4 - 開始main()函式。初始化一個矩陣並在螢幕上列印它。

步驟5 - 透過將矩陣及其秩作為引數傳遞給函式來呼叫findNormal()函式。

步驟6 - 將函式的結果儲存在一個名為normal的新變數中,並使用fmt.Println()函式在螢幕上列印它。

示例1

讓我們編寫一個Go程式,使用for迴圈查詢2 X 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 - 建立一個函式來查詢矩陣的跡。此函式使用for迴圈來查詢對角元素的和。

步驟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

結論

成功編譯並執行了一個Go語言程式,該程式可以查詢矩陣的範數和跡,並附帶示例。

更新於:2023年2月10日

138 次瀏覽

開啟你的職業生涯

完成課程獲得認證

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