ЧМ Лабораторная работа 1
.pdfdouble 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
