Нахождение всех действительных корней алгебраического многочлена методом деления отрезка пополам (би...

Курсовой проект - Математика и статистика

Другие курсовые по предмету Математика и статистика

ы в главе 2. Суть же алгоритма нахождения производной сводится к простому перемножению коэффициента и степени и уменьшению значения степени на единицу. Это позволяет корректно определить производную, при этом корректно избавиться от конечной константы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. АНАЛИЗ РЕЗУЛЬТАТОВ

 

В результате выполнения задания на курсовую работу была создана программа VI Function 2.0 , находящая корни алгебраического многочлена вида (1) с указываемой точностью посредством следующих методов:

  • метод деления отрезка пополам;
  • метод хорд и касательных (комбинированный)

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

Фактические результаты совпали с формальными.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. СПИСОК ЛИТЕРАТУРЫ

 

  1. Гутер Р.С. , Овчинский Б.В. Элементы численного анализа и математический обработки результатов опыта. Москва, Наука, 1979
  2. Калиткин Н.Н. Численные методы. Москва, Наука, 1978
  3. Крылов В.И., БабковВ.В., Монастырский П.И. Вычислительные методы. Москва, Наука, 1976
  4. П. Санна. Visual Basic for Applications 6.0 в подлиннике, Киев, BHV

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. ПРИЛОЖЕНИЯ

 

6.1. Пример алгебраического многочлена и нахождения его

корней

 

Многочлен F(x) = 3x2+5x-8

График представлен на рис. 6.1

Точность Q = 0,0001

Найденные корни x = -2,66666669921875метод

x= 0,99991015625бисекции

Найденные корни x = -2,66667654214111метод

x= 0,99981915025хорд и касательных

 

 

рис. 6.1

6.2. Блок-схема алгоритма половинного деления

 

 

 

A = левая граница

В = правая граница

C середина

F(x) - функция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.3. Блок-схема алгоритма поиска корней методом хорд и касательных

 

 

A = левая граница

В = правая граница

F(x) - функция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.4 Руководство пользователя.

После запуска программы перед Вами появится Главное меню, включающее в себя следующие пиктограммы:

СОХРАНИТЬСохраняет файл со всеми сделанными изменениямиПРОСМОТР ФУНКЦИИВыводит на экран окно, в котором отображается вид многочлена, а также вид производных первого и второго порядков (Выбор осужествляется нажатием кнопок F(X), F”(X), F(X)ВВОД КОЭФФИЦИЕНТОВВыводит на экран окно ввода коэффициентовГРАФИКВыводит график функцииПОИСК КОРНЕЙОтображает окно, управляющее поиском корнейО ПРОГРАММЕВыводит окно О программеВЫХОДЗавершает работу програмы, предварительнозадавая вопрос о сохранении изменений

Ввод коэффициентов осуществляется следующим образом: в появившемся окне имеются 2 поля одно для указания степени, другое для ввода собственно коэффициента. Если Вы уже вводили некоторую функцию, то для ее удаления нажмите кнопку “очистить”, для запоминания коэффициента нажмите “Ок”, для завершеня ввода “завершить”.

 

Поиск корней упрощен до предела. Вам достаточно указать неоюходимую точность и выбрать метод поиска: бисекционый или комбинированный.

 

6.5. Исходный текст программы

 

UNIT1

Dim curcell As Range

Dim ma As Double

Dim Ao As Double

 

Public Function F(x As Variant)

F = (x ^ 20 * Range("a20").Value) + (x ^ 19 * Range("a19").Value) + (x ^ 18 * Range("a18").Value) + (x ^ 17 * Range("a17").Value) + (x ^ 16 * Range("a16").Value) + (x ^ 15 * Range("a15").Value) + (x ^ 14 * Range("a14").Value) + (x ^ 13 * Range("a13").Value) + (x ^ 12 * Range("a12").Value) + (x ^ 11 * Range("a11").Value) + (x ^ 10 * Range("a10").Value) + (x ^ 9 * Range("a9").Value) + (x ^ 8 * Range("a8").Value) + (x ^ 7 * Range("a7").Value) + (x ^ 6 * Range("a6").Value) + (x ^ 5 * Range("a5").Value) + (x ^ 4 * Range("a4").Value) + (x ^ 3 * Range("a3").Value) + (x ^ 2 * Range("a2").Value) + (x * Range("a1").Value) + Range("a21").Value

End Function

 

Public Function F1(x As Variant)

F1 = (x ^ 20 * Range("j20").Value) + (x ^ 19 * Range("j19").Value) + (x ^ 18 * Range("j18").Value) + (x ^ 17 * Range("j17").Value) + (x ^ 16 * Range("j16").Value) + (x ^ 15 * Range("j15").Value) + (x ^ 14 * Range("j14").Value) + (x ^ 13 * Range("j13").Value) + (x ^ 12 * Range("j12").Value) + (x ^ 11 * Range("j11").Value) + (x ^ 10 * Range("j10").Value) + (x ^ 9 * Range("j9").Value) + (x ^ 8 * Range("j8").Value) + (x ^ 7 * Range("j7").Value) + (x ^ 6 * Range("j6").Value) + (x ^ 5 * Range("j5").Value) + (x ^ 4 * Range("j4").Value) + (x ^ 3 * Range("j3").Value) + (x ^ 2 * Range("j2").Value) + (x * Range("j1").Value) + Range("j21").Value

End Function

 

Public Function F2(x As Variant)

F2 = (x ^ 20 * Range("m20").Value) + (x ^ 19 * Range("m19").Value) + (x ^ 18 * Range("m18").Value) + (x ^ 17 * Range("m17").Value) + (x ^ 16 * Range("m16").Value) + (x ^ 15 * Range("m15").Value) + (x ^ 14 * Range("m14").Value) + (x ^ 13 * Range("m13").Value) + (x ^ 12 * Range("m12").Value) + (x ^ 11 * Range("m11").Value) + (x ^ 10 * Range("m10").Value) + (x ^ 9 * Range("m9").Value) + (x ^ 8 * Range("m8").Value) + (x ^ 7 * Range("m7").Value) + (x ^ 6 * Range("m6").Value) + (x ^ 5 * Range(&q