이산수학[가우스 조단 소거법으로 역행렬과 연립방정식의해구하기]
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

본문내용

j; k < row_num + 1; k++)// i행과 j행을 바꾸어 준다.
{
temp = matrix[j][k];
matrix[j][k] = matrix[i][k];
matrix[i][k] = temp;
}
break;
}
}
}
// 대각성분의 원소중 0이 있으면 실행 중단.
if(matrix[j][j]==0)
{
printf("\n-----------------------------\n");
printf(" 비정방행렬입니다. "); // 정방행렬이 아니면 출력.
printf("\n-----------------------------\n\n");
}
}
//입력받은 행렬 값 출력하기
printf("<------------- Input matrix -------------->");
printf("\n\n");
for(i = 0; i < row_num ; i++)
{
for(j = 0; j < col_num; j++)
{
printf("%.2lf",matrix[i][j]);
printf("\t\t");
}
printf("\n");
}
printf("\n\n");
//단위행렬 생성하기
for(i = 0; i < row_num ; i++)
{
for(j = 0 ; j < col_num - 1; j++)
{
if( i == j )
inverse_mat[i][j] = 1;
else
inverse_mat[i][j] = 0;
}
}
//Gauss Jordan 실행하기
for(k = 0; k < row_num ; k++)
{
temp = matrix[k][k];
for(j = 0; j < col_num ; j++)
{
matrix[k][j] /= temp;
inverse_mat[k][j] /= temp;
}
for(i = k+1; i < row_num ;i++)
{
temp2 = matrix[i][k];
for(j = 0; j < col_num; j++)
{
matrix[i][j] = (matrix[i][j] - (temp2 * matrix[k][j]));
inverse_mat[i][j] = (inverse_mat[i][j] - (temp2 * inverse_mat[k][j]));
}
}
}
temp3 = col_num -2;
for(i = row_num -1 ; i >=0 ; i--)
{
for(j = i-1 ; j >=0 ; j--)
{
temp2 = matrix[j][i];
for(k = 0 ; k <= row_num ; k++)
{
matrix[j][k] -= temp2*matrix[i][k];
inverse_mat[j][k] -= temp2*inverse_mat[i][k];
}
}
temp3--;
}
//Gauss Jordan 실행 후 행렬 출력하기
printf("<-------- 가우스 조단 소거법 -------->");
printf("\n\n");
for(i = 0; i < row_num ; i++)
{
for(j = 0 ; j < col_num; j++)
{
printf("%.2lf",matrix[i][j]);
printf("\t\t");
}
printf("\n");
}
printf("\n\n");
//역행렬 출력하기
printf("<------------- 역행렬 -------------->");
printf("\n\n");
for(i = 0; i < row_num; i++)
{
for(j = 0 ; j < col_num -1 ; j++)
{
printf("%.2lf",inverse_mat[i][j]);
printf("\t\t");
}
printf("\n\n");
}
return 0;
}
6.테스트 결과
경우 1. 미지수가 3개이고 해가 1개인 연립 방정식
*가우스 조단 소거법이 실행되어 χ1 = 1, χ2 = 1, χ3 = 1 이라는 해가 출력됨.
경우 2. 해가 존재하지 않는 연립 방정식
*이 방정식은 마지막 열의 모든 계수가 0 이 되어 해가 없다. 따라서 해를 구하지 못하고 그림과 같이 출력된다.
경우 3. 행렬 안에 0이 있는 연립 방정식
*위의 코드에는 요소에 0 이 있는지 탐색하는 부분이 있으므로 그 부분에 의해 요소가 0이 아닌 방정식으로 바뀌고 위와 같이 χ1 = -1, χ2 = -1, χ3 = -4인 해가 나온다.
경우 4. 해가 무수히 많은 경우
*이 행렬은 1열과 3열이 같아서 결국 3열의 계수가 모두 0이 되는 해가 무수히 많은 방정식이다. 따라서 gauss jordan 소거법으로 해를 구하지 못하고 아래와 같이 출력된다.
  • 가격1,000
  • 페이지수9페이지
  • 등록일2007.11.25
  • 저작시기2007.11
  • 파일형식한글(hwp)
  • 자료번호#437979
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니