소개글
<연립 선형방정식> 숙제입니다. 문제가 쓰여있진 않지만 자세한 풀이와 코드가 쓰여있습니다.
목차
1~5번 문항
본문내용
►문제 1번rnrn(a) Determinant를 계산하는 코드는 다음과 같다.rn#include <stdio.h> rn#include <math.h>rnrn#define SIZE 4rnrndouble det(double *A, int n);rnrnrnvoid main()rn{rn double A[SIZE][SIZE] = { {28,-15,0,-10},rn {-2,43,-1,-40},rn {0,-5,13,-4},rn {-5,-150,-3,158} };rn int i,j;rnrn printf("A = n");rn for(i=0;i<SIZE;i++)rn {rn printf(" | ");rn for(j=0;j<SIZE;j++) printf("%.ft",A[i][j]);rn printf("|n");rn }rn printf("n");rn printf("det(A)=%fn",det(A[0],SIZE));rn}rnrndouble det(double *A,int n)rn{rn if(n!=1)rn {rn int i,j,k,y;rn double detera=0;rn double temp[SIZE][SIZE];rn rn for(i=0;i<n;i++)rn { rn for(j=1;j<n;j++)rn {rn y=0;rn for(k=0;k<n;k++) if(k!=i) temp[j-1][y++]=*(A + j*SIZE + k);rn }rn detera=detera+ *(A+i)*pow((-1),i)*det(temp[0],n-1);rn }rn return detera; rn }rn else return *A;rn}rnrn이제 이 행렬식 코드를 이용해서 Crammer공식으로 방정식을 풀어보겠다. Crammer의 공식에 따라서rnrn이다. 4×4 행렬이므로 직접 계산한 값은 생략하고 앞서 구한 코드로 바로 값을 구해보도록 하겠다. 위의 행렬식 코드를 이용해서 Crammer 공식을 쓰려면 총 행렬은 5개를 만들면 된다. 분모의 행렬식 1개, 그리고 각 해의 분자에 해당하는 행렬식 4개가 필요하기 때문이다. 또한 x_1,〖 x〗_2,〖 x〗_3,〖 x〗_4의 값은 정수가 아닐 수도 있으므로 double형을 택했다. 그 결과는 다음과 같다.rnrn#include <stdio.h> rn#include <math.h>rnrn#define SIZE 4rnrndouble det(double *A, int n);rnrnrnvoid main()rn{rn double A[SIZE][SIZE] = { {28,-15,0,-10},rn {-2,43,-1,-40},rn {0,-5,13,-4},rn {-5,-150,-3,158} };rn double B[SIZE][SIZE] = { {30,-15,0,-10},rn {0,43,-1,-40},rn {0,-5,13,-4},rn {0,-150,-3,158} };rn double C[SIZE][SIZE] = { {28,30,0,-10},rn {-2,0,-1,-40},rn {0,0,13,-4},rn {-5,0,-3,158} };rn double D[SIZE][SIZE] = { {28,-15,30,-10},rn {-2,43,0,-40},rn {0,-5,0,-4},rn {-5,-150,0,158} };rn double E[SIZE][SIZE] = { {28,-15,0,30},rn {-2,43,-1,0},rn {0,-5,13,0},rn {-5,-150,-3,0} };rn rn int i,j;rn double x1, x2, x3, x4;rnrn printf("A = n");rn for(i=0;i<SIZE;i++)rn {rn printf(" | ");rn for(j=0;j<SIZE;j++) printf("%.ft",A[i][j]);rn printf("|n");rn }rn printf("n");
참고 자료
없음