Нахождение всех действительных корней алгебраического многочлена методом деления отрезка пополам (бисекции) и методом хорд и касательных с указанной точностью и учетом возможной кратности корней
Вся программа состоит из форм и модулей. Модулей всего два: один содержит стандартную процедуру автозапуска (его рассматривать мы не станем), а другой — все «публичные» процедуры и функции.
Public function F (x). Функция, возвращающая значение многочлена для передаваемого х.
Public function DetectBorders. Возвращает границы корней, согласно формулам (7, 8, 9).
Public sub Gra — процедура, «ответственная» за составление графика.
3.2. Описание форм
В формах заключена основная часть программы, в том числе и собственно алгоритм метода половинного деления. Решение «упаковать» эти функции в формы было продиктовано следующими причинами:
- сокращение объема занимаемой памяти и, как следствие, ускорение работы за счет сокращения времени жизни переменных;
- разграничение доступа (т.е. необходимая функция или метод могут быть активированы исключительно в допустимой ситуации — это значительно снижает вероятность ошибок);
- каждая форма является «вещью в себе» и не зависит от остальных (кроме «корневой»
3.2.1. Форма Form_Main
Является корневой формой программы, содержит Главное меню, позволяющее в любом порядке выполнять все необходимые действия, а также сохранять и завершать работу программы.
3.2.2. Форма Form_Koeff
В этой форме задаются коэффициенты многочлена.
Замечание. Для задания коэффициента а0 необходимо указать значение степени х равным 0.
3.2.3.Форма Form_Mnogo
Выводит на экран общий вид заданного многочлена, а также производных первого и второго порядков
3.2.4.Форма Form_WP
Эта форма по существу является панелью управления в режиме графика и позволяет его распечатать или закрыть.
«Основная форма» — именно в ней заключен сам алгоритм поиска корней (Sub FindKor) методами бисекции и хорд/касательных.
В качестве свойств в объекте «форма» присутствуют три ключевые процедуры, реализующие собственно алгоритмы нахождения корней и нахождения производной.
Public sub FF* — процедура, «ответственная» за нахождение производной.
Public sub Horda_Kasatelnye — процедура, реализующая поиск корней по алгоритму хорд и касательных.
Public sub Find_Kor — процедура, реализующая поиск корней по алгоритму половинного деления отрезка.
Замечание. Алгоритмы нахождения крней описаны в главе 2. Суть же алгоритма нахождения производной сводится к простому перемножению коэффициента и степени и уменьшению значения степени на единицу. Это позволяет корректно определить производную, при этом корректно «избавиться» от конечной константы.
- АНАЛИЗ РЕЗУЛЬТАТОВ
В результате выполнения задания на курсовую работу была создана программа VI Function 2.0 , находящая корни алгебраического многочлена вида (1) с указываемой точностью посредством следующих методов:
- метод деления отрезка пополам;
- метод хорд и касательных (комбинированный)
Также при составлении программы была учтена возможность наличия у многочлена кратных корней, и средства их обнаружения также вошли в состав программы.
Фактические результаты совпали с формальными.
- СПИСОК ЛИТЕРАТУРЫ
- Гутер Р.С., Овчинский Б.В. «Элементы численного анализа и математический обработки результатов опыта». Москва, «Наука», 1979
- Калиткин Н.Н. «Численные методы». Москва, «Наука», 1978
- Крылов В.И., БабковВ.В., Монастырский П.И. «Вычислительные методы». Москва, «Наука», 1976
- П. Санна. «Visual Basic for Applications 6.0 „в подлиннике“, Киев, BHV
6. ПРИЛОЖЕНИЯ
6.1. Пример алгебраического многочлена и нахождения его
корней
Многочлен F (x) = 3x2+5x-8
График представлен на рис. 6.1
Точность Q = 0,0001
Найденные корни x = -2,66 666 669 921 875 метод
x= 0,99 991 015 625 бисекции
Найденные корни x = -2,66 667 654 214 111 метод
x= 0,99 981 915 025 хорд и касательных
6.2. Блок-схема алгоритма половинного деления
A = левая граница
В = правая граница
C — середина
F (x) — функция
6.3. Блок-схема алгоритма поиска корней методом хорд и касательных
A = левая граница
В = правая граница
F (x) — функция
6.4 Руководство пользователя.
После запуска программы перед Вами появится Главное меню, включающее в себя следующие пиктограммы:
СОХРАНИТЬ | Сохраняет файл со всеми сделанными изменениями |
ПРОСМОТР ФУНКЦИИ | Выводит на экран окно, в котором отображается вид многочлена, а также вид производных первого и второго порядков (Выбор осужествляется нажатием кнопок F'(X), F"(X), F (X) |
ВВОД КОЭФФИЦИЕНТОВ | Выводит на экран окно ввода коэффициентов |
ГРАФИК | Выводит график функции |
ПОИСК КОРНЕЙ | Отображает окно, управляющее поиском корней |
О ПРОГРАММЕ | Выводит окно „О программе“ |
ВЫХОД | Завершает работу програмы, предварительнозадавая вопрос о сохранении изменений |
Ввод коэффициентов осуществляется следующим образом: в появившемся окне имеются 2 поля — одно для указания степени, другое для ввода собственно коэффициента. Если Вы уже вводили некоторую функцию, то для ее удаления нажмите кнопку „очистить“, для запоминания коэффициента нажмите „Ок“, для завершеня ввода — „завершить“.