
KP_3_Russkikh_1323
.docx```//Задание 3 вариант 28 стр 141
using System;
class Program
{
static void Main(string[] args)
{
// Заданные значения
double[,] A = {
{ 1.00, -0.34, -0.23, 0.06 },
{ -0.11, 1.23, 0.18, -0.36 },
{ -0.23, 0.12, 0.84, 0.35 },
{ -0.12, -0.12, 0.47, 0.82 }
};
double[] b = { 1.4200, -0.6600, 1.0800, 1.7200 };
double[] x0 = new double[b.Length];
double e = 1e-7;
// Решение системы уравнений методом простых итераций
double[] solution = SimpleIterationMethod(A, b, x0, e);
// Вывод результата
Console.WriteLine("Решение системы уравнений методом простых итераций:");
for (int i = 0; i < solution.Length; i++)
{
Console.WriteLine($"x{i + 1} = {solution[i]}");
}
}
// Функция для решения системы линейных уравнений методом простых итераций
static double[] SimpleIterationMethod(double[,] A, double[] b, double[] x0, double e)
{
int n = b.Length;
double[] x = new double[n];
double[] xNew = new double[n];
double[,] T = new double[n, n];
double[] c = new double[n];
double error = e + 1; // начальное значение ошибки, чтобы войти в цикл
while (error > e)
{
// Вычисление матрицы T и вектора c
for (int i = 0; i < n; i++)
{
double sum = 0;
for (int j = 0; j < n; j++)
{
if (i != j)
{
T[i, j] = -A[i, j] / A[i, i];
}
sum += T[i, j] * x0[j];
}
c[i] = b[i] / A[i, i];
xNew[i] = sum + c[i];
}
// Проверка на сходимость
error = 0;
for (int i = 0; i < n; i++)
{
error += Math.Abs(xNew[i] - x0[i]);
}
// Обновление значений x0
Array.Copy(xNew, x0, n);
}
return x0;
}
}```