Большинство алгоритмов нахождения корней уравнения позволяют найти, как правило, лишь один корень на заданном промежутке. К наиболее известным методам относятся методы:
- Метод простых итераций
- Метод Ньютона
- Модифицированный метод Ньютона
- Метод Рыбакова
- Метод дихотомии
- Метод каскадного приближения
- Метод хорд
- Комбинированный метод секущих-хорд
- Метод Эйткина – Стеффенсона
- Метод обратной квадратичной интерполяции – экстраполяции и др.
Количество методов нахождения корней велико, как и различных алгоритмов сортировок.
Мной рассмотрен метод дихотомии, взятый из файла 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
Итерационные методы решения нелинейных уравнений