Составить программу на языке программирования С++ и блок-схему для решения следующей задачи: уточнить приближенное значение корня нелинейного уравнения f(x) = 0 на заданном отрезке [a,b] методом половинного деления (дихотомии) с точностью ε = 0.001.
Уравнение имеет вид: x 3 — 9x 2 + 20x – 11=0
Отрезок, на котором осуществляется поиск корня: [0; 1]
- Блок-схема алгоритма поиска корня уравнения методом половинного деления (дихотомии)
- Текст программы решения задачи на С++
- Лабораторная работа: Итерационные методы решения нелинейных уравнений
- ЛАБОРАТОРНАЯ РАБОТА №1-2.
- ИТЕРАЦИОННЫЕ МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ.
- se.moevm.info
- User Tools
- Site Tools
- Sidebar
- Table of Contents
- Практическая работа №3: Решение нелинейных уравнений и систем
- Цель работы
- Основные теоретические положения
- Решение нелинейных уравнений
- Решение систем нелинейных уравнений
- Постановка задачи
- 📸 Видео
Видео:Метод Ньютона (метод касательных) Пример РешенияСкачать
Блок-схема алгоритма поиска корня уравнения методом половинного деления (дихотомии)
Разработаем алгоритм программы поика решения уравнения на заданном отрезке в виде блок-схемы:
Видео:10 Метод Ньютона (Метод касательных) C++ Численные методы решения нелинейного уравненияСкачать
Текст программы решения задачи на С++
В среде программирования Borland C++ 7.0 вводим текст программы на Си ++:
#include
#include
// функция для вычисления f(х)
float f(float z)
<
return pow(z,3)+6*pow(z,2)+6*z-7;//возвращаемое значение
>
// главная функция
void main()
<
float a=-3.0, b=2.0, e=0.001, x;// объявление переменных
while (fabs(a-b)>=e) // цикл
<
// проверка на разные знаки по концам отрезка
if((f(a)>0&&f((a+b)/2) 0))
b=(a+b)/2;
else
if ((f((a+b)/2)>0&&f(b) 0))
a=(a+b)/2;
else
<
printf(«! Net kornej !»);
return;
getch();
>
>
x=(a+b)/2;// вычисление х после завершения цикла
printf(«x=%f F(x)=%f |a-b|=%f»,x,f(x),fabs(a-b)); // вывод результатов
getch();
>
Нажимаем клавиши CTRL+F9 для компиляции и запуска на выполнение программы. Получаем корень уравнения x≈0,834 :
Программа начинается с директив препроцессора, начинающихся с символа #, которые дают указание препроцессору подключить к программе заголовочные файлы с описанием тех или иных библиотечных функций. В данном случае подключается заголовочный файл stdio.h с описанием функций ввода-вывода, заголовочный файл math.h с описанием математических функций и заголовочный файл conio.h с описанием функции ожидания нажатия клавиши getch().
Программа состоит из двух функций: пользовательской функции f(x) и обязательной функции main(). Функция main() не возвращает никаких значений и поэтому она объявляется с ключевым словом void. В отличие от функции main(), функция f(x) возвращает вещественное значение и объявляется с ключевым словом float. Тела функций являются блоками и поэтому ограничены фигурными скобками.
В теле функции main() объявляются вещественные переменные a, b, e, х.
Далее используется оператор цикла while, в котором применяются условные операторы:
if (выражение) оператор 1; else оператор 2; которые позволяют проверить разные ли знаки у концов отрезка.
Использование вышеуказанной библиотечной функции printf() дает возможность вывести на стандартное устройство вывода (монитор) сообщение об отсутствии корней или сообщение с значением корня, значением функции в этой точке и модуль разности концов отрезка.
Тело функции main() зак¬рывается фигурной скобкой. На этом программа заканчивается.
Видео:Решение нелинейного уравнения методом простых итераций (программа)Скачать
Лабораторная работа: Итерационные методы решения нелинейных уравнений
Название: Итерационные методы решения нелинейных уравнений Раздел: Рефераты по информатике, программированию Тип: лабораторная работа Добавлен 09:43:21 25 июня 2008 Похожие работы Просмотров: 2747 Комментариев: 21 Оценило: 3 человек Средний балл: 5 Оценка: неизвестно Скачать | |
Рис.1
Аналитический метод. Функция непрерывна на отрезке , имеет на концах отрезка разные знаки (), а производная функции не меняет знак на отрезке (). Следовательно, нелинейное уравнение (1) имеет на указанном отрезке единственный корень.
2. Метод простых итераций. Для построения рабочей формулы перепишем уравнение (1) в виде: . Проверим, выполняется ли достаточное условие сходимости на отрезке:
(2)
Если условие выполняется, то итерационный процесс строится по формуле
Заметим, что в точке из отрезка , значение .
Построим функцию . Константа выбирается из условия (2). Если производная , то значение выбирается из интервала , если производная , то – из интервала . Так как всюду положительна на отрезке, то, конкретизируя значение производной в любой точке отрезка (например ), значение определяется из интервала . Выбрав значение , запишем рабочую формулу метода простых итераций:
(3)
Итерационный процесс (3) можно начать, задав произвольное начальное приближение . Процесс (3) заканчивается при одновременном выполнении двух условий: и . В этом случае значение является приближенным значением корня нелинейного уравнения (1) на отрезке .
Метод Ньютона. В качестве начального приближения здесь выбирается правый или левый конец отрезка, в зависимости от того, в котором выполняется достаточное условие сходимости метода Ньютона вида:
(4)
Заметим, что в точке условие (4) не выполняется, а в точке — выполняется. Следовательно в качестве начального приближения выбирается точка . Рабочая формула метода Ньютона для данной задачи запишется так:
(5)
Условия выхода итерационного процесса (5) аналогичны условиям метода простых итераций.
Модифицированный метод Ньютона. Начальное приближение выбирается аналогично методу Ньютона, т.е. . Рабочая формула модифицированного метода Ньютона для данной задачи запишется так:
(6)
Условия выхода итерационного процесса (6) аналогичны условиям метода простых итераций.
Замечание: для того, чтобы сделать вывод о скорости сходимости методов, необходимо в каждом методе выбирать одинаковое начальное приближение.
3. Блок-схема метода простых итераций, метода Ньютона и модифицированного метода Ньютона приведена на рисунке 3.
Ниже в качестве примера приведены программы на языках программирования Паскаль и С, реализующие итерационный процесс метода простых итераций.
ПРИМЕР ПРОГРАММЫ НА ЯЗЫКЕ ПАСКАЛЬ
printf(“%d %.4f %.4f %.4f %.4fn”,n++,x,y,fabs(y-x),
Решение: в результате решения нелинейного уравнения (1) на указанном отрезке тремя методами при начальном приближении с точностью и получены следующие результаты: методом простых итераций ; методом Ньютона ; модифицированным методом Ньютона .
4. Содержание отчета.
Отчет о проделанной работе должен содержать: номер и название лабораторной работы; цель работы; содержание работы; задание на работу; теоретическую часть работы (вывод итерационных формул); листинг(и) программ(ы); таблицы результатов (в случае, если число итераций в таблице достаточно большое, в отчет занести две первых и две последних итерации); выводы о проделанной работе.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1. Определить количество корней исходного нелинейного уравнения графическим методом и построить график (пример приведен на рисунке 2).
2. Доказать аналитическим методом единственность корня исходного нелинейного уравнения на указанном отрезке.
3. Построить итерационные формулы, реализующие процесс поиска корня на отрезке методом простых итераций, методом Ньютона и модифицированным методом Ньютона.
4. Составить программу(ы) на любом языке программирования, реализующую(ие) построенные итерационные процессы, используя алгоритм методов, приведенный на рисунке. Печать результатов должен осуществляться на каждом шаге итераций в виде следующей таблицы:
Видео:15 Метод Ньютона (Метод касательных) Ручной счет Численные методы решения нелинейного уравненияСкачать
se.moevm.info
User Tools
Site Tools
Sidebar
Table of Contents
Видео:Решение нелинейного уравнения методом Ньютона (касательных) (программа)Скачать
Практическая работа №3: Решение нелинейных уравнений и систем
Видео:Метод половинного деления решение нелинейного уравненияСкачать
Цель работы
Сформировать представление о методах решения нелинейных уравнений и систем нелинейных уравнений, выработать умение составлять и применять алгоритмы для решения уравнений и систем уравнений, привить навык использования программных средств для решения нелинейных уравнений и систем нелинейных уравнений.
Видео:Уроки C++. Простые линейные уравненияСкачать
Основные теоретические положения
Решение нелинейных уравнений
Численное решение нелинейных (алгебраических или трансцендентных) уравнений вида [ f(x) = 0] заключается в нахождении значений $ x $, удовлетворяющих (с заданной точностью) данному уравнению и состоит из следующих основных этапов:
Целью первого этапа является нахождение отрезков из области определения функции $ f(x) $, внутри которых содержится только один корень решаемого уравнения. Иногда ограничиваются рассмотрением лишь какой-нибудь части области определения, вызывающей по тем или иным соображениям интерес. Для реализации данного этапа используются графические или аналитические способы.
При аналитическом способе отделения корней полезна следующая теорема.
Теорема. Непрерывная строго монотонная функция $ f(x) $ имеет и притом единственный нуль на отрезке $ [a, b] $ тогда и только тогда, когда на его концах она принимает значения разных знаков.
Достаточным признаком монотонности функции $ f(x) $ на отрезке $ [a, b] $ является сохранение знака производной функции.
Графический способ отделения корней целесообразно использовать в том случае, когда имеется возможность построения графика функции $ y = f(x) $. Наличие графика исходной функции дает непосредственное представление о количестве и расположении нулей функции, что позволяет определить промежутки, внутри которых содержится только один корень. Если построение графика функции $ y = f(x) $ вызывает затруднение, часто оказывается удобным преобразовать уравнение $ f(x) = 0 $ к эквивалентному виду $ f_1(x) = f_2(x) $ и построить графики функций $ y = f_1(x) $ и $ y = f_2(x) $. Абсциссы точек пересечения этих графиков будут соответствовать значениям корней решаемого уравнения.
Так или иначе, при завершении первого этапа, должны быть определены промежутки, на каждом из которых содержится только один корень уравнения.
Для уточнения корня с требуемой точностью применяются различные итерационные методы, заключающийеся в построении числовой последовательности $ x^ $ ($ k = 0, 1, 2, dots $), сходящейся к искомому корню $ x^ $ уравнения $ f(x) = 0$.
Решение систем нелинейных уравнений
Систему нелинейных уравнений с n неизвестными можно записать в виде [ left < begin&f_1(x_1, x_2, dots, x_n) = 0 \ &f_2(x_1, x_2, dots, x_n) = 0 \ &dotsdotsdotsdotsdotsdotsdots \ &f_n(x_1, x_2, dots, x_n) = 0 \ end right. ] или, более коротко, в векторной форме [ F(X) = 0, ] где $ X = (x_1, x_2, dots, x_n)^T $ – вектор неизвестных, $ F = (f_1, f_2, dots, f_n)^T $ – вектор-функция.
В редких случаях для решения такой системы удается применить метод последовательного исключения неизвестных и свести решение исходной задачи к решению одного нелинейного уравнения с одним неизвестным. Значения других неизвестных величин находятся соответствующей подстановкой в конкретные выражения. Однако в подавляющем большинстве случаев для решения систем нелинейных уравнений используются итерационные методы.
В дальнейшем предполагается, что ищется изолированное решение нелинейной системы.
Как и в случае одного нелинейного уравнения, локализация решения может осуществляться на основе специфической информации по конкретной решаемой задаче (например, по физическим соображениям), и – с помощью методов математического анализа. При решении системы двух уравнений, достаточно часто удобным является графический способ, когда месторасположение корней определяется как точки пересечения кривых $ f_1(x_1, x_2) = 0 $, $ f_2(x_1, x_2) = 0 $ на плоскости $ (x_1, x_2) $.
Видео:6 Метод половинного деления C++ Численные методы решения нелинейного уравненияСкачать
Постановка задачи
Численно решить уравнение и систему уравнений методами Ньютона и простых итераций с заданной точностью $ varepsilon $. Значение $ varepsilon $ варьируется от 0.1 до 0.000001.
📸 Видео
11 Метод Ньютона (Метод касательных) Mathcad Численные методы решения нелинейного уравненияСкачать
После этого видео, ТЫ РЕШИШЬ ЛЮБУЮ Систему Нелинейных УравненийСкачать
Метод итерацийСкачать
10 Численные методы решения нелинейных уравненийСкачать
1 3 Решение нелинейных уравнений методом простых итерацийСкачать
Решение нелинейного уравнения методом хорд (секущих) (программа)Скачать
Решение нелинейных уравненийСкачать
Как найти корни уравнения в Excel с помощью Подбора параметраСкачать
МЗЭ 2021 Лекция 9 Метод Ньютона для решения нелинейных уравненийСкачать
14 Метод половинного деления Ручной счет Численные методы решения нелинейного уравненияСкачать