소개글
void main(void)
{
int m,j,k; // int형 변수 선언
int A[3][3]={5,1,2,
1,4,-2,
2,3,8}; // 3*3 matrix A 선언
int B[3]={19,-2,39}; // B matrix 선언
double X[3]={1,1,1}; // X matrix 초기 값 정의
double t_X[3]={0,0,0};
double sum1,sum2,error=0.0000001; // double형 변수 선언 및 error bound 정의
printf(" X1 X2 X3n");
for(m=0; m<20; m++) // iteration
{
for(j=0; j<3; j++) // matrix t_X[]에 값 저장
{
t_X[j]=X[j];
}
for(j=0; j<3; j++)
{
sum1=0;
sum2=0; // sum1, sum2 초기화
for(k=0; k
{
sum1=sum1+A[j][k]*t_X[k];
}
for(k=j+1; k<3; k++) //
{
sum2=sum2+A[j][k]*t_X[k];
}
X[j]=(B[j]-sum1-sum2)/A[j][j]; //
if(fabs(X[j]-t_X[j])
{
exit(0);
} // 조건 만족 시 종료
}
printf("%lf, %lf, %lf n",X[0],X[1],X[2]);
}
}
목차
5. Do 5 steps, starting from and using 6S in the computation. Hint. Make sure that you solve each equation for the variable that has the largest coefficient (why?). Show the details.
13. Do 5 steps, starting from . Compare with the Gauss-Seidel iteration. Which of the two seems to converge faster? (Show the detail of your work.)
결과 분석
본문내용
void main(void)
{
int m,j,k; // int형 변수 선언
int A[3][3]={5,1,2,
1,4,-2,
2,3,8}; // 3*3 matrix A 선언
int B[3]={19,-2,39}; // B matrix 선언
double X[3]={1,1,1}; // X matrix 초기 값 정의
double t_X[3]={0,0,0};
double sum1,sum2,error=0.0000001; // double형 변수 선언 및 error bound 정의
printf(" X1 X2 X3n");
for(m=0; m<20; m++) // iteration
{
for(j=0; j<3; j++) // matrix t_X[]에 값 저장
{
t_X[j]=X[j];
}
for(j=0; j<3; j++)
{
sum1=0;
sum2=0; // sum1, sum2 초기화
for(k=0; k<j; k++) //
{
sum1=sum1+A[j][k]*t_X[k];
}
for(k=j+1; k<3; k++) //
{
sum2=sum2+A[j][k]*t_X[k];
}
X[j]=(B[j]-sum1-sum2)/A[j][j]; //
if(fabs(X[j]-t_X[j])<error)
{
exit(0);
} // 조건 만족 시 종료
}
printf("%lf, %lf, %lf n",X[0],X[1],X[2]);
}
}
참고 자료
없음