Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

행렬의 행렬식을 계산하는 C++ 프로그램

<시간/>

정방 행렬의 행렬식은 요소 값을 사용하여 계산할 수 있습니다. 행렬 A의 행렬식은 det(A)로 표시될 수 있으며 기하학에서 행렬로 설명되는 선형 변환의 스케일링 인자라고 할 수 있습니다.

행렬의 행렬식의 예는 다음과 같습니다.

행렬은 3 12 7위 행렬의 행렬식 =7*3 - 2*1=21 - 2=19이므로 행렬식은 19입니다.

행렬의 행렬식을 계산하는 프로그램은 다음과 같습니다.

예시

#include#include네임스페이스 사용 std;int determinant( int matrix[10][10], int n) { int det =0; int 부분행렬[10][10]; if (n ==2) return ((행렬[0][0] * 행렬[1][1]) - (행렬[1][0] * 행렬[0][1])); else { for (int x =0; x > n; cout <<"행렬의 요소를 입력하십시오:\n"; for (i =0; i > matrix[i][j]; cout<<"입력한 행렬은 다음과 같습니다."< 

출력

행렬의 크기를 입력하십시오:3행렬의 요소를 입력하십시오:7 1 32 4 11 5 1입력된 행렬은 다음과 같습니다:7 1 32 4 11 5 1행렬의 행렬식은 10입니다.

위의 프로그램에서 행렬의 크기와 요소는 main() 함수에서 제공됩니다. 그런 다음 함수 determinant()가 호출됩니다. 표시되는 행렬의 행렬식을 반환합니다. 다음 코드 스니펫을 통해 이를 확인할 수 있습니다.

cout <<"행렬의 크기를 입력하십시오:\n";cin>> n;cout <<"행렬의 요소를 입력하십시오:\n";for (i =0; i > matrix[i][j];cout<<"입력된 행렬은 다음과 같습니다."< 

함수 determinant()에서 행렬의 크기가 2이면 행렬식이 직접 계산되어 값이 반환됩니다. 이것은 다음과 같이 표시됩니다.

if (n ==2)return ((행렬[0][0] * 행렬[1][1]) - (행렬[1][0] * 행렬[0][1])); 

행렬의 크기가 2가 아니면 행렬식을 재귀적으로 계산합니다. 루프 변수 x, i 및 j와 함께 사용되는 3개의 중첩 for 루프가 있습니다. 이 루프는 행렬식을 계산하는 데 사용되며 함수 determinant()를 재귀적으로 호출하여 내부 행렬식을 계산한 다음 외부 값과 곱합니다. 다음 코드 스니펫에서 이를 확인할 수 있습니다.

for (int x =0; x