include iostream include math include stdlib int main int cout Number

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int n;
cout<<"Number of equatations?"<<endl;
cin>>n;
double v[n];//вектор свободных членов
double a[10][10];//матрица коэффициентов
double p[n];//массив приближений p[i]-для i-того корня
double x[n];//ответы
cout<<"Write kof"<<endl;//коэф.
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cin>>a[i][j];
}
cout<<"Write free memebers"<<endl;//свободные члены
for(int i=0;i<n;i++)
cin>>v[i];
cout<<"Array of ~"<<endl;
for(int i=0;i<n;i++)
{p[i]=v[i]/a[i][i];
cout<<p[i]<<" ";}
cout<<endl;
int e; //точность
cout<<"Write e"<<endl;
cin>>e;
double k;
double s;
int i=0,j=0;
/*for(i=0;i<n;i++)
{
s=0;
for(j=0;j<n;j++)
if (j!=i) s+=fabs(a[i][j]);
if (s>=(fabs(a[i][j])))
{
cout<<"Ne shoditsia"<<endl;
goto label1;
}
}*/
do //высчитываем комбинации приближений
{
k=0;
for(i=0;i<n;i++) //для каждой переменной
{
s=0;//основа основ метода итераций
for(j=0;j<n;j++)
if (i!=j)
//умножается коэффициент при элементе и его приближение
s+=a[i][j]*p[j];//каждый элемент получается сложением
int pr=x[i]; //создаем новую переменную в которую записываем значение приближенного до этого x[i]
//сумму переносим в праву часть=>вычитаем из свободного члена и делим на коэф.при x приближения
x[i]=(v[i]-s)/a[i][i]; //новое значение приближения
if (k<fabs(pr-x[i])) k=fabs(pr-x[i]);
}
}
while(k<e); //условие окончания итерационного цикла метода зейделя
for (i=0;i<n;i++)
cout<<x[i]<<" ";
label1:cout<<"END"<<endl;
}