C程序 查找矩阵的法向量和迹向量

C程序 查找矩阵的法向量和迹向量

在这里,我们将看到如何编写一个C语言程序来寻找矩阵的法向量和迹向量。下面是一些例子。

输入: mat[][] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
输出:

  • Normal = 16
    • Trace = 15

解释一下。

  • Normal = sqrt(11+ 22 + 33 + 44 + 55 + 66 + 77 + 88 + 9*9) = 16
    • Trace = 1+5+9 = 15

输入: mat[][] = {{5, 6, 1},
{7, 2, 9},
{6, 1, 3}};
输出:

  • Normal = 10
    • Trace = 10

解释一下

解释一下。

  • Normal = sqrt(55+ 66 + 11 + 77 + 22 + 99 + 66 + 11 + 3*3) = 15
    • Trace = 5+2+3 = 10

为了更好地理解,请看下面的图片。

查找矩阵的法向量和迹向量的C语言程序

步骤:

1.要找到法向量。

  • 运行嵌套循环以访问矩阵的元素。
  • 求矩阵中所有元素的总和。
  • 然后返回该和的平方根。

2.要找到迹向量。

  • 运行一个单一的循环来访问矩阵的对角线元素。
  • 返回对角线元素的总和。

下面是查找矩阵的法向量和迹向量的C语言程序。

// C program to find trace 
// and normal of given matrix
#include <math.h>
#include <stdio.h>
  
// Returns Normal of a matrix 
// of size n x n
int findNormal(int mat[][3], 
               int n)
{
    int sum = 0;
    
    // Run nested loop to access 
    // elements of matrix
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            sum += mat[i][j] * mat[i][j];
    return sqrt(sum);
}
  
// Returns trace of a matrix of 
// size n x n
int findTrace(int mat[][3], int n)
{
    int sum = 0;
    
    // Run a loop to access diagonal 
    // elements of matrix
    for (int i = 0; i < n; i++)
        sum += mat[i][i];
    return sum;
}
  
// Driven code
int main()
{
    int mat[3][3] = {{1, 2, 3}, 
                     {4, 5, 6}, 
                     {7, 8, 9}};
    printf("Normal of Matrix = %d", 
            findNormal(mat, 3));
    printf("\nTrace of Matrix = %d", 
            findTrace(mat, 3));
    return 0;
}

输出

Normal of Matrix = 16
Trace of Matrix = 15

时间复杂度: O(n*n)
空间复杂度: O(1)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C语言 实例