спряженості - кінець
// Перевірка семетрічночті і положительноопределенности оператора початок
Simetric (matrixSize, z_1d);
More_then_0 (matrixSize, z_1d);
// Перевірка семетрічночті і положительноопределенности оператора кінець
// приведення до треуг увазі з правою частиною початок
double d = 0;
for (int k = 0; k
{
for (int i = k +1; i
{
if (z_1d [k] [k] == 0)
{
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), 4);
printf ("Сталося ділення на 0! nДля виходу натисніть будь-яку клавішу ... n");
_getch ();
exit (0);
}
else
{
d = z_1d [i] [k]/z_1d [k] [k];
for (int j = 0; j
{
z_1d [i] [j] = z_1d [i] [j]-z_1d [k] [j] * d;
}
f_1d [i] = f_1d [i]-f_1d [k] * d;
}
}
}
print (matrixSize, z_1d, f_1d);
// приведення до треуг увазі з правою частиною кінець
do
{
A (n, mask, u, res_A);
Substruction (n, mask, res_A, f, res_S);
A (n, mask, res_S, res_A);
tau = Scalar (n, mask, res_A, res_S)/Scalar (n, mask, res_A, res_A);
for (int i = 0; i <= n; i + +)
{
for (int j = 0; j <= n; j + +)
{
if (mask [i] [j]! = 0)
{
u [i] [j] = u [i] [j]-tau * res_S [i] [j];
}
}
}
norm_r = Norm (n, mask, res_S);
count_it + +;
}
while (norm_r> eps);
fprintf (file, "Норма =% .40 lf n", norm_r);
fprintf (file, " n n");
fprintf (file, "Кількість ітерацій:% d n", count_it);
// перевірка лінійності оператора початок
A (n, mask, u, res_A);
copy (n, res_A, A_u);
// print (n, A_u);
A (n, mask, u_accur, res_A);
copy (n, res_A, A_u_accur);
// print (n, A_u_accur);