Модель Тригга-Лича

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

Введение

Существует довольно очевидная теорема: "Если непрерывная функция на концах некоторого интервала имеет значения разных знаков, то внутри этого интервала у нее есть корень (как минимум, один, но м.б. и несколько)". На базе этой теоремы построено численное нахождение приближенного значения корня функции. Обобщенно этот метод называется дихотомией, т.е. делением отрезка на две части. Обобщенный алгоритм выглядит так:

  1. Задать начальный интервал [X_{left}..X_{right}];
  2. Убедиться, что на концах функция имеет разный знак;
  3. Повторять
    • выбрать внутри интервала точку X;
    • сравнить знак функции в точке X со знаком функции в одном из концов;
      • если совпадает, то переместить этот конец интервала в точку X,
      • иначе переместить в точку X другой конец интервала;
пока не будет достигнута нужная точность.

Варианты метода дихотомии различаются выбором точки деления. Рассмотрим варианты дихотомии: метод половинного деления и метод хорд.

Метод половинного деления

Метод половинного деления известен также как метод бисекции. В данном методе интервал делится ровно пополам.

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

Метод половинного деления:

  1. Один из простых способов поиска корней функции одного аргумента.
  2. Применяется для нахождения значений действительно-значной функции, определяемому по какому-либо критерию (это может быть сравнение на минимум, максимум или конкретное число).

Метод половинного деления как метод поиска корней функции

Изложение метода

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

Будем считать, что корень t функции f(x)=0 отделён на отрезке [a,b]. Задача заключается в том, чтобы найти и уточнить этот корень методом половинного деления. Другими словами, требуется найти приближённое значение корня с заданной точностью \eps.

Пусть функция f непрерывна на отрезке [a,b],

f(a)\cdot f(b)<0, \; \eps=0,01 и t\in[a,b] - единственный корень уравнения f(x)=0, \; a\le t\le b.

(Мы не рассматриваем случай, когда корней на отрезке [a,b] несколько, то есть более одного. В качестве \eps можно взять и другое достаточно малое положительное число, например, 0,001.)

Поделим отрезок [a,b] пополам. Получим точку c= \frac {a+b}{2}, \; a<c<b и два отрезка [a,c], \; [c,b].

  • Если f(c)=0, то корень t найден (t=c).
  • Если нет, то из двух полученных отрезков [a,c] и [c,b] надо выбрать один [a_1;b_1] такой, что f(a_1)\cdot f(b_1)<0, то есть
    • [a_1;b_1] = [a,c], если f(a)\cdot f(c)<0 или
    • [a_1;b_1] = [c,b], если f(c)\cdot f(b)<0.
Новый отрезок [a_1;b_1] делим пополам. Получаем середину этого отрезка c_1=\frac {a_1+b_1}{2} и так далее.

Для того, чтобы найти приближённое значение корня с точностью до  \eps >0, необходимо остановить процесс половинного деления на таком шаге n, на котором |b_n-c_n|<\eps и вычислить x=\frac {a_n+b_n}{2}. Тогда можно взять t\approx x.

Реализация метода на С++ и числовой пример

Данная статья является непроверенным учебным заданием.
Студент: Участник:Коликова Катя
Преподаватель: Участник:Vokov
Срок: 31 декабря 2009

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.


Личные инструменты