2010-08-18 7 views
0

누구나 도움을 줄 수 있습니다. 나는이 일을 완전히 할 수 없다. 나는 약간의 코딩을 시도했지만 전혀 작동하지 않았다. 어쨌든 나는 코드를 포함 시켰습니다. 그것은 불완전하고 어쨌든 잘못되었습니다.가우스 대체 코드가있는 코드

#include<stdio.h> 
#include<math.h> 
main() 
{ 
    int rows, columns, iter, i,j,k; 
    printf("enter the number of rows and columns:"); 
    scanf("%d, %d",&rows, &columns); 
    double a[rows][columns], b[rows][1],x[rows][1]; 
    printf("enter the elements of A matrix:"); 
    for(i=0;i<rows;i++) 
    { 
    for(j=0;j<columns;j++) 
    scanf("%lf",&a[i][j]); 
    } 
    printf("\n enter the elements of B matrix:"); 
    for(i=0,i<rows;i++) 
    scanf("%lf",&b[i][0]); 

    printf("\n"); 
    for (iter=1; iter<rows; iter++) 
    { 
    for(i=iter;i<rows;i++) 

     b[i][0] = b[i][0]- a[k][iter-1]*(b[i-1][0]/a[iter-1][iter-1]); 


     for(j=iter-1,k=iter;j<columns;j++) 

     a[i][j] = a[i][j]-a[i-1][j]*(a[k][iter-1]/a[iter-1][iter-1]); 

    } 


    printf("the elements of the matrix A are now:"); 

    for(i=0;i<rows; i++) 
    { 
    for(j=0; j<columns; j++) 
     printf("%lf",a[i][j]); 
    } 
    return(0); 
} 

이 뒤 대치가 완료되어야합니다. 방정식은 [a] [x] = [b]이고 주어진 [a]와 [b] 행렬에 대해 x의 값을 찾아야합니다.

+1

누구든지 도움을 받으려면 먼저 코드를 수정해야합니다. "코드 블록"버튼을 사용하여 서식을 읽을 수 있도록하십시오. – torak

+0

코드는 어디에 있습니까? –

+0

나는 코드를 합리적으로 보이게하는 프로세스를 시작 했으므로 프로세스를 완료하는 방법을 보여 주어야합니다. 그러나, 그것은 너무 많은 '}'문자가있는 것처럼 보입니다. – torak

답변

1

아무도 이처럼 코드를 사용하지 않습니다. 심각한 수치 안정성 문제가 있습니다. LU-decomp를 사용하는 것은 좋은 접근 방법이며 많은 라이브러리를 사용할 수 있습니다. 당신이해야한다면 숫자 조리법.

+0

+1입니다. – cristobalito

0
int rows, columns, iter, i,j,k; 
printf("enter the number of rows and columns:"); 
scanf("%d, %d",&rows, &columns); 
double a[i][j], b[i],x[i]; 

i 및 j는 초기화되지 않았으므로 배열 크기를 지정하는 것은 매우 의심스러운 활동입니다. 내가 알

0

첫 번째 thig이 루프

for(i=0;i<=columns-1;i++) 
{ 
    for(j=0;j<=columns-1;j++) 
    { 
    scanf("%lf",&a[i][j]); 
    } 
} 

나는이 columns 중 하나가 대신 i<=columns-1에 사용 porbably 한 rows을해야 같은데요이다.

i<=columns-1 대신 i < columns이 아니어도 상관 없습니다. 문제가되는 경우에는 동등해야합니다.