Основы численных методов решения задач

Решение задач численными методами предполагает наличие некоторого алгоритма. Алгоритм – это конечный набор правил, позволяющих чисто механически решать любую конкретную задачу из некоторого класса однотипных задач. Алгоритм имеет следующие характеристики:

· исходные данные могут изменяться в определенных пределах – массовость алгоритма;

· процесс применения правил к исходным данным (путь решения задачи) определен однозначно – детерменированность алгоритма;

· на каждом шаге процесса применения правил известно, что считать результатом этого процесса – результативность алгоритма.

Для примера рассмотрим алгоритмы решения уравнений.

Пусть дана непрерывная функция f(x) и требуется найти корень уравнения f(x) = 0. Предположим, что найден отрезок [ a, b ], такой, что f(a)f(b) < 0. Тогда согласно теореме Больцано – Коши[*] внутри отрезка [ a, b ] существует точка с, в которой значение функции равно нулю.

Метод вилки, или метод бисекций, заключается в построении последовательно вложенных друг в друга отрезков, на концах которых функция принимает значения разных знаков. Каждый последующий отрезок получают делением пополам предыдущего. Процесс построения последовательности отрезков позволяет найти нуль функции f(x) с любой заданной точностью.

Опишем один шаг итераций.

Пусть на (n – 1) шаге найден отрезок [ a ( n – 1), b ( n – 1)] Ì [ a, b ], такой, что

f(a ( n – 1))f(b ( n – 1)) < 0.

Делим его пополам точкой с = (a ( n – 1) + b ( n – 1))/2 и вычисляем f(c). Если f(c) = 0, то с – корень уравнения. Если f(c) ¹ 0, то из двух половин отрезка выберем ту, на концах которой значения функции имеют противоположные знаки и один из корней функции лежит на этой половине.

Таким образом,

an = a (n – 1), bn = c, если f(c)f(a (n –1)) < 0,

an = c, bn = b (n – 1), если f(с)f(a (n –1)) > 0.

Если требуется найти корень с точностью e, то деление продолжается до тех пор, пока длина отрезка не станет меньше 2e. Тогда координата середины отрезка и есть значение корня с требуемой точностью.

Метод бисекций (вилки) – простой и надежный метод для поиска простого корня уравнения f(x) = 0. Решение подходит для любых непрерывных функций, в том числе не дифференцируемых. Скорость сходимости метода невелика. Для достижения точности e необходимо совершить N итераций,

где .

Если на отрезке [ a, b ] находится несколько корней уравнения, то метод позволяет определить только один из них.

 

 

Метод простых итераций (последовательных приближений) решения уравнения f(x) = 0 состоит в замене исходного уравнения эквивалентным ему уравнением x = j(x) и построении последовательности x ( n + 1) = j(xn), сводящейся при n ® ¥ к точному решению. Сформулируем достаточные условия сводимости метода простых итераций.

Теорема. Пусть функция j(x) определена и дифференцируема на [a, b], причем все ее значения j(x)Ì [a, b]. Тогда, если существует число q, такое, что / j’(x) / £ q < 1 на отрезке [a, b], то последовательность x(n + 1) =j(xn),

n = 0, 1, 2,..., сводится к единственному на [a, b] решению уравне­ния x = j(x) при любом начальном значении x0 Ì [a, b], т. е.

, f(c) = 0, c Ì [ a, b ].

При этом если на отрезке [a, b] производная j’(x) положительна, то

,

если j’(x) отрицательна, то

.

Опишем один шаг итераций. Исходя из найденного на предыдущем шаге значения x ( n – 1), вычисляем y = j(x ( n – 1)).

Если | yx ( n – 1)| > e, полагают xn = y и выполняют очередную итерацию. Если же значение | yx ( n – 1)| < e, то вычисления заканчивают и за приближенное значение корня принимают величину xn = y. Погрешность полученного результата зависит от знака производной j’(x). При j’(x) > 0 корень найден с погрешностью , если j’(x) < 0, то погрешность не превышает e.

Метод допускает прямую геометрическую интерпретацию. Построим графики функций y = x и y = j(x), Корнем с уравнения x = j(x) является абсцисса точки пересечения кривой y = j(x) с прямой y = x (рис. 2.1).

 

 

 

Рис. 2.1. Метод простых итераций

 

Взяв в качестве начальной произвольную точку x 0 Ì [ a, b ], строим ломаную линию. Абсциссы вершин этой ломаной представляют собой последовательные приближения корня с. Скорость сходимости к корню с тем выше, чем меньше число q.

 

Приближенное решение уравнения f(x) = 0 методом Ньютона или методом касательных заключается в построении итерационной последовательности x ( n + 1) = xn – f(xn)/f’(xn), сводящейся к корню уравнения f(x) = 0.

Сформулируем достаточные условия сходимости метода.

Теорема. Пусть f(x) определена и дважды дифференцируема на [a, b], причем f(a)f(b)< 0, а производные f’(x), f”(x) сохраняют знак на отрезке [a, b]. Тогда, исходя из начального приближения x0 Ì [a, b], удовлетворяющего неравенству f(x0)f”(x0 ) > 0, можно построить последовательность

x(n+1) = xn – f(xn)/f’(xn), n = 0, 1, 2, …, сходящуюся к единственному на [a, b] решению уравнения f(x).

Метод Ньютона допускает простую геометрическую интерпретацию. Если через точку с координатами (xn, f(xn)) (рис. 2.2) провести касательную, то абсцисса точки пересечения этой касательной с осью Ох и есть очередное приближение x ( n +1)корня уравнения f(x) = 0.

 

 
 


 

 

Рис. 2.2. Метод касательных

 

Если необходимо найти корень с точностью e, то итерационный процесс можно остановить, когда

,

где: m 1 – наименьшее значение модуля первой производной |f’(x)| на [ a, b ],

M 2 – наибольшее значение модуля второй производной |f”(x)| на отрезке [ a, b ].

Опишем один шаг итераций.

Если на (n – 1) шаге очередное приближение x ( n – 1) не удовлетворяет условию окончания процесса, то вычисляем величины f(x ( n – 1)), f’(x ( n – 1)) и следующее приближение корня xn = x ( n – 1) – f(x ( n – 1))/f’(x ( n – 1)).

При выполнении условия величину xn принимаем за приближенное значение корня с, вычисленное с точностью e.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: