ЧислМетодЛаб1
.pdf11
x1[2, 0] = x2[2, 0]; } while (stop == false); break;
case 2:
acc = Math.Pow(10, -5);
Console.WriteLine("-12,5*x1 -0,18*x2 -7,49*x3 = -1,79"); Console.WriteLine("2,7*x1 -7,37*x2 + 0,66x3 = -5,89"); Console.WriteLine("0.41*x1 -8,87*x2 -10.54 * x3 = -2,21"); system = new double[3, 4] {
{-12.5, -0.18, -7.49, -1.79 },
{2.7, -7.37, 0.66, -5.89 },
{0.41, -8.87, -10.54, -2.21 } }; x1 = new double[3, 1] {
{system[0, 3] / system[0, 0] },
{system[1, 3] / system[1, 1] },
{system[2, 3] / system[2, 2] } };
do
{
step++;
double[,] x2 = new double[3, 1]; x2[0, 0] = x1task(x1[1, 0], x1[2, 0]); x2[1, 0] = x2task(x1[0, 0], x1[2, 0]); x2[2, 0] = x3task(x1[0, 0], x1[1, 0]);
if (Math.Abs((x2[0, 0] - x1[0, 0])) < acc || Math.Abs((x2[1, 0] -
x1[1, 0])) < acc || Math.Abs((x2[2, 0] - x1[2, 0])) < acc) stop = true;
x1[0, 0] = x2[0, 0]; x1[1, 0] = x2[1, 0]; x1[2, 0] = x2[2, 0];
} while (stop == false); break;
}
break; case 2:
Console.WriteLine("1 - test 2 - task"); switch (int.Parse(Console.ReadLine()))
{
case 1:
acc = Math.Pow(10, -2);
for (i = 0; i < n; i++)
{
B[i] = 0;
12
d[i] = 0;
for (j = 0; j < n; j++)
{
A[i, j] = 0;
}
}
A = new double[3, 3] {
{100, 2, 3 },
{1, 100, 3 },
{1, 2, 100 } };
B = new double[3] { 105 , 104, 103 };
for (i = 0; i < n; ++i)
{
for (j = 0; j < n; ++j)
{
Console.Write(A[i, j] + " ");
}
Console.WriteLine();
}
for (i = 0; i < n; ++i)
{
Console.WriteLine(B[i]);
}
do
{
for (i = 0; i < n; ++i)
{
step++;
d[i] = x1[i,0]; x1[i, 0] = B[i];
for (j = 0; j < n; ++j)
{
if (i != j)
{
x1[i, 0] -= A[i, j] * x1[j,0];
}
}
x1[i, 0] = x1[i, 0] / A[i, i];
13
d[i] = Math.Abs(d[i] - x1[i, 0]);
}
maxd = d[0];
for (i = 1; i < n; ++i)
{
if (d[i] > maxd)
{
maxd = d[i];
}
}
} while (maxd > acc);
break; case 2:
acc = Math.Pow(10, -2);
for (i = 0; i < n; i++)
{
B[i] = 0; d[i] = 0;
for (j = 0; j < n; j++)
{
A[i, j] = 0;
}
}
A = new double[3, 3] {
{-12.5, -0.18, -7.49},
{2.7, -7.37, 0.66},
{0.41, -8.87, -10.54} }; B = new double[3] {
-1.79 , -5.89, -2.21};
for (i = 0; i < n; ++i)
{
for (j = 0; j < n; ++j)
{
Console.Write(A[i, j] + " ");
}
Console.WriteLine();
}
for (i = 0; i < n; ++i)
14
{
Console.WriteLine(B[i]);
}
do
{
for (i = 0; i < n; ++i)
{
step++;
d[i] = x1[i, 0]; x1[i, 0] = B[i];
for (j = 0; j < n; ++j)
{
if (i != j)
{
x1[i, 0] -= A[i, j] * x1[j, 0];
}
}
x1[i, 0] = x1[i, 0] / A[i, i];
d[i] = Math.Abs(d[i] - x1[i, 0]);
}
maxd = d[0];
for (i = 1; i < n; ++i)
{
if (d[i] > maxd)
{
maxd = d[i];
}
}
} while (maxd > acc);
break;
}
break;
}
Console.WriteLine("x1,x2,x3: "); for (int h = 0; h < x1.Length; h++)
Console.WriteLine(" " + Math.Round(x1[h, 0], 4)); Console.WriteLine("iteration: " + step);
}
}
