русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Уточнение корней


Дата добавления: 2014-11-28; просмотров: 2903; Нарушение авторских прав


Рассмотрим несколько численных методов уточнения корней, применяемых для решения как алгебраических, так и трансцендентных уравнений. Эти методы относятся к разряду итерационных.

Итерационный процесссостоит в последовательном шаг за шагом уточнении начального приближения x0 искомого корня. Каждый шаг такого метода называется итерацией.

 
 

В результате реализации итерационного метода получают последовательность приближенных значений корня Если эти значения с увеличением n приближаются к истинному значению корня x*, то говорят, что итерационный процесс сходится.


3.3.1.3.1. Метод половинного деления (дихотомии, бисекции)

Пусть дано уравнение

(3.17)

где функция непрерывна и монотонна на отрезке и имеет на концах отрезка разные знаки:

(3.18)

Требуется найти корень уравнения (3.17) с точностью до График функции представлен на рис. 3.5.


Рассмотрим суть и этапы реализации метода половинного деления.

1) Отрезок делим пополам и определяем середину отрезка:

(3.19)


2) Вычисляем значение функции в точке Если , то является корнем уравнения. Если то поиск корня продолжается на одном из двух полученных отрезков – или .Следует выбрать тот отрезок, на концах которого функция принимает значения противоположных знаков. В данном случае (см. рис. 3.5) выбираем отрезок , так как для него выполняется условие: Для того чтобы сохранить в дальнейших расчетах единое обозначение текущего отрезка, на котором ведется поиск корня на данном шаге вычислений, необходимо параметру b присвоить новое значение : b = . С точки зрения геометрической интерпретации (см. рис. 3.5) это означает, что правая граница исходного отрезка точка b переносится в точку а оставшаяся за пределами точки часть графика дальше не рассматривается.


3) Новый отрезок снова делим пополам:



(3.20)

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

5) Процесс деления пополам текущего отрезка продолжаем до тех пор, пока очередной отрезок не будет удовлетворять условию:

(3.21)

где ε – требуемая точность расчета.

За приближенное значение корня x* принимаем значение середины последнего отрезка , т. е.

x* = . (3.22)

 
 

При этом погрешность вычисления корня не будет превышать , где n – количество произведенных делений отрезков (количество итераций).

Алгоритм метода половинного деления, представлен на рис. 3.6.

В блоке 2 (рис. 3.6) задается начальное значение счетчика n количества итераций (делений отрезка пополам). Блоки 6 – 8 реализуют выбор того из двух отрезков, на котором следует продолжать поиск корня и соответственно корректировку границы (b – при выборе левого отрезка, a – правого).

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

Метод устойчив к ошибкам округления. Однако скорость сходимости его меньше, чем у методов, которые будут рассмотрены ниже.

3.3.1.3.2. Метод Ньютона

Требуется решить уравнение , причем и определены, непрерывны и сохраняют постоянные знаки на отрезке


Рассмотрим геометрическую интерпретацию метода Ньютона (рис. 3.7).

1) Выбираем – начальное приближение корня x* При этом надо придерживаться следующего правила: за начальное приближение корня следует принять тот конец отрезка , в котором знак функции совпадает со знаком второй производной, т.е. выполняется условие:

(3.23)

Этоусловие сходимости метода Ньютона.

Основываясь на свойствах данной функции (см. рис. 3.4), делаем вывод о том, что условие сходимости выполняется для точки , поэтому принимаем

2) Вычисляем значение функции . Проводим касательную к кривой в точке . Абсцисса точки пересечения касательной с осью Оx принимается за новое (первое) приближение корня x1.

Известно, что уравнение касательной, проведенной в точке B0 с координатами (x0, f(x0)) к кривой функции f(x), имеет вид:

(3.24)

где x, y – текущие координаты точки, лежащей на касательной.

Для точки x1 сделаем подстановку в уравнение касательной (3.24):

x = x1; (3.25)

(3.26)

получаем:

. (3.27)

Обе части уравнения (3.27) делим на и выражаем x1:

(3.28)

3) Вычисляем значение функции в точке x1, проводим касательную к кривой в точке Абсцисса точки пересечения касательной с осью Оx представляет собой второе приближение корня x2:

(3.29)

4) Продолжаем последовательно проводить касательные и определять точки их пересечения с осью Оx. Тогда для текущего k-го приближения корня итерационный процесс реализуется рекуррентной формулой:

(3.30)

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

(3.31)

Алгоритм, реализующий метод Ньютона, представлен на рис. 3.8. Блок 4 реализует проверку условия сходимости метода и выбор значения начального приближения (блоки 5, 6), блок 10 реализует подсчет количества итераций, 11 – вычисление текущего приближения корня через предыдущее приближение.

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

Неудачно выбранное начальное приближение может привести к расходимости метода (см. рис. 3.7): представим, что за начальное приближение x0 принят левый конец отрезка a, касательная, проведенная в точке А0, пересекает ось Оx за пределами заданного отрезка [a,b]. Таким образом, получили первое приближение к корню ‹x1›, еще дальше отстоящее от искомого значения корня x*, чем нулевое приближение .

3.3.1.3.3. Метод итерации (метод последовательных приближений)

Пусть требуется решить уравнение . Преобразуем его к виду:

(3.32)

На заданном отрезке выбираем начальное приближение корня x0.

Подставляем его в правую часть уравнения (3.32) и получаем первое приближение корня x1:

(3.33)

Аналогичным образом определим второе приближение корня:

 
 

(3.34)

Продолжая этот процесс далее, получаем последовательность чисел , определяемых соотношением:

(3.35)

Итерационные вычисления продолжают до тех пор, пока для двух последовательных приближений и не выполнится условие:

(3.36)

Достаточным условием сходимости метода итерации, гарантирующим, что последовательно определяемые значения будут приближаться к искомому корню уравнения x*, является условие:

для , (3.37)

причем скорость сходимости будет тем больше, чем меньше число q.

Рассмотрим геометрическую интерпретацию метода итерации. Исходное уравнение приводим к виду:

(3.38)

Строим графики функций y = x и y = . Абсцисса точки пересечения этих графиков и будет являться корнем x* уравнения f(x) = 0.

Рассмотрим несколько возможных вариантов итерационного процесса.

В а р и а н т 1. (рис. 3.9).

Задаем начальное приближение . Определяем . Через точку А0 с координатами проводим горизонтальную линию до пересечения с прямой y = x в точке В1. Через точку В1 проводим вертикальную линию, пересекающую кривую y = и ось Оx. Точка пересечения этой линии с осью Оx даст первое приближение корня x1, а точка пересечения ее с кривой y = – точку А1 с координатами . Через точку А1 проводим горизонтальную линию до пересечения с прямой y = x (точка В2). Вертикальная линия, проведенная через точку В2, пересекая ось Оx, даст второе приближение корня x2, а также определит на кривой y = точку А2 с коор
динатами Продолжая действия по такой же схеме, получаем на оси Оx последовательность значений , приближающихся (сходящихся) к истинному значению корня x*. Причем все последовательные приближения находятся с одной стороны от корня x*. Такая сходимость называется монотонной или односторонней.

В а р и а н т 2. (рис. 3.10). Итерационный процесс расходится.

В а р и а н т 3. (рис. 3.11). Итерационный процесс сходится. Процесс сходимости носит колебательный характер (двусторонняя сходимость).

В а р и а н т 4. (рис. 3.12). Итерационный процесс расходится.

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

П р и м е р 16. Пусть требуется определить корень уравнения

4x3 – 15x + 7 = 0 (3.39)

на отрезке [0, 1].

С п о с о б 1 – прибавляем к обеим частям исходного уравнения x:

(4x3 – 15x + 7) + x = x, (3.40)

получаем:

4x3 – 14x + 7 = x. (3.41)

Следовательно,

= 4x3 – 14x + 7. (3.42)

Проверяем, выполняется ли условие сходимости на отрезке [0, 1]:

= 12x2 – 14, (3.43)

= | –14 | > 1, (3.44)

= | 12–14 | >1 . (3.45)

Условие сходимости не выполняется, следовательно, функция в таком виде непригодна.

С п о с о б 2 – выражаем x из исходного уравнения:

– 15x = – 7 – 4x3, (3.46)

получаем:

(3.47)

 

Следовательно,

. (3.48)

Проверяем, выполняется ли условие сходимости на отрезке [0, 1]:

= |0|<1; (3.49)

< 1. (3.50)

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

П р и м е р 17. Пусть требуется определить корень уравнения

(3.51)

на отрезке [0, 1].

С п о с о б 3 – представляем исходное уравнение в виде:

(3.52)

и логарифмируем обе части этого уравнения:

, (3.53)

получаем:

x = . (3.54)

Следовательно,

= , (3.55)

= . (3.56)

Проверяем, выполняется ли условие сходимости на отрезке [0, 1]:

= |-0,5| < 1; (3.57)

= |-0,269| < 1. (3.58)

Условие сходимости выполняется.

С п о с о б 4 – для некоторых уравнений рассмотренные выше способы преобразования не дают желаемых результатов. В таких случаях рекомендуется применить следующий прием, гарантирующий выполнение условия сходимости метода итерации.

Левую и правую части исходного уравнения f(x) = 0 умножаем на произвольную константу λ и прибавляем к обеим частям неизвестное x:

x = x + λf(x), (3.59)

тогда

= x + λf(x). (3.60)

Коэффициент λ задается следующим образом:

λ = , (3.61)

где M – наибольшее значение производной на отрезке [a, b],

М = (3.62)

П р и м е р 18. Пусть требуется определить корень уравнения

x3 +3x2 –3=0 (3.63)

на отрезке [0,5; 1,5].

Представляем исходное уравнение в виде:

x = x + λ( x3 +3x2 –3), (3.64)

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

= x + λ( x3 +3x2 –3). (3.65)

Определяем λ:

λ = , (3.66)

где М=

следовательно, λ = = – 0,063.

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

= x – 0,063( x3 +3x2 –3), (3.67)

=1– 0,19x2– 0,38x. (3.68)

Проверяем условие сходимости:

 
 

=0,76<1; (3.69)

=0,0025<1. (3.70)

Условие сходимости выполняется.

Алгоритм, реализующий метод итерации, представлен на рис. 3.13.

 

4. МАТЕМАТИЧЕСКИЕ МОДЕЛИ В ФОРМЕ

ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ



<== предыдущая лекция | следующая лекция ==>
Методы решения | Базовые понятия


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.838 сек.