Добавил:
elik.kondrashov@mail.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
19.09.2019
Размер:
1.19 Кб
Скачать
#include <iomanip>
#include <iostream>
#include <math.h>
using namespace std;
double a[4][4]={{7, 1, 3, 2},
{0, 5, 4, 0},
{0, 1, 18, -3},
{1, 2, -7, 15}};
double b[4]={2, 3, 4, 5};
double x[4]={0, 0, 0, 0};
double x0[4]={-1,-1,-1,-1};
int k_iter=0, i,mm;
double e=0.001;
int main()
{
setlocale(LC_ALL, "Russian");  
if((fabs(a[0][0])>fabs(a[0][1])+fabs(a[0][2])+fabs(a[0][3]))
&&(fabs(a[1][1])>fabs(a[1][0])+fabs(a[1][2])+fabs(a[1][3]))
&&(fabs(a[2][2])>fabs(a[2][0])+fabs(a[2][1])+fabs(a[2][3]))
&&(fabs(a[3][3])>fabs(a[3][0])+fabs(a[3][1])+fabs(a[3][2])))
mm=1; 
else 
mm=-1;
while (((fabs(x[0]-x0[0])>e)
||(fabs(x[1]-x0[1])>e)
||(fabs(x[2]-x0[2])>e)
||(fabs(x[3]-x0[3])>e))&& (mm=1)) {
  for(i=0; i<4; i++)
x0[i]=x[i];
k_iter++;
x[0]=(b[0]-a[0][1]*x0[1]-a[0][2]*x0[2]-a[0][3]*x0[3])/a[0][0];
x[1]=(b[1]-a[1][0]*x[0]-a[1][2]*x0[2]-a[1][3]*x0[3])/a[1][1];
x[2]=(b[2]-a[2][0]*x[0]-a[2][1]*x[1]-a[2][3]*x0[3])/a[2][2];
x[3]=(b[3]-a[3][0]*x[0]-a[3][1]*x[1]-a[3][2]*x[2])/a[3][3];
}
cout.precision(4);
cout<<"Метод Зейделя"<< endl;
for(i=0; i<4; i++)
{
cout<<"x["<<i+1<<"] = "<<x[i]<<endl;
}
cout<<"Число итераций: " << k_iter<< endl;
    return 0;
}
Соседние файлы в папке лр5