
ЧМ Лабораторная работа 2
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)
ЧИСЛЕННОЕ РЕШЕНИЕ СИСТЕМЫ НЕЛИНЕЙНЫХ УРАВНЕНИЙ Отчет по лабораторной работе №2 по дисциплине «Численные методы»
Студент гр. 7х3-х
_______ ххххххххх
_______
Принял:
Старший преподаватель КИБЭВС
_______ Катаева Е.С.
_______
Томск 2024
|
Содержание |
|
1 |
Введение.............................................................................................................. |
3 |
2 |
ХОД РАБОТЫ.................................................................................................... |
4 |
|
2.1 Решение НУ. Метод Ньютона.................................................................. |
4 |
Заключение............................................................................................................. |
6 |
|
Приложение А........................................................................................................ |
7 |
2
1 Введение
Целью работы является освоение методов отделения и уточнения решения систем нелинейных уравнений.
3

2 ХОД РАБОТЫ
2.1 Решение НУ. Метод Ньютона.
Для тестовой и индивидуальной (2.1) систем нелинейных уравнений было написано программное решение, представленное в приложении А.
3 x22+2 x1 x2+3 x1 |
+2=0 ; |
(2.1) |
|
2 |
−5 x1 x2 −7 x |
2 −14=0 |
|
{2 x1 |
|
Исходя из графика, решения находятся в отрезках x1 [-3,5; -3] [-2,5; - 1,5]; х2 [-1; -0,5] [1,5; 2,5], откуда были взяты начальные значения (2.2). График представлен на рисунке 2.1.
Рисунок 2.1 – График
x1(0)=−2,3; x(20)=2,3 |
(2.2) |
|
[x1(0)=−3 ,5; x(20)=−1 |
||
|
При написании программного решения была использована итерационная формула для метода Ньютона (2.3).
( +1)= − (−1)( )∙ ( ) |
(2.3) |
4

На рисунке 2.2 представлен результат работы программы.
Рисунок 2.2 – Результат В таблице 2.1 представлены полученные значения для проверочной и
индивидуальной систем.
Таблица 2.1 – Результаты решения систем
|
Начальная точка |
Число итераций |
Решение |
|
|
|
|
|
|
Проверочная |
x(0)=(11,5,5) |
2 |
=(1,5021,545) |
|
система |
||||
|
|
|
||
|
|
|
|
|
Индивидуальная |
x(0)=(−22,3,3) |
4 |
=(−22) |
|
|
|
|
||
система |
|
|
|
|
x(0)=(−−31,5) |
6 |
=(−−0,8663 ,35 ) |
||
|
5
Заключение
В ходе данной лабораторной работы были освоены методы отделения и уточнения решения систем нелинейных уравнений.
6
Приложение А Метод Ньютона
double eps = 0.001; int iterations1 = 0; int iterations2 = 0;
void NewtonTest(double x0, double y0)
{
double F1 = y0 * y0 * y0 - x0 * x0 - 1; double F2 = y0 * x0 * x0 * x0 - x0 - 4;
double dxF1 = -2*x0; double dyF1 = 3*y0*y0;
double dxF2 = 3*y0*x0*x0-1; double dyF2 = x0*x0*x0;
double dxy = (dxF1 * dyF2) - (dyF1 * dxF2);
double x_n = x0 - ((1/dxy)*(dyF2*F1 - dyF1*F2));
double y_n = y0 - (-(1 / dxy) * (dxF2 * F1 + dxF1 * F2));
if (Math.Abs(x_n-x0) < eps)
{
Console.WriteLine($"Корни уравнения: {x_n} ; {y_n}"); Console.WriteLine($"Количество итераций: {iterations1}");
}
else
{
iterations1++;
7
NewtonTest(x_n, y_n);
}
}
void NewtonTask(double x0, double y0)
{
double F1 = 3*y0*y0+2*x0*y0+3*x0+2; double F2 = 2*x0*x0-5*x0*y0-7*y0-14;
double dxF1 = 2*y0+3; double dyF1 = 6*y0+2*x0; double dxF2 = 4*x0-5*y0; double dyF2 = -5*x0-7;
double dxy = (dxF1 * dyF2) - (dyF1 * dxF2);
double x_n = x0 - ((1 / dxy) * (dyF2 * F1 - dyF1 * F2)); double y_n = y0 - (-(1 / dxy) * (dxF2 * F1 + dxF1 * F2));
if (Math.Abs(x_n - x0) < eps)
{
Console.WriteLine($"Корни уравнения: {x_n} ; {y_n}"); Console.WriteLine($"Количество итераций: {iterations2}");
}
else
{
iterations2++; NewtonTask(x_n, y_n);
}
8
}
NewtonTest(1.5, 1.5);
Console.WriteLine();
NewtonTask(-2.3, 2.3);
NewtonTask(-3.5,-1);
9