Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

KP_3_Russkikh_1323

.docx
Скачиваний:
0
Добавлен:
21.06.2024
Размер:
7.41 Кб
Скачать

```//Задание 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;

}

}```

Соседние файлы в предмете Конструирование программ