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

чм1

.pdf
Скачиваний:
1
Добавлен:
01.12.2024
Размер:
331.06 Кб
Скачать

Министерство науки и высшего образования Российской Федерации

Федеральное государственное автономное образовательное учреждение высшего образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)

ЧИСЛЕННОЕ РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ. ЧИСЛЕННОЕ РЕШЕНИЕ НЕЛИНЕЙНОГО УРАВНЕНИЯ.

Отчет по лабораторной работе №1

по дисциплине «Численные методы»

Студент гр. 713-1

_________В.С.Колосова

_________

Принял

Старший преподаватель кафедры КИБЭВС

_________Е.С.Катаева

_________

Томск 2024

Введение

Целью лабораторной работы является написание программ для численного решения систем линейных алгебраических уравнений методом Зейделя и для численного решения нелинейного уравнения методом Ньютона и методом простых итераций.

2

ХОД РАБОТЫ

1 Численное решение систем линейных алгебраических уравнений

Преобразование систем уравнения к виду осуществляется следующим образом: сначала вычисляется сумма всех переменных уравнения, кроме переменной из главной диагонали, а затем из свободного члена вычитается полученная сумма. Это преобразование применяется ко всем уравнениям системы, обновляя значения переменных в процессе. Результат работы программы представлен на рисунке 1.1. Листинг программы представлен в приложении А, результаты работы программы представлены в таблице 1.1.

Рисунок 1.1 – Преобразование уравнения к виду метода Зейделя

Результат работы программы при решении индивидуальной системы уравнений представлен на рисунке 1.2.

Рисунок 1.2 – Результат работы программы при решении индивидуальной системы уравнений

3

Таблица 1.1 – Результаты работы программы

 

Начальная точка

Число итераций

Решение

Проверочная

X1 = 0;

3

X1 = 1,000;

система

X2 = 0;

 

X2 = 1,000;

 

X3

= 0.

 

X3

= 1,000.

Индивидуальная

X1

= 0;

9

X1

= -0,420;

система

X2

= 0;

 

X2

= 0,017;

 

X3

= 0.

 

X3

= 0,122.

4

2 Численное решение нелинейного уравнения

Был проведен этап отделения корня для проверочного уравнения графическим способом, графики представлены на рисунках 2.1-2.2. Получены отрезки [-6,3; -3,5] и [0,2; 8,3].

Рисунок 2.1 – Графическое отделение корня для проверочного уравнения

Рисунок 2.2 – Графическое отделение корня для проверочного уравнения

5

Был проведен этап отделения корня для проверочного уравнения графическим способом, график представлен на рисунке 2.3. Получены отрезки

[-3,9; -1,8] и [-1,1; 0,4].

Рисунок 2.3 – Графическое отделение корня для индивидуального уравнения

Результат работы программы при решении индивидуального уравнения методом Ньютона представлен на рисунке 2.4.

Рисунок 2.4 – Результат работы программы при решении индивидуального уравнения методом Ньютона

Листинг программы методом Ньютона, выполняющей уточнение корня

6

на найденном выше отрезке представлен в приложении Б.

Результат работы программы при решении индивидуального уравнения

методом простых итераций представлен на рисунке 2.5.

Рисунок 2.5 – Результат работы программы при решении индивидуального

уравнения методом простых итераций

Листинг программы методом простых итераций, выполняющей

уточнение корня на найденном выше отрезке представлен в приложении В.

Результаты программ представлены в таблицах 2.1-2.2.

Таблица 2.1 – Результаты работы программ для проверочного уравнения

Результаты

Начальная точка

Число итераций

Найденные

 

 

для каждого

корни

Методы

 

корня

 

Метод Ньютона

4,250;

4;

1,000;

 

-4,900.

2.

-5,000.

Метод простых

4,250;

11;

1,001;

итераций

-4,900.

2.

-5,000.

Таблица 2.2 – Результаты работы программ для индивидуального уравнения

Результаты

Начальная точка

Число итераций

Найденные

 

 

для каждого

корни

Методы

 

корня

 

Метод Ньютона

-0,350;

3;

-0,539;

 

-2,850.

4.

-2,048.

Метод простых

-0,350;

4;

-0,539;

итераций

-2,850.

9.

-2,049.

7

Заключение

В ходе лабораторной работы были написаны программы для численного решения систем линейных алгебраических уравнений методом Зейделя и для численного решения нелинейного уравнения методом Ньютона и методом простых итераций.

8

Приложение А

// матрица - левая часть уравнений double[,] left =

{

{-8.53, -1.0, 2.95 },

{4.41, -13.27, 7.54 },

{-6.87, -6.62, -17.6 }

}; // матрица - правая часть уравнений

double[] right =

{ 3.92, -1.16, 0.63 };

double[] answers = new double[right.Length]; //массив для решений x1, x2, x3 double error = 0.001; //погрешность

int counter = 0; //счетчик итераций

int max_iterations = 1000; //максимальное кол-во итераций bool flag = false; //проверка решения

for (int iteration = 0; iteration < max_iterations; iteration++)

{

double[] new_answers = (double[])answers.Clone(); //копия решения для сравнения

flag = true;

//цикл проходит по всем уравнениям

for (int i = 0; i < right.Length; i++) 9

{

double sum = 0;

//поиск суммы всех переменных уравнения, кроме текущей for (int j = 0; j < left.GetLength(1); j++)

{

if (j != i) //проверка переменной

{

sum += left[i, j] * answers[j];

}

}

//вычисление значения переменной answers[i] = (right[i] - sum) / left[i, i]; //проверка сходимости

if (Math.Abs(answers[i] - new_answers[i]) > error)

{

flag = false;

}

}

counter++;

if (flag) //если сошлось

{

Console.WriteLine($"Решение сошлось после {counter}

итераций");

10

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