Метод дихотомии VBA Excel

Автор: | 20.01.2017

Большинство алгоритмов нахождения корней уравнения позволяют найти, как правило, лишь один корень на заданном промежутке.  К наиболее известным методам относятся методы:

  • Метод простых итераций
  • Метод Ньютона
  • Модифицированный метод Ньютона
  • Метод Рыбакова
  • Метод дихотомии
  • Метод каскадного приближения
  • Метод хорд
  • Комбинированный метод секущих-хорд
  • Метод Эйткина – Стеффенсона
  • Метод обратной квадратичной интерполяции – экстраполяции и др.

 

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

 

Мной рассмотрен метод дихотомии, взятый из файла MM6.PDF. Посмотрите код примера. Он составлен с применением старого, но излюбленного ранее оператора Go TO. С точки зрения структурного программирования использование такого оператора недопустимо, но зато эффективно. В литературе к данной заметке приложено несколько ссылок на найденные мной специально материалы, в том числе на справочник алгоритмов Дьяконова. Когда то, он был настольным у меня. Старые версии Бейсик кишат операторами типа Go TO. В старых версиях Бейсика используется и оператор присваивания LET.

Версий Бейсика существует множество. Мне когда-то пришлось часто переводить программы с одной версии на другую. А впервые с одной из версий Бейсика я познакомился в году 1980 в институте геофизики, куда мы ездили навещать с другом его брата. Он занимался методом магнитного ядерного резонанса. Все расчеты по обработке результатов опытов производились с применением мини ЭВМ иностранного производства и на языке Бейсик. Затем этот язык появился на довольно мощной по тому времени «Искра-226», ну и на знаменитой БК-10, используемой с середины 80-х в классах в школах. В 1983-1984 годах в Харькове я увидел первую PC. У ней было лишь 2 гибких дисковода на 2 разных типа дискет и объем памяти порядка 560 Мб, а основным языком программирования был Форт. Это язык стеков, который успешно применялся в управлении радиотелескопами. На этом языке просто реализовывалась графика.

Все основные алгоритмы сортировок и вычислительных методов были реализованы в большинстве случаев ещё для языков АЛГОЛ и ФОРТРАН в середине 50-х годов.

 

Теперь о примере. Там приведены решения 2-х разных уравнений.  Первое уравнение X*X-5*SIN(X). Очевидно что синус меняется от -1 до +1. Следовательно 5*синус меняется от -5 до +5. Квадрат Х растет намного быстрее. Следовательно, можно предположить, что корни будут при значениях Х около в диапазоне вблизи 0 или 2. Лучше построить сначала график, чтобы проанализировать диапазон, в котором находятся корни. На графике видно, что корней должно быть  2. В примере мы нашли лишь один из корней, потому что задали один из интервалов.

Во втором уравнении X*X*X-X+1 мы видим кубическую параболу с корнем вблизи -1.

Свои уравнения Вы можете заменять в макросе. Можно ли составить программы без операторов GOTO?  – Конечно, можно.

метод Рыбакова
метод Ньютона
метод деления пополам

Пример нахождения корней  методом дихотомии

Справочник Дьяконова в формате djvu

Справочник Дьяконова в формате doc

Справочник Дьяконова в формате txt

РЕШЕНИЕ УРАВНЕНИЙ СРЕДСТВАМИ EXCEL

МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ “ИСПОЛЬЗОВАНИЕ НЕКОТОРЫХ ВСТРОЕННЫХ ФУНКЦИЙ В СИСТЕМЕ EXCEL”

Математическое и физическое моделирование – файл ММ6

Вычисление корней уравнения  VBA Excel – текст заметки

Дьяконов В.П.Справочник по алгоритмам и программам на языке бейсик для персональных ЭВМ.1989

Итерационные методы решения нелинейных уравнений