Swift 程式查詢給定矩陣的跡和範數


在本文中,我們將學習如何編寫一個 Swift 程式來查詢給定矩陣的跡和範數。

計算給定矩陣的跡

跡是指給定方陣的主對角線元素之和。例如,我們有一個 3x3 的方陣:

2 3 4
3 4 6
1 3 2

因此,主對角線元素是 2、4 和 2。所以,給定 3x3 矩陣的跡是 2+4+2 = 8。

演算法

  • 步驟 1 - 定義矩陣的大小。

  • 步驟 2 - 建立一個函式。

  • 步驟 3 - 宣告一個變數來儲存和。

  • 步驟 4 - 執行一個 for 迴圈來遍歷每個元素,並將所有對角線元素相互加起來。

sum += mxt[y][y] 
  • 步驟 5 - 建立一個矩陣。

  • 步驟 6 - 呼叫函式並將矩陣傳遞給它。

  • 步驟 7 - 列印輸出。

示例

以下 Swift 程式用於查詢給定矩陣的跡。

import Foundation
import Glibc

// Size of the matrix 
var size = 5

// Function to find a trace of the given matrix
func Trace(mxt:[[Int]]){
   var sum = 0
   
   for y in 0..<size{
      sum += mxt[y][y] 
   }
   print("Trace of the matrix is:", sum) 
}

// Creating 5x5 matrix of integer type
var matrix : [[Int]] = [[1, 3, 4, 1, 2], [2, 8, 2, 5, 6], 
   [3, 4, 3, 4, 3], [8, 4, 3, 4, 6],
   [7, 5, 5, 9, 1]]

print("Matrix:")
for x in 0..<size{
   for y in 0..<size{
      print(matrix[x][y], terminator:" ")
   }
   print("\n")
}
// Calling the function
Trace(mxt:matrix)

輸出

Matrix:
1 3 4 1 2 

2 8 2 5 6 

3 4 3 4 3 

8 4 3 4 6 

7 5 5 9 1 

Trace of the matrix is: 17

在上面的程式碼中,我們有一個 5x5 的矩陣。現在我們建立一個函式來查詢跡。所以為了計算跡,我們執行一個 for 迴圈來查詢主對角線元素,然後將它們加起來。

計算給定矩陣的範數

範數定義為給定矩陣的元素平方和的平方根。例如,我們有一個 3x3 的方陣:

2 3 4
3 4 6
1 3 2

首先,我們找到元素的平方和:

$\mathrm{Sq \:=\: 2^2 \:+\: 3^2\: +\: 4^2\: +\: 3^2\: + \:4^2\: + \:6^2\: +\: 1^2\: + \:3^2\: +\: 2^2 }$

$\mathrm{Sq\: = \:4 + \:9 \:+ \:16 \:+\: 9 \:+ \:16 \:+ \:36 \:+ \:1 \:+ \:9 \:+ \:4}$

$\mathrm{Sq \:=\: 104}$

所以範數是 $\mathrm{\sqrt{104}\:=\: 10.198039027185}$

演算法

  • 步驟 1 - 定義矩陣的大小。

  • 步驟 2 - 建立一個函式。

  • 步驟 3 - 宣告一個變數來儲存和。

  • 步驟 4 - 執行一個 for 迴圈來遍歷每個元素,並將所有元素的平方相互加起來。

sum += mxt[x][y] * mxt[x][y]
  • 步驟 5 - 使用 sqrt() 函式計算元素平方和的平方根來查詢範數。Int(sqrt(Double(sum)))

  • 步驟 6 - 建立一個矩陣。

  • 步驟 7 - 呼叫函式並將矩陣傳遞給它。

  • 步驟 8 - 列印輸出。

示例

以下 Swift 程式用於查詢給定矩陣的範數。

import Foundation
import Glibc

// Size of the matrix 
var size = 4

// Function to find normal of the given matrix
func Normal(mxt:[[Int]]){
   var sum = 0

   for x in 0..<size{
      for y in 0..<size{
         sum += mxt[x][y] * mxt[x][y]
      }
   }
   print("Normal of the matrix is:", Int(sqrt(Double(sum)))) 
}

// Creating 4x4 matrix of integer type
var matrix : [[Int]] = [[1, 3, 4, 1], [2, 2, 2, 5], 
                  [3, 4, 3, 4], [9, 9, 9, 9]]

print("Matrix:")
for x in 0..<size{
   for y in 0..<size{
      print(matrix[x][y], terminator:" ")
   }
   print("\n")
}

// Calling the function
Normal(mxt:matrix)

輸出

Matrix:
1 3 4 1 

2 2 2 5 

3 4 3 4 

9 9 9 9 

Normal of the matrix is: 20

在上面的程式碼中,我們有一個 4x4 的矩陣。現在我們建立一個函式來查詢範數。所以為了計算範數,我們首先找到所有矩陣元素的平方和,然後使用 sqrt() 函式找到所得和的平方根。這是一個預定義的函式,用於計算任何值的平方根。因此,給定矩陣的範數是 20。

更新於: 2022-12-29

102 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告