- •4.1 Метод пошаговой детализации
- •4.2. Представление о структурном программировании
- •4.3. Сведения о модульном программировании
- •4.4. Краткая информация об объектно-ориентированном программировании
- •4.5. Что еще почитать
- •4.6. Задания
- •4.7. Справочная информация
- •4.8. Программное обеспечение
- •@Fname , где fname - имя m-функции.
4.7. Справочная информация
Как известно, далеко не всякое алгебраическое уравнение
может быть решено аналитически. Это относится к большинству трансцендентных уравнений и к алгебраическим уравнениям выше четвертого порядка. Однако точное решение уравнений на практике часто и не требуется. Чтобы считать задачу решенной, достаточно бывает отыскать значения корней с требуемой степенью точности. Для получения таких решений разработаны численные методы.
Р
Рис. 1
На втором этапе внутри выделенных отрезков вычисляются значения каждого из корней уравнения с заданной точностью. Для этого используются два основных итерационных подхода: сужение выделенного отрезка, содержащего корень, и последовательное уточнение первоначального приближения значения корня, взятого из выделенного отрезка.
Методы сужения отрезка [a, b], к которым относятся метод хорд, метод половинного деления и др., не имеют ограничений на функцию f(x), присущих методам последовательного уточнения.
Метод половинного деления (метод бисекций)
Работа метода иллюстрируется на рис.2. Отрезок изоляции [a, b] корня делится пополам x0 = (a + b)/2 и в полученной точке вычисляется значение функции. Если f(x0) = 0, то корень найден и расчеты прекращают. В противном случае выбирается новый отрезок, содержащий корень уравнения, из отрезков [a, x0] и [x0, b]. На концах искомого отрезка функция f(x) должна иметь значения разного знака. Для этого проверяется условие
f(a)f(x0) < 0.
П
Рис. 2 Рис. 3
Метод хорд
Идея метода состоит в замене функции f(x) внутри отрезка [a, b] линейной функцией. Точка пересечения x0 графика линейной функции и оси абсцисс принимается за значение одной из границ нового отрезка изоляции корня, который выбирается аналогично методу половинного деления. Далее процесс повторяется и находится x1 - точка пересечения графика линейной функции нового отрезка с осью абсцисс. Иллюстрацией этого алгоритма является рис.3.
Процесс поиска корня продолжается до тех пор, пока не будет выполнено условие, задающее погрешность его определения.
Для расчета на каждом шаге координаты точки пересечения графика линейной функции и оси абсцисс используются выражения вида:
или
.
Методы последовательного уточнения начального приближенного значения корня. К этим методам относятся метод простых итераций, метод Ньютона и ряд других. Они обладают высокой эффективностью, но их применение связано с рядом ограничений, накладываемых на свойства функции f(x).
Метод простых итераций
Метод основывается на приведении исходного уравнения к форме
Это преобразование может быть выполнено многими способами.
Например, уравнение
может быть преобразовано как x= e-x или x = ln |1/x|.
Далее процесс уточнения корня строится по следующей итерационной схеме
……………
……………
где x0 - первоначальное приближенное значение корня на отрезке [a, b].
Если последовательность значений xk (k = 0, 1, 2, ...) имеет конечный предел, то итерационный процесс сходится к точному значению корня x* за бесконечно большое число шагов. Поэтому итерации завершают при выполнении одного из условий:
или
,
г
Рис. 4 Рис. 5
Процесс уточнения корня уравнения методом простых итераций может быть проиллюстрирован графически.
Как видно на рис.4, для выбранной на отрезке [a, b] начальной точки x0 вычисляется значение функции (x0). Абсцисса этой точки с помощью графика функции y = x преобразуется в новое приближение переменной x1. Далее процесс повторяется, и находятся значения x2, x3, ..., xk,... до тех пор, пока не будет выполнено условие завершения итерационного процесса по заданной погрешности вычисления корня . В данном случае итерационный процесс сходится и заданная погрешность вычисления корня достижима. На рис.5 показана ситуация, когда метод итераций расходится. Каждое новое значение xk отстоит все дальше от точного решения уравнения x* и заданная погрешность вычисления недостижима. Такая ситуация характерна для неудачного преобразования уравнения f(x) = 0 к уравнению x = (x).
В методе итераций рекомендуется преобразовывать исходное уравнение, основываясь на теореме о его сходимости, которая гласит: если во всех точках отрезка изоляции [a,b] корня уравнения x = (x) функция (x) удовлетворяет условию |(x)| < 1, то итерационный процесс сходится к точному значению корня x* для любого x0 из отрезка изоляции.
Исходя из вышесказанного, можно указать еще один способ преобразования исходного уравнения к форме, требуемой методом итераций. Исходное уравнение f(x) = 0 равносильно уравнению x = x + f(x), где - отличная от нуля произвольная постоянная. Эта постоянная выбирается из условия сходимости метода |(x)| < 1, считая (x) = x + f(x).
В этом случае условие сходимости переписывается в виде:
|1+ f(x)| < 1 ,
и условие на допустимое значение параметра приобретает вид
-2< f(x)<0 ,
что дает весьма широкий интервал значений. Это позволяет использовать приближенную оценку производной f(x) в окрестности искомого корня, которую можно получать, например, из построенного графика функции f(x). Очевидно, что для каждого корня уравнения следует формировать соответствующую ему функцию (x) на основе подобранного значения параметра . Удобно, например, выбирать его в середине интервала допустимых значений:
=-1/ f(x) .
Метод Ньютона
В данном методе каждое новое приближение к значению корня уравнения f(x) = 0 ищется по следующей итерационной схеме
Рис. 4
………………….
………………….
где x0 - первоначальное приближенное значение корня на отрезке [a,b].
Графическая интерпретация работы метода Ньютона представлена на рис.4. Из точки на кривой y = f(x), имеющей абсциссу x0, проводится касательная до пересечения с осью 0x и абсцисса точки пересечения принимается за новое приближение x1 значения корня уравнения f(x) = 0. В случае сходимости последовательности вычисляемых значений x0, x1, ..., xk,... процесс продолжается до тех пор, пока не выполнится условие его завершения по заданной погрешности определения корня .
Чтобы последовательность приближений x0, x1, ..., xk, ... сходилась к значению корня x*, необходимо и достаточно выполнение условий следующей теоремы. Если в окрестности корня x* функция f(x) имеет непрерывные производные f(x) и f(x), для которых справедливо неравенство
,
то итерационный процесс сходится к точному значению корня для любого x0 из [a, b].
