- •Численные методы
- •Решение трансцендентных и алгебраических уравнений
- •Постановка задачи
- •Метод половинного деления
- •Метод хорд
- •Метод итераций
- •Метод Ньютона
- •Модифицированный метод Ньютона
- •Метод секущих
- •Интегрирование функций Постановка задачи
- •Формула прямоугольников
- •Алгоритм программы метода прямоугольника
- •Формула трапеций
- •Формула Симпсона
- •Квадратурная формула Чебышева
- •Квадратурная формула Гаусса
- •Методы решения слау Постановка задачи
- •Метод Крамера
- •Метод Гаусса
- •Связь метода Гаусса с lu-факторизацией
- •Вычисление определителя
- •Обращение матрицы
- •Алгоритм схемы Халецкого
- •Вычисление невязки решения
- •Итерационные методы
- •Теорема Самарского о сходимости стационарных методов
- •Метод Якоби
- •Алгоритм метода Якоби
- •Возможные ошибки
- •Теорема сходимости метода Якоби
- •Рекомендации
- •Метод Зейделя
- •Интерполяционный многочлен Лагранжа
- •Интерполяционная формула Ньютона.
- •Интерполяционные и экстраполяционные формулы при равноотстоящих значениях аргумента.
- •Формула Ньютона для интерполирования вперед и экстраполирования назад
- •Формула Ньютона для интерполирования назад и экстраполирования вперед
- •Интерполяционные формулы Гаусса.
- •Построение кривой по точкам Общие понятия
- •Метод наименьших квадратов
- •Метод линеаризации данных по методу наименьших квадратов.
- •Интерполирование сплайнами Кусочно-линейное и кусочно-квадратичное интерполирование
- •Простейший подход к сглаживанию
- •Кусочно-кубические сплайны
- •Список литературы
Метод половинного деления
Пусть дано уравнение
, (1.1)
где функция F(x)определена и непрерывна на отрезке, причем.
Метод половинного деления заключается в следующем. Делим отрезок пополам. Вычисляем. Если, тос- корень уравнения. Мы получили решение задачи, и работа прекращается. В противном случае, выбираем в качестве очередного один из отрезковили, на границах которого функция имеет значения разных знаков (т.е. именно в нем остался корень). Этот отрезок переобозначаем через, снова делим пополам и т.д. Данный процесс повторяем до тех пор, пока длина очередного отрезка не станет меньше заданной погрешности Eps (например,Eps=0.001). В этом случае, в качестве приближенного значения корня берут середину последнего отрезка.
Проверим сходимость метода. Последовательность - невозрастающая ограниченная снизу последовательность. Следовательно, она имеет предел. Аналогично, последовательностьявляется неубывающей ограниченной сверху последовательностью и поэтому имеет свой предел. Из условийи существования двух пределов получаем, чтоA=B. Причем, из условия, переходя к пределу при, получаем, чтои, следовательно,. Итак, метод половинного деления сходится к корню уравнения.
Пример. Ниже приведен фрагмент программы, выбирающий очередной отрезок для метода половинного деления.
{Вычисляем середину отрезка}
C:=(A+B)/2;
{Если на [a,c] значения функции разных знаков,}
{то выбираем этот отрезок для продолжения,}
{иначе продолжаем работать с отрезком [c,b]}
If F(A)*F(C)<0 then B:=C else A:=C;
Выбор очередного отрезка с корнем необходимо выполнять несколько раз, до тех пор, пока его длина не будет меньше погрешности Eps. Следовательно, для организации данного процесса необходим цикл. Т.к. заранее неизвестно, сколько раз необходимо выполнить данную операцию, то оператор цикла For ... To ... Doне подходит. Зато известен критерий (условие) окончания процесса. Поэтому для программы метода половинного деления рекомендуется использовать оператор цикла с постусловиемRepeat ... Until.
Пример. Ниже приведен фрагмент программы, организующий выбор отрезка в цикле.
{Начинаем цикл с постусловием}
Repeat
{Здесь находятся команды выбора}
{очередного отрезка}
...
{Проверяем критерий окончания счета}
Until Abs(B-A)<Eps;
{Все, корень найден.}
{Выводим его значение на экран.}
Недостаток метода половинного деления - его медленная сходимость. Если функция уравнения имеет сложный вид и ее значение вычисляется относительно долго, то для нахождения корней рекомендуется применять другие методы. В профессиональных программах метод деления отрезка пополам обычно используют только для грубого нахождения корней.
Метод хорд
Метод хорд также называется методом пропорциональных частей. Его алгоритм основан на алгоритме метода половинного деления. Но для разбиения исходного отрезка на две части используется не его середина, а иная точка. Методом хорд обычно получают решение за меньшее количество делений отрезка.
Рисунок 1.
Геометрический смысл метода хорд
Геометрический смысл метода пропорциональных частей (см. рисунок № 1) эквивалентен замене кривой хордой, проходящей через точкиAиB. В самом деле, уравнение хордыABесть. Положими, получим
. (1.2)
Если же , а, то формула вычисления значенияостается прежней (но меняется рисунок № 1).
Можно также пользоваться формулой хорд
, (1.3)
где - знак модуля.
Сходимость метода хорд можно доказать, если потребовать, чтобы вторая производная сохраняла свой знак на отрезке.
Примечание. В программе перед командами методов половинного деления и хорд рекомендуется вставить команды проверки корректности начального определения отрезка для поиска корня. Значения на границах указанного отрезка должны быть разных знаков. Иначе программа работать не будет, если случайно ошиблись с начальным отрезком. Программа может «зависнуть» или «зациклится».
Пример. Ниже приведен фрагмент программы. Если ранее указанный отрезок не подходит, выдается соответствующее сообщение и программа прекращает свою работу.
{если на границе значения одного знака}
If F(A)*F(B)>0 then
begin
{На экран выводим соответствующее сообщение}
Writeln(’На отрезке от ’,A:12:7,’ до ’,B:12:7,
’ корней нет’);
{Прекращаем работу программы}
Halt(1);
end;