나는 행렬의 행렬식을 계산 인터넷에서 프로그램을 발견했다 :이해
/*
* C++ Program to Find the Determinant of a Given Matrix
*/
#include<iostream>
#include<math.h>
#include<conio.h>
using namespace std;
double d = 0;
double det(int n, double mat[10][10])
{
int c, subi, i, j, subj;
double submat[10][10];
if (n == 2)
{
return((mat[0][0] * mat[1][1]) - (mat[1][0] * mat[0][1]));
}
else
{
for(c = 0; c < n; c++)
{
subi = 0;
for(i = 1; i < n; i++)
{
subj = 0;
for(j = 0; j < n; j++)
{
if (j == c)
{
continue;
}
submat[subi][subj] = mat[i][j];
subj++;
}
subi++;
}
d = d + (pow(-1 ,c) * mat[0][c] * det(n - 1 ,submat));
}
}
return d;
}
int main()
{
int n;
cout<<"enter the order of matrix" ;
cin>>n;
double mat[10][10];
int i, j;
cout<<"enter the elements"<<endl;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>mat[i][j];
}
}
cout<<"\ndeterminant"<<det(n,mat);
getch();
}
소스 : 나는 그것을하지만 난 돈에서 배우고 싶었다 http://www.sanfoundry.com/cpp-program-find-determinant-given-matrix/
그것을 이해하지 못한다. 가우스 제거와 관련된 링크입니까? 그렇지 않으면이 알고리즘을 사용하는 프로세스를 알고 있습니까?
이 재귀(n-1) x (n-1)
subminors의 n 개의 결정을 계산하여
n x n
행렬의 행렬식을 계산 Lapace 확장을 사용하는 알고리즘 나
선형 대수 수학 문제입니다. 답은 선형 대수학 교과서 또는 [여기] (https://en.wikipedia.org/wiki/Determinant)에 있습니다. –
자신의 코드를 더 잘 작성하고 싶다면 솔직하게 말해서 쓸모가 없습니다. (10x10) – user463035818
@ tobi303이 아닌 하나의 특정 크기의 행렬에서만 작동하므로 1x1에서 10x10까지의 행렬에서 작동합니다. –