|
НТУУ «Киевский политехнический институт»
Факультет Электроники
Кафедра Электронных приборов и устройств
Вычислительная математика
Индивидуальное практическое задание по теме:
«Метод половинного деления»
Выполнил студент гр. ДЕ-72
Прокопчук Александр
Метод половинного деления
При программировании желательно иметь программу, решающую не один какой-либо тип уравнений, а по возможности наиболее широкий класс уравнений. Естественно, что фактически выполнить это невозможно, не поступившись чем-нибудь. На практике для решения подобных задач используют так называемые численные методы решения. При этом полученное решение находится не точно, а с какой-либо заранее оговоренной точностью.
Рассмотрим один из численных методов решения уравнений – метод половинного деления. Этот метод имеет свои ограничения на применимость, и, прежде всего, он применим только к алгебраическим уравнениям одного неизвестного.
Причем F(х) – непрерывная на отрезке [а, b] функция, удовлетворяющая условию:
F(a)*F(b) < 0. (*)
Метод основан на том теоретическом факте, что всякое уравнение путем равносильных преобразований можно привести к виду:
F(x) = 0. (1)
При этом если изобразить график функции F(x), то кривая графика будет пересекать ось Ох в точке х, которая и будет являться корнем уравнения (рис.1).
Рисунок 1.
Для нахождения корня отрезок [а, b] делится пополам (рис.2):
Рисунок 2.
хi = а+(b-а)/2 – и выбирается тот полуинтервал, на концах которого знаки F(х) разные.
Для определения знаков функции достаточно вычислить ее значение в точках a, xi и b соответственно. Полученные значения сравниваются следующим образом:
1. Если одно из найденных значений равно нулю, т. е.
F(a) = 0 or F(xi) = 0 or F(b) = 0,
то найден соответствующий корень уравнения. Процесс прекращается.
2. Если (F(a) > 0 end F(xi) < 0) or (F(a) < 0 end F(xi) > 0), то корень находится на отрезке [a, xi].
Примечание
Это сложное условие легко заменяется более простым. А именно, с учетом правил действия со знаками в математике легко записать: если (F(xn)*F(xi) < 0), то.... Действительно, при умножении чисел с разными знаками всегда получается отрицательное число. Например: 9*(-2) = -18. Тогда пункт 2:
Если (F(xi) > 0 end F(b) < 0) or (F(xi) < 0 end F(b) > 0), то корень находится на отрезке [xi, b].
Аналогично предыдущему: если (F(xi)*F(xk) < 0), то....
Итак, выбираем тот отрезок, на котором находится корень (рис. 2.):
Рисунок 3
Если длина выбранного отрезка еще не стала меньше некоторого наперед заданного числа ε – точности вычислений (т. е. в нашем случае | b-xi | < ε), то процесс деления отрезка пополам повторяется уже для нового отрезка.
2.3.3. Алгоритм метода половинного деления
Введем обозначения переменных, которые будем использовать в программе:
xn – начало отрезка по х;
xk – конец отрезка по х;
xi – середина отрезка по х;
eps – требуемая точность вычислений.
Таким образом, весь алгоритм можно записать следующим образом (в псевдокоде):
1. Начало.
2. Ввод хn, xk, eps.
3. Если F(хn) = 0, то Вывод (корень уравнения – xn).
4. Если F(хk) = 0, то Вывод (корень уравнения – xk).
5. Пока (F(xi) <> 0) и |xk-xn| > eps повторять:
· xi:= xn+(xk-xn)/2;
· если (F(xn)*F(xi) < 0), то xk:= xi;
· если (F(xi)*F(xk) < 0), то xn:= xi.
6. Вывод (Найден корень уравнения – xi точности ε).
7. Конец.
Указание
Пример
Рассмотрим применение метода на примере уравнения х3+x2-1 = 0.
Применим метод половинного деления на интервале [0,1]:
F(x) = х3+x2-1.
Разделим интервал изоляции пополам в точке 0,5. Т. е. получим два подотрезка – [0, 0.5] и [0.5, 1].
Вычислим значения функции на концах отрезков. Для первого (левого) подотрезка:
F(0) = 03+02-1 = -1.
F(0,5) = 0,53+0,52-1 = 0,125+ 0,25-1 = -0,625,
т. е. F(0) < 0 и F(0,5) < 0,
т. е. на данном отрезке знак функции остается неизменным и, следовательно, корень уравнения не принадлежит отрезку [0, 0.5].
Рассмотрим правый отрезок [0.5, 1]:
F(0,5) = -0,625 < 0.
F(1) = 13+12-1 = 1+1-1 = 1 > 0,
т. е. на данном отрезке знак функции меняется на противоположный и, следовательно, корень уравнения принадлежит отрезку [0.5, 1]. Выбираем этот отрезок для дальнейшего рассмотрения.
Повторяем метод половинного деления уже для нового отрезка. Середина отрезка получается по формуле – хi = а+(b-а)/2:
xцентра = 0,5+(1-0,5)/2 = 0,5+0,5/2 = 0,75,
т. е. получим два подотрезка – [0.5, 0.75] и [0.75, 1].
Вычислим значения функции на концах отрезков. Для первого (левого) подотрезка:
F(0,5) = -0,625 < 0.
F(0,75) = 0,753+0,752-1 = 0,421875+0,5625-1 = -0,015625 < 0,
т. е. F(0,5) < 0 и F(0,75) < 0,
т. е. на данном отрезке знак функции остается неизменным и, следовательно, корень уравнения не принадлежит отрезку [0, 0.5].
Рассмотрим правый отрезок [0.5, 1]:
F(0,75) = -0,015625 < 0.
F(1) = 1 > 0,
т. е. на данном отрезке знак функции меняется на противоположный и, следовательно, корень уравнения принадлежит отрезку [0.75, 1].
Таким образом, уже на втором повторении метода мы получаем корень уравнения x = 0,75 с точностью 0,25. Если данная точность нас не устраивает, то процесс продолжается до получения корня с лучшей точностью.
1. При программировании желательно иметь программу, решающую не один какой-либо тип уравнений, а по возможности наиболее широкий класс уравнений. Естественно, что фактически выполнить это невозможно, не поступившись чем-нибудь. На практике для решения подобных задач используют так называемые численные методы решения. При этом полученное решение находится не точно, а с какой-либо заранее оговоренной точностью.
2. Один из численных методов решения уравнений – метод половинного деления. Этот метод имеет свои ограничения на применимость, и, прежде всего, он применим только к алгебраическим уравнениям одного неизвестного. Причем F(х) – непрерывная на отрезке [а, b] функция, удовлетворяющая условию:
F(a)*F(b) < 0.
Метод основан на том теоретическом факте, что всякое уравнение путем равносильных преобразований можно привести к виду:
F(x) = 0.
При этом если изобразить график функции F(x), то кривая графика будет пересекать ось Ох в точке х, которая и будет являться корнем уравнения.
Список использованной литературы:
1) Б. П. Демидович, И. А. Марон. Основы вычислительной математики
2) В. Е. Краскевич и др. Численные методы в инжинерных исследованиях. Киев, 1986
3) Ю. П. Боглаев. Вычислительная математика и программирование. Учебное пособие для студентов ВТУЗов.
4) Конспект Лекций
5) www.exponenta.ru
Дата добавления: 2015-09-30; просмотров: 20 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Найти токи и напряжения на всех элементах. | | | Приказом Росземкадастра |