C 언어에서 정사각형 행렬의 법선 및 자취 찾기

2715 단어

행렬의 법선 및 추적이란 무엇입니까?



행렬의 각 요소의 제곱합의 제곱근을 정상이라고 합니다. 추적은 주 대각선의 각 요소를 얼마나 곱할 수 있는지 알려줍니다. A에 값이 1, 3, 5인 요소가 있다고 가정해 보겠습니다.

여기서 강조 표시된 요소는 행렬의 대각선 요소입니다. 합산하면 다음과 같이 행렬의 흔적을 찾을 수 있습니다.

A의 흔적 = 1 + 2 + 2 = 5

법선을 찾기 위해 각 요소를 제곱하고 제곱된 요소의 합을 찾습니다. 그런 다음 계산된 합계의 제곱근을 계산합니다.

정상 = (√(12 + 32 + 52 + 42 + 22 + 62 + 52 + 92 + 22))

정상 = (√(195))

정상 = 13.96

기억해야 할 몇 가지 중요한 사항:



Normal 및 Trace는 정사각형 행렬에 대해서만 정의됩니다.

정사각 행렬: 행 수 = 열 수인 행렬.

대각선 요소: 행과 열에 대해 동일한 인덱스를 갖는 요소입니다.

Normal and Trace of a Square Matrix Program in C에 대한 알고리즘

행렬의 Trace를 찾기 위한 알고리즘은 다음과 같습니다.

행렬을 A[m][n]

추적 = 0

i = 0 ~ m에 대해

j = 0 ~ n인 경우

i == j인 경우

추적 += A[i][j]

행렬의 법선을 찾는 알고리즘은 다음과 같습니다.



행렬을 A[m][n]

합계 = 0, 정상 = 0

i = 0 ~ m에 대해

j = 0 ~ n인 경우

A[i][j] *= A[i][j], 합계 += A[i][j]

정상 = sqrt(합계)

Square Matrix의 Normal과 Trace를 찾는 C 프로그램



이제 완전한 프로그램입니다. 우리는 이 프로그램에서 math.h 헤더 라이브러리를 사용하고 있습니다. 일부 최신 버전의 C 컴파일러(gcc)에서는 프로그램을 컴파일할 때 프로그램에서 math.h 헤더를 사용하고 싶다고 명시적으로 지정해야 합니다.

gcc 명령 끝에 -lm 플래그를 사용하여 그렇게 할 수 있습니다. 예: "gcc program.c -o 프로그램 -lm."

#include<stdio.h>
/* 
    to use the sqrt method to find 
    the square root of a number we include
    math.h header file
*/
#include<math.h>  

int main()
{
    printf("\n\n\t\tStudytonight - Best place to learn\n\n\n");

    int i, j, n, aj[10][10], sum = 0, sum1 = 0, a = 0, normal;

    printf("\nEnter the number of rows (columns) of the matrix: \n\n");
    scanf("%d", &n);

    printf("\nEnter the %d elements of the first matrix: \n\n", n*n);

    for(i = 0; i < n; i++)   // to iterate the rows
    {
        for(j = 0; j < n; j++)   // to iterate the columns
        {
            scanf("%d", &aj[i][j]);
            a = aj[i][j]*aj[i][j];  // finding square of each element
            sum1 += a;  // same as sum1 = sum1 + a
        }
    }
    normal = sqrt((double)sum1);    // typecasting to double value

    printf("\n\nThe normal of the given matrix is: %d", normal);
    for(i = 0; i < n; i++)
    {
        sum = sum + aj[i][i];   // sum of the diagonal elements
    }
    printf("\n\nThe Trace of the given matrix is: %d", sum);
    printf("\n\n\t\t\tCoding is Fun !\n\n\n");
    return 0;
}

좋은 웹페이지 즐겨찾기