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

2 курс ИТиП лаб 4

.docx
Скачиваний:
4
Добавлен:
16.10.2024
Размер:
346.82 Кб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ

(МТУСИ)

Факультет "Радио и телевидение"

Кафедра "Электроники"

ОТЧЕТ

по дисциплине "Информационные технологии и программирование"

на тему:

"Решение нелинейных уравнений численными методами. Вариант 7."

Выполнил

Проверил

Кандидат технических наук, доцент ______________ Т. П. Косичкина

Москва 2023

Цель работы: Изучить численные алгоритмы нахождения корней нелинейных уравнений, для чего по указанной литературе изучить: постановку задачи численного решения нелинейных уравнений; аналитический и графический методы отделения корней; условия окончания вычислений; вопросы сходимости и оценки погрешности методов. Овладеть принципами создания циклических алгоритмов на языке С++ с применением инструкций цикла.

Выполнение

Входные данные для 7 варианта:

Функция: tg(x/2)-ctg(x/2)+x=0;

Интервал [1;2];

Число итераций N = 12;

Точность ε - 10^-4

Задание 1.

Выберите для выполнения лабораторной работы свой вариант. Для выбранного варианта разработайте подпрограммы (на языке С++) нахождения корня нелинейного уравнения на заданном интервале тремя методами (методом деления отрезка пополам, методом Ньютона и методом простой итерации), каждый для двух вариантов цикла: регулярного (число итераций N задано в таблице) и итерационного (точность ε задана в таблице). Основная программа main() работает следующим образом: сначала делается запрос на ввод начального приближения (это может быть α, β или x0) к тому корню, который надо получить; после того как введены требуемые данные, идет обращение к подпрограмме, выполняющей вычисления, а затем вывод результатов. Различные методы нахождения корня уравнения необходимо оформить в виде отдельных подпрограмм, всего должно быть шесть подпрограмм (функций). Прототипы функций задать самостоятельно. Организовать меню с возможностью выбора метода нахождения корней и вариантов цикла. Для итерационного цикла выполнять вычисления пока не будет достигнута точность, заданная в таблице 1. Предусмотреть вывод числа итераций на экран и сравнить их для разных методов нахождения корней уравнения. Для регулярного цикла, для заданного в таблице 1 числа итераций N, сравнить точность полученных результатов для разных методов нахождения корней уравнения

Рисунок 1 - функция

Рисунок 2 - регулярный метод деления отрезка пополам

Рисунок 3 - итерационный метод деления отрезка пополам

Рисунок 4 - регулярный метод ньютона

Рисунок 5 - итеративный метод Ньютона

Рисунок 6 - регулярный метод простой итерации

Рисунок 7 - итерационный метод простой итерации

Рисунок 8 - пример цикла main с возможностью выбора метода нахождения корня уравнения

Таблица 1- Результаты выполнения заданий на примере числа (2).

Точность ε при N=12

Число итераций N при ε = 10^-4

Метод деления отрезка пополам

0.002446

14

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

0.001007

3

Метод простой итерации

0,00877

243

Задание 2.

Нарисовать график функции, а также график сходимости к указанному корню для первых пяти итераций, для чего предусмотреть в процедуре нахождения корня.

Рисунок 9 - график который наглядно показывает как выглядит функция tg(x/2)-ctg(x/2)+x=0

Вывод

В результате работы были написаны функции для каждого из этих методов, как с использованием фиксированного числа итераций, так и с использованием заданной точности. Кроме того, были проведены вычислительные эксперименты для каждого метода с различными начальными приближениями и заданными параметрами. Таким образом, цель работы была успешно достигнута, и были получены навыки применения численных алгоритмов нахождения корней нелинейных уравнений с использованием языка C++.