[수치해석]Gauss, Lu 분해, SVD 분해법 수치해석 숙제

소개글

Gauss-Jordan elimination과 LU Decomposition 과 Singular Value Decomposition 분해법을 이용해서 행렬값을 구하는 소스입니다.
그리고 3가지방법보다 더 나은 mprove() 방법을 이용한 소스도 있고
det 와 inverse 행렬도 구하는 소스가 있습니다.

힘들게 했습니다. ㅠㅠ;

본문내용

#include<string.h>
#include"nrutil.c"
#include"ludcmp.c"
#include"lubksb.c"
#include"gaussj.c"
#include"svdcmp.c"
#include"svbksb.c"
#include"pythag.c"
#include"HW5_function.c"

#define LENGTH 256 // Maximum length of command
#define NUMMAT 10 // Maximum number of matrices
#define GAUSSJ 0
#define LU 1
#define SVD 2

float getDet(float ***mat, int index, int m, int n);
void showInverse(float ***mat, int index, int m, int n);

int main(int argc, char* argv[])
{
int mat_n, i, j, temp;
char line[LENGTH], command[256], mat_name[NUMMAT], temp_name;
float ***mat; // 매트릭스가 저장될 포인터
int m[NUMMAT], n[NUMMAT], temp_m, temp_n;
FILE *fp; // 파일 포인터

mat=(float***)malloc(sizeof(float**)*NUMMAT);
for(i=0;i<NUMMAT;i++)
mat_name[i]=NULL;

showHelp();
while(1){
line[0]=NULL;
printf("--> ");
gets(line);
temp=getCommand(line, command);

if(strcmp(command, "open")==0){
// 파일로부터 매트릭스를 읽어들인다.
if(getCommand(line, command)<=0) continue;
mat_n=getMatN(command[0], mat_name);
temp_name=command[0];
temp=getCommand(line, command);
if(temp<=0) continue;
printf(" matrix %c <- %s\n", temp_name, command);
if(!(fp=fopen(command, "r"))){
printf(" Error : Can`t open %s\n", command);
continue;
}
fscanf(fp, "%d %d\n", &temp_m, &temp_n);
// 같은 이름의 매트릭스가 있으면 먼저 해제.
if(mat_name[mat_n]!=NULL){
for(i=0;i<=m[mat_n];i++)
free(mat[mat_n][i]);
}
mat_name[mat_n]=temp_name;
m[mat_n]=temp_m;
n[mat_n]=temp_n;
mat[mat_n]=(float**)malloc(sizeof(float*)*(m[mat_n]+1));
for(i=0;i<=m[mat_n];i++)
mat[mat_n][i]=(float*)malloc(sizeof(float)*(n[mat_n]+1));
for(i=1;i<=m[mat_n];i++){
fgets(line,LENGTH, fp);
for(j=1;j<=n[mat_n];j++){
temp=getCommand(line, command);
mat[mat_n][i][j]=charToNum(command, temp);
}
}
fclose(fp);

이 자료와 함께 구매한 자료

추천 연관자료

추천도서

  • 이 자료에 대해 평가하신 회원이 없습니다.
저작시기
2005.10
등록일
2005.10.24
파일형식
한글 (hwp)
페이지
7페이지
가격
1,900원
2주간 다운받은 회원 학교정보안내
최근 본 자료더보기