가우스 조단법 소스를 가지고 아는데 까지 코딩 해봤는데요;; 뭐가 잘못 된건지 더이상 모르겠습니다. 도와주세요!!
봄여울
질문 제목 :가우스 조단 법
하는데 까지 고쳐 봤는데 모르겠네요;;질문 내용 :
아래 제가 한 코드입니다. 뭐가 잘못된건지 추가할 내용이 있는지 부탁드립니다.
/*
main program
for gauss jordan pivoting
*/
#include stdio.h
void gauss_jordan_pivoting(float coeff[20][20],float known[20],int num_eq,int num_var)
{
int pivot_eq, eq2, var, max_index;
float max_value, ftemp;
for(pivot_eq =0; pivot_eqnum_eq; pivot_eq++)
{
max_index =0;
max_value = coeff[pivot_eq][0];
for(var=0; varnum_var; var++)if(coeff[pivot_eq][var]*coeff[pivot_eq][var]max_value*max_value)
{
max_index=var;
max_value=coeff[pivot_eq][var];
}
for(var=0; varnum_var; var++)
coeff[pivot_eq][var]/=max_value;
known[pivot_eq]/=max_value;
for(eq2=0; eq2num_eq; eq2++)
{
ftemp=coeff[eq2][max_index];
if(eq2!=pivot_eq)
{
for(var=0; varnum_var; var++)
coeff[eq2][var]-=ftemp*coeff[pivot_eq][var];
known[eq2]-=ftemp*known[pivot_eq];
}
}
}
}
void main()
{
int i, j, k, num_eq, num_var;
float coeff[20][20], known[20];
printf(enter the number of equations.:);
scanf(%d, &num_eq);
printf(enter the number of variables.:);
scanf(%d, &num_var);
for(i=0; inum_eq; i++)
{
printf(*********************************\n);
printf(enter the coefficients of eq. %d \n, i+1);
for(j=0; jnum_var; j++)
{
printf(coefficient of variable %d. :, j+1);
scanf(%f, &coeff [i][j]);
}
printf(enter the known value of eq. %d.:, i+1);
scanf(%f. &known[i]);
}
printf(*****************************\n);
printf(\n\n entered equations : \n);
for(i=0; inum_eq; i++)
{
for(j=0; jnum_var; j++)
{
printf(%10.3f * x%d, coeff[i][j], j+1);
if(j!= num_var-1)
printf(+);
else
printf(=);
}
printf(%10.3f\n, known[i]);
}
gauss_jordan_pivoting (coeff[i][j], known[i], num_eq, num_var);
printf(\n\n*******************************************\n);
printf(results : \n);
for(i=0; inum_eq; i++)
{
for(j=0; jnum_var; j++)
printf(%10.3f * x%d, coeff[i][j], j+1);
printf(= %10.3f\n, known[i]);
}
}