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 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告