본문/내용
Gauss seidel
#include [stdio.h]
#include [math.h] // 수학적 계산이 있기 때문에 사용
void Gauss_Seidel(int, int, double); // Gauss-Seidel 방법으로 실행하는 서브루틴을 설정
double A[50][51]; // 입력행렬을 광역변수로 선언하고 아래삼각행렬 L로 대치됨
double x[50]; // 해벡터를 광역 변수로 선언
void main(void)
{
int i, j, n, Max; // n : 행렬의 크기, Max : 최대 반복횟수
double esp, sum; // esp : 허용오차
// 정사각행렬 A의 크기를 입력
printf(행렬 A의 그기는?);
scanf(%d, &n);
// 행렬 A의 원소를 입력
printf(₩n행렬 A의 성분은? ₩n);
for(i〓0;i[n;i++)
{
printf(%d 행 : ,i+1);
for(j〓0;j[n;j++)
scanf(%lf, &A[i][j]);
}
// 벡터 b를 입력, 편의상 b[i]〓A[i][n]으로 놓는다.
printf(b의 성분은? ₩n);
for(i〓0;i[n;i++)
scanf(%lf,&A[i][n]);
//입력된 행렬이 강대각지배행렬인지를 확인
for(i〓0;i[n;i++)
{
sum〓0.;
for(j〓0;j[n;j++)
{
if(i!〓j)
sum〓sum+fabs(A[i][j]);
}
if(fabs(A[i][i]) [sum)
{
printf(₩n입력된 행렬은 `강대각지배행렬`이 아닙니다.₩n);
return;
}
}
// 최대반복 횟수 Max의 값을 입력
printf(₩n최대반복회수 Max는?);
scanf(%d, &Max);
// 허용오차 esp를 입력
printf(₩n허용오차의 한계는?);
scanf(%lf, &esp);
// 초기치 벡터 x를 입력
printf(₩n초기벡터의 성분은? ₩n);
for(i〓0;i[…
…