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

ЧМ Лабораторная работа 1

.pdf
Скачиваний:
4
Добавлен:
17.06.2025
Размер:
536.53 Кб
Скачать

double x3 = (2.4 + 8 * x1 - 0.7 * x2) / (-14.65);

if ((Math.Abs(x1 - start1) < eps) && (Math.Abs(x2 - start2) < eps) && (Math.Abs(x3 - start3) < eps))

{

Console.WriteLine($"Корни уравнения: {x1}, {x2}, {x3}");

Console.WriteLine($"Количество итераций: {iterations2}");

}

else

{

iterations2 += 1;

start1 = x1; start2 = x2; start3 = x3; TaskSeidel();

}

}

TestSeidel();

start1 = 0; start2 = 0; start3 = 0; TaskSeidel();

11

Приложение Б Метод Ньютона

double eps = 0.001; int iterations3 = 0;

Console.WriteLine("Введите начало отрезка:"); double begin = double.Parse(Console.ReadLine()); Console.WriteLine("Введите конец отрезка:"); double end = double.Parse(Console.ReadLine()); double x0 = (begin + end) / 2;

void TestNewton()

{

double x1 = x0 - ((x0 * x0 + 4 * x0 - 5) / (2 * x0 + 4)); if ((Math.Abs(x1) < eps) || (Math.Abs(x1 - x0) < eps))

{

Console.WriteLine($"Корень уравнения: {x1}");

Console.WriteLine($"Количество итераций: {iterations3}");

}

else

{

iterations3 += 1; x0 = x1; TestNewton();

}

}

//int iterations4 = 0; //void TaskNewton() //{

//double x1 = x0 - ((0.46 * x0 * x0 + 0.8 * x0 + 0.22) / (0.92 * x0 + 0.81));

12

//if ((Math.Abs(x1) < eps) || (Math.Abs(x1 - x0) < eps))

//{

//Console.WriteLine($"Корень уравнения: {x1}");

//Console.WriteLine($"Количество итераций: {iterations4}");

//}

//else

//{

//iterations4 += 1;

//x0 = x1;

//TaskNewton();

//}

//}

TestNewton();

//TaskNewton();

13

Приложение В Метод простых итераций

double eps = 0.001; Console.WriteLine("Введите начало отрезка:");

double begin = double.Parse(Console.ReadLine()); Console.WriteLine("Введите конец отрезка:"); double end = double.Parse(Console.ReadLine()); double x0 = (begin + end) / 2;

int iterations5 = 0;

double lambdatest = -2 / (2 * x0 + 4); void SimpleIterationsTest()

{

double x1 = lambdatest * (x0 * x0 + 4 * x0 - 5) + x0; if ((Math.Abs(x1) < eps) || (Math.Abs(x1 - x0) < eps))

{

Console.WriteLine($"Корень уравнения: {x1}"); Console.WriteLine($"Количество итераций: {iterations5}");

}

else

{

iterations5 += 1; x0 = x1;

SimpleIterationsTest();

}

}

//int iterations6 = 0;

//double lambdatask = -2 / (2 * 0.46 * x0 + 0.81); //void SimpleIterationsTask()

//{

14

//double x1 = lambdatask * (0.46 * x0 * x0 + 0.81 * x0 + 0.22) + x0;

//if ((Math.Abs(x1) < eps) || (Math.Abs(x1 - x0) < eps))

//{

//Console.WriteLine($"Корень уравнения: {x1}");

//Console.WriteLine($"Количество итераций: {iterations6}");

//}

//else

//{

//iterations6 += 1;

//x0 = x1;

//SimpleIterationsTask();

//}

//}

SimpleIterationsTest();

//SimpleIterationsTask();

15