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语言程序,该程序可以查找矩阵的范数和迹,并附带示例。
广告