가우스소거법 역행렬구하는프로그램 인데요
알찬해
1000by1000by까지 구해보라고했는데 어딜수정해야할까요 ㅠㅠ
#include stdio.h
#include math.h
main()
{
intk, i, j, N;
double a[100][200], r[100][100], div_cont, mul_cont;
// 입력부
printf(\n Input the size of matrix (NxN): N = );
scanf(%d, &N);
for(i=0; iN; i++)
{
for(j=0; jN; j++)
{
printf(A[%d][%d] = , i, j);
scanf(%lf, &a[i][j]);
}
}
for(i=0; iN; i++)
{
for(j=N; jN*2; j++)
{
if(i+N==j)
a[i][j]=1;
else
a[i][j]=0;
}
}
// 계산부
for (j=0; jN;j ++){
div_cont = a[j][j];
for (k=0; kN*2; k++)
a[j][k] = a[j][k] / div_cont;
if (j != 0){
for (i=0; ij; i++){
mul_cont = a[i][j];
for (k=0; kN*2; k++)
a[i][k] = a[i][k] - a[j][k] * mul_cont;
}
}
if (j != N-1 ){
for (i=j+1;iN;i++){
mul_cont = a[i][j];
for (k=0;kN*2;k++)
a[i][k] = a[i][k] - a[j][k] * mul_cont;
}
}
}
for (i=0;iN;i++)
for (j=N;jN*2;j++)
r[i][j-N] = a[i][j]; // 출력부
printf(\n Solution: \n);
for(i=0; iN; i++)
{
for(j=N; jN*2; j++)
{
printf( %f , a[i][j]);
}
printf(\n);
}
}