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。