검색어 입력폼

C언어 프로그래밍 - Gaussian elimination

저작시기 2010.01 |등록일 2010.01.18 워드파일MS 워드 (doc) | 6페이지 | 가격 1,500원

소개글

C언어 프로그래밍
- Linear Algebra(선형대수) : Gaussian elimination
- 동적변수를 할당하여 n차 선형 연립방정식을 풀 수 있는 프로그램입니다.
- 문서에 c언어 코드와 실제 5차 선형 연립방정식 계산결과가 있습니다.
마지막에 c언어로 계산한 결과와 매틀랩으로 계산한 결과를 비교하였습니다.

목차

없음

본문내용

#include <stdio.h>
#include <stdlib.h>

void main()
{
int i,j,k,num;
double temp=0,multi=1;
double **A;
double *b,*x;

/*동적변수할당*/
printf("equation의갯수= ");
scanf("%d",&num);
A=(double**)calloc(num,sizeof(double));
for(i=0;i<num;i++)
{
A[i]=(double*)calloc(num,sizeof(double));
}
b=(double*)calloc(num,sizeof(double));
x=(double*)calloc(num,sizeof(double));

/*cofficient matrix를입력*/
for(i=0;i<num;i++)
{
for(j=0;j<num;j++)
{
printf("a%d%d = ",i+1,j+1);
scanf("%lf",&A[i][j]);
}
}

/*right side를입력*/
for(i=0;i<num;i++)
{
printf("b%d = ",i+1);
scanf("%lf",&b[i]);
}

/*cofficient matrix, right side를 출력*/
printf("\n");
printf("cofficient matrix, right side \n");
for(i=0;i<num;i++)
{
for(j=0;j<num;j++)
{
printf("%lf ",A[i][j]);
}
printf("│%lf",b[i]);
printf("\n");
}

/*Gaussian elimination*/
for(k=0;k<num-1;k++)
{
for(i=k+1;i<num;i++)
{
multi=A[i][k]/A[k][k];
for(j=k;j<num;j++)
{
A[i][j]=A[i][j]-multi*A[k][j];
}
b[i]=b[i]-multi*b[k];
}
}

/*upper triangle matrix를출력*/
printf("\n");
printf("upper triangle matrix \n");
for(i=0;i<num;i++)
{
for(j=0;j<num;j++)
{
printf("%lf ",A[i][j]);
}
printf("│%lf",b[i]);
printf("\n");
}
다운로드 맨위로