русс | укр

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

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

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

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


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

Численное решение нелинейных уравнений. Процедура отделения корней. Метод бисекции поиска корня нелинейного уравнения.


Дата добавления: 2015-08-06; просмотров: 1443; Нарушение авторских прав


Численное решение нелинейных уравнений.

Решение нелинейного уравнения f(x)=0 или системы нелинейных

уравнений состоит из двух этапов:

1) Отделение корней, то есть отыскание достаточно малых областей, в

каждой из которых заключен ровно один корень уравнения или системы

уравнений.

2) Вычисление каждого отделенного корня с заданной точностью.

Укажем следующие способы отделения корня:

1) Составляется таблица значений функции y=f(x) на промежутке

изменения аргумента x, и если окажется, что для соседних значений аргументов

значения функции имеют разные знаки, то корень уравнения

f(x)=0 находится между ними (правда это не говорит о том, что корень

единственный).

2) Строится график функции f(x) на промежутке изменения аргумента x;

тогда искомые корни находятся в некоторых окрестностях точек пересечения

графика с осью OX.

Кроме того, часто нужно знать начальное приближение x0 к корню x*

(который, заметим, неизвестен). В качестве этого начального приближения

берут, как правило, любую точку отрезка, на котором отделён корень,

например, его середину x0 = (a+b)/2, если описание метода не предписывает

поступить как-нибудь иначе.

Отделение корня функции при гарантии ее определения на

неограниченном интервале, может осуществляться по следующему

итерационному алгоритму.

1. Для начального приближения x0, найти f0=f(x0), задать начальный

интервал поиска D и его коэффициент расширения d>1.

2. Вычислить a=x0 -D, b=x0+D.

3. Увеличить интервал поиска: D=D*d. Если интервал превысил

некоторый заданный предел закончить поиск (интервал не найден).

4a. Если знаки fa и f0 отличаются, то считать корень окруженным на [a,x0] и

выйти из алгоритма.

4b. Если знаки fb и f0 отличаются, то считать корень окруженным на [x0,b] и



выйти из алгоритма.

4c. Если f0>0 (случай меньше нуля анализируется аналогично) перейти к 5:

5. Проверяется, какое значение из fa или fb является меньшим. Если оба

одинаковы, то переходим к 6a (двусторонний поиск), если fb - производим

поиск вправо 6b, иначе - поиск влево 6c.

6a. Находим a=a-D, b=b+D, fa=f(a), fb=f(b), идем к пункту 3.

6b. Присваиваем последовательно a=x0, x0=b, fa=f0, f0=fb; находим b=b+D,

fb=f(b), переходим к пункту 3.

6c. Аналогично 6b, только направление поиска - влево.

Так как интервал поиска постоянно расширяется, то в конце концов

используя указанный алгоритм корень будет локализован.

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

Пусть [a,b] -

отрезок локализации. Предположим, что функция f(x) непрерывна на [a,b] и на

концах принимает значения разных знаков f(a)· f(b)<0.

Алгоритм метода бисекции состоит в построении последовательности

вложенных отрезков, на концах которых функция принимает значения разных

знаков. Каждый последующий отрезок получают делением пополам

предыдущего.

Опишем один шаг итераций метода. Пусть на k-ом шаге найден отрезок

[ak,bk] такой, что f(ak)· f(bk)<0. Найдем середину отрезка xk= (ak + bk)/2. Если

f(xk)=0, то xk - корень и задача решена. Если нет, то из двух половин отрезка

выбираем ту, на концах которой функция имеет противоположные знаки:

ak+1= ak, bk+1= xk, если f(ak)· f(xk)<0

ak+1= xk, bk+1= bk , если f(ak)· f(xk)>0

Критерий окончания итерационного процесса: если длина отрезка

локализации меньше ε, то итерации прекращают и в качестве значения корня с

заданной точностью принимают середину отрезка.

 



<== предыдущая лекция | следующая лекция ==>
Численное решение систем линейных уравнений. Метод Гаусса. | Змінні.


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


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

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

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


 


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

 
 

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

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