>백엔드 개발 >C++ >법선 벡터와 트레이스를 찾는 C++ 프로그램

법선 벡터와 트레이스를 찾는 C++ 프로그램

WBOY
WBOY앞으로
2023-09-09 16:41:091101검색

법선 벡터와 트레이스를 찾는 C++ 프로그램

2차원 배열이나 행렬은 여러 응용 분야에서 매우 유용합니다. 행렬에는 행과 열이 있으며 그 안에 숫자를 저장합니다. C++에서는 다차원 배열을 사용하여 2차원 행렬을 정의할 수도 있습니다. 이 기사에서는 C++를 사용하여 주어진 행렬의 Norm과 Trace를 계산하는 방법을 살펴보겠습니다.

Normal은 행렬의 모든 요소 합계의 제곱근입니다. 추적은 주대각선에 존재하는 요소의 합입니다. 알고리즘과 C++ 코드 표현을 살펴보겠습니다.

매트릭스 노멀

$begin{bmatrix} 5 & ​​​​1 & 8 개행 문자 4 & 3 & 9 개행 문자 2&7&3 끝{bmatrix},$

으아아아

위의 예에서는 3 x 3 행렬을 사용했습니다. 여기에서는 모든 요소의 합을 구한 다음 그 제곱근을 구합니다. 더 나은 이해를 위해 알고리즘을 살펴보겠습니다.

알고리즘

  • 행렬 M을 입력으로 읽습니다
  • n개의 행과 n개의 열이 있는 M을 생각해 보세요
  • 합계: = 0
  • 1부터 n까지의 경우 다음을 수행하세요.
    • 1부터 n까지의 j에 대해 다음을 수행합니다.
      • sum := sum + M[ i ][ j ]​​i>
    • 루프 종료
  • 루프 종료
  • res := 제곱근의 합
  • 결과 반환

으아아아

출력

으아아아

매트릭스 트레이스

$begin{bmatrix} 5 & ​​​​1 & 8 개행 문자 4 & 3 & 9 개행 문자 2&7&3 끝{bmatrix},$

으아아아

위의 예에서 우리는 3 x 3 행렬을 사용했고 여기에서는 주 대각선에 있는 모든 요소의 합을 얻었습니다. 이 합은 행렬의 자취입니다. 이해를 돕기 위해 알고리즘을 살펴보겠습니다.

알고리즘

  • 행렬 M을 입력으로 읽습니다
  • n개의 행과 n개의 열이 있는 M을 생각해 보세요
  • 합계: = 0
  • 1부터 n까지의 경우 다음을 수행하세요.
    • sum := sum + M[ i ][ i ]​​i>
  • 루프 종료
  • 합계를 돌려주세요

으아아아

출력

으아아아

결론

노멀과 트레이스는 모두 행렬 연산입니다. 이 두 가지 연산을 수행하려면 정사각형 행렬이 필요합니다(정사각형 추적 행렬이 필요하기 때문입니다). 법선은 단순히 행렬에 있는 모든 요소의 합에 대한 제곱근이고, 추적은 행렬의 주대각선에 있는 요소의 합입니다. 이 행렬은 C++에서 2차원 배열을 사용하여 표현할 수 있습니다. 여기서는 5개의 행과 5개의 열(총 25개 요소)을 가진 행렬의 두 가지 예를 제공합니다. 행렬에 액세스하려면 인덱싱 작업이 포함된 루프 문이 필요합니다. 일반적인 계산의 경우 각 요소를 반복해야 하므로 두 개의 중첩 루프가 필요합니다. 이 프로그램의 복잡도는 O(n2)입니다. 추적의 경우 주대각선만 보면 되므로 행 인덱스와 열 인덱스는 동일합니다. 따라서 for 루프는 하나만 있으면 충분합니다. O(n) 시간에 계산할 수 있습니다.

위 내용은 법선 벡터와 트레이스를 찾는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제