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。