русс | укр

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

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

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

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


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

Метод деления пополам


Дата добавления: 2013-12-23; просмотров: 863; Нарушение авторских прав


Решение алгебраических уравнений

Вычисление второй производной

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

,

 

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

 

, (2)

 

справедливое со вторым порядком O(h2) точности.

Вычисления согласно (2) подтверждают применимость этого выражения для приближенного вычисления вторых производных.

Рис. 1

Не всегда можно (а точнее, почти никогда нельзя) найти решение алгебраического уравнения аналитически, т.е. выразить его на языке формул и найти корень точно. Поэтому на практике приходится искать приближенные значения корней уравнений. Для этого используются различные методы приближенных вычислений. Одним из самых простых и наглядных и вместе с тем эффективных является метод деления пополам. Суть метода состоит в следующем. Прежде всего, каким либо способом (например, графически) определяется интервал, на котором находится искомый корень. Непременным условием работоспособности метода является то, что функция на границах этого интервала имеет разный знак и, следовательно, корень находится между ними. Затем вычисляется значение функции в средней точке интервала. Знак функции в этой точке будет совпадать со знаком функции в одной из границ интервала. Это означает, что искомый корень находится на другой половине интервала. Именно она снова делится пополам и процедура повторяется до тех пор, пока не будет найдено решение с приемлемой точностью.

Рассмотрим реализацию метода на примере поиска корня уравнения exx – 2 = 0. Известно, что искомый корень лежит в интервале [-2;-1] (см. рис.6).

Рис. 6

Составим таблицу для решения задачи и заполним ее первую строку, что не составит труда (Рис. 7). В ячейку А8 поместим значение аргумента на левом краю интервала x = -2, а в ячейку С8 – значение на правом краю x = -1. В ячейке В8 поместим среднее значение, которое вычислим по формуле =(А8+С8)/2. Значение функции на левой границе вычислим в ячейке D8 по формуле =exp(A2)-A2-2, а скопировав эту формулу и вставив ее в ячейки E8 и F8, получим в этих ячейках значения функции в центре и на правой границе интервала.



Теперь начинается самое интересное. В ячейке А9 мы должны поместит координату новой левой границы интервала. Это или старая левая граница, или центр интервала, полученный делением его пополам. Выбор зависит от того, на какой половине интервала находится искомый корень. Если на левой – то левая граница остается, а если на правой половине – то центр интервала должен стать левой границей нового, половинного интервала. Как же определить, где находится корень? Исключительно просто: корень на той половине интервала, на которой функция имеет разные знаки на концах. Тогда в ячейке А9 должна быть записана формула =ЕСЛИ(ЗНАК(D8)=ЗНАК(Е8);В8;А8). Соответственно, в ячейке С9 должна быть записана формула =ЕСЛИ(ЗНАК(Е8)=ЗНАК(F8);В8;C8), т.е. при равенстве знаков функций на концах правой половины интервала в качестве правой границы теперь должен использоваться центр интервала, а при их неравенстве – остается прежняя правая граница. В ячейке В9 по-прежнему должна находиться формула половинного деления. Как видно из рис. 6, правая граница сместилась в строке 9 в точку -1,5, а центр имеет координату -1,75. В ячейки D9:F9 следует скопировать формулы из ячеек D8:F8. Теперь, чтобы следить за ходом вычислений, достаточно выделить ячейки A9:F9 и распространить находящиеся в них формулы маркером заполнения на нужное количество строк вниз. Результат показан на Рис. 7.

Распространив исходную строку достаточно далеко, мы всегда можем найти корень с заданной точностью, которая, к тому же, визуально контролируется. Однако такой способ не является самым удобным и компактным. Намного удобнее было бы автоматизировать повторение вычислений до тех пор, пока не будет достигнута заданная точность. Excel позволяет легко реализовать и такой подход. Для этого необходимо проделать ту же процедуру, что и в предыдущем примере, но (рис. 8) после заполнения ячеек A32:C32 поступить несколько иначе: вернуться к ячейке А31 и записать в ней формулу =А32, а в ячейке С31 записать формулу =С32. Теперь значения в ячейках А31 и А32 оказались замкнуты друг на друга через ячейку D31, а в ячейках С31 и С32 через F31 (Рис. 8).

Однако для того, чтобы циклические вычисления выполнялись, необходимо предпринять специальные усилия. В меню Сервис | Параметры на вкладке Вычисления необходимо установить флажок Итерации и указать предельное число шагов итерационного процесса (установленное по умолчанию число шагов 100 явно недостаточно во многих случаях) и относительную погрешность, по достижении которой вычислительный процесс остановится. Без этих ограничений циклический вычислительный процесс никогда бы не остановился. Как видно из Рис. 8., решение задачи в случае организации циклических вычислений выглядит намного более компактным, чем в предыдущем случае.

 

Рис. 7

 

Рис. 8

 

 



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


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


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

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

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


 


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

 
 

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

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