Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

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

Название: Нахождение всех действительных корней алгебраического многочлена методом деления отрезка пополам (бисекции)
Раздел: Рефераты по математике
Тип: дипломная работа Добавлен 08:07:11 23 марта 2008 Похожие работы
Просмотров: 1535 Комментариев: 3 Оценило: 1 человек Средний балл: 5 Оценка: неизвестно     Скачать

И МЕТОДОМ ХОРД И КАСАТЕЛЬНЫХ С УКАЗАННОЙ ТОЧНОСТЬЮ И УЧЕТОМ ВОЗМОЖНОЙ КРАТНОСТИ КОРНЕЙ

АННОТАЦИЯ

В данной курсовой работе рассмотрен принцип нахождения корней алгебраического многочлена следующими численными методами: метод бисекции, метод хорд и касательных, метод разложения на множители с учетом определяемой точности и проверки кратности корней, а также в среде VisualBasicforApplications 6.0 была разработана программа, реализующая этот поиск и проверку. В пояснительной записке приводится описание как самих численных методов, так и программы, включая примеры и «экранные копии».

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Разработать программу для вычисления корней алгебраического многочлена следующими численными методами : методом половинного деления, методом хорд и касательных, методом разложения на множители, а также обеспечить вычисление значений корней с указываемой точностью и проверку кратности корней. Среда разработки программы – произвольная.

ПРЕДМЕТНАЯ ОБЛАСТЬ

2.1. Описание численных методов

Численные методы позволяют найти решения определенных задач, заранее зная, что полученные результаты будут вычислены с определенной погрешностью, поэтому для многих численных методов необходимо заранее знать «уровень точности», которому будет соответствовать полученное решение.

В этой связи задача нахождения корней многочлена вида (1)

F(x)=a0+a1x+a2x2+…+anxn (1)

представляет особый интерес, т.к. формулы нахождения корней даже кубического уравнения достаточно сложны, а если необходимо отыскать корни многочлена, степень которого равна, например, 5 – то без помощи численных методов не обойтись, тем боле, что вероятность наличия у такого многочлена натуральных (или целых, или точных корней с с «короткой» дробной частью) довольно мала, а формул для нахождения корней уравнения степени, превышающей 4, не существует.[1] Де-факто все дальнейшие операции будут сводиться лишь к уточнению корней, интервалы которых приблизительно известны заранее. Проще всего эти «приблизительные» корни находить, используя графические методы.

Для нахождения корней многочлена существует несколько численных методов, но мы остановимся на тех из них: методе итераций, методе хорд и касательных и методе половинного деления.

2.2.1. Метод хорд и касательных (комбинированный)

Данный метод основан на построении схематического графика функции, определении интервалов его пересечения с осью абсцисс и последующим «сжатием» этого интервала при помощи строимых хорд и касательных к графику этой функции.

Надо отметить, что существуют также отдельно метод хорд (дает значение корня с недостатком) и метод касательных (с избытком). Однако преимущество комбинированного метода заключается в «двустороннем сжатии» рассматриваемого отрезка.

Рассмотрим следующий случай:

дана функция F(x) и построен ее график;

определена допустимая погрешность Q


на основании графика определен отрезок [a,b], на котром график функции пересекает ось абсцисс, следовательно, на этом отрезке

рис.1

существует корень рассматриваемого многочлена. (обозначим его через A)

Дальнейший алгоритм сводится к следующим действиям:

строим касательную к графику функции в точке F(b)

вычисляем координату х пересечения касательной с осью абсцисс по формуле (3) и обозначаем ее через b’

строим к графику функции хорду, проходящую через точки F(a) и F(b).

Вычисляем точку пересечения хорды с осью абсцисс по формуле (2) и обозначаем ее через a'.

a’=a- a , где (2)

b’=b- b , где (3)

Таким образом мы получаем новый отрезок [a’ , b’], котроый (по определениям хорды и касательной) по-прежнему содержи решение уравнения A.

Теперь принимаем отрезок [a’,b’] за новый отрезок [a,b] и повторяем шаги 1-4 до тех пор, пока разность F(b)-F(a) не станет меньше первоначально заложенной погрешности Q. Отметим также, что после этого рекомендуется в качестве искомого решения взять среднее арифметическое F(a) и F(b).

Замечание к методу хорд и касательных. В рассмотренном случае производная F’(x)>0, т.е. график «выпуклый» и b>a. При работе с каждым отдельным случаем необходимо находить производные функции первого и второго порядков и, сообразуясь с ее знаком, определять a и b.

Возможны четыре случая:


y y


F(x) F(x)


xx

а) б)


y y

F(x) F(x)


xx в) г)

а) F’(x) < 0

F’’(x) > 0

б) F’(x) > 0

F’’(x) > 0

в) F’(x) < 0

F’’(x) < 0

г) F’(x) > 0

F’’(x) < 0

Способ хорд Способ касательных
F’(x)F’’(x) > 0 С недостатком С избытком
F’(x)F’’(x) < 0 С ибытком С недостатком

Таким образом, если хорда (касательная) дает значение корня с избытком, то этот корень берется с качестве новой правой границы, а если с недостатком – то левой. В обоих случаях точный корень лежит между точками пересечения хорды и касательной с осью абсцисс.

Замечание 2 к методу хорд и касательных. Так как для решения поставленной задачи требуется отыскание производной функции F(x), метод хорд и касательных достаточно трудно реализуем на программном уровне, т.к. правила вычисления производных в общем виде довольно громоздки для «понимания» ЭВМ; при непосредственном указании производной для каждой степени многочлена память компьютера серьезно загружается, что очень замедляет работу, а задание функции и, соответственно, ее производной непосредственно в программном коде – недопустимо. Однако, используя данный метод, сходимость интервала к корню происходит наиболее быстро, особенно если совместить метод хорд и касательных с методом бисекции, т.к. середина нового отрезка зачастую дает вполне удовлетворительное решение.

2.2.2. Метод итераций

Пятый шаг алгоритма хорд и касательных определял возврат к первому шагу и последующую цикличность хода, т.е. метод хорд и касательных являлся итерационным. Другой метод, также основанный на повторах так и был назван – «метод итераций». Суть его заключается в следующем:

дана функция F(x);

определена допустимая погрешность Q;

определен некоторый интервал [ a , b ], точно содержащий решение уравнения.

Определено некоторое число z, принадлежащее [ a , b ] (назовем z «нулевым приближением»)

Для получения следующего приближения подставим в формулу (1) вместо XZ, получим:

x1=F(z) (4)

и, продолжая аналогично,

x2=F(x1)

x3=F(x2) (5)

xn=F(xn-1)

Таким образом, получаем некоторую последовательность, и, если ее предел (6)

limxn=A, nv (6)

то А является искомым корнем.

Данный метод является исключительно аналитическим, что упрощает его машинную реализацию, однако содержит следующие недостатки:

необходимость выбора нулевого приближения (ведь то, что интуитивно для человека, для ЭВМ может стать довольно сложной задачей)

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

Эти контраргументы стали основанием для отклонения метода итераций при выборе алгоритмизируемого метода.

2.2.3. Метод половинного деления (метод бисекции)


рис.2

Метод половинного деления (известный еще и как «метод деления отрезка пополам») также является рекурсивным, т.е. предусматривает повторение с учетом полученных результатов.

Суть метода половинного деления заключается в следующем:

дана функция F(x);

определена допустимая погрешность Q;

определен некоторый интервал [ a , b ], точно содержащий решение уравнения.

Вычисляем значение координаты Е, беря середину отрезка [a , b], т.е. Е= (a + b ) / 2 (7)

Вычисляем значения F(a), F(b), F(E), и осуществляем следующую проверку: Если F(E)>Q, то корень с указанной точностью найден. Если F(E)<Q, т.е. необходимая точность еще не достигнута, то формируем два интервала: [a , E] и [E , b] проверяем знаки F(a), F(b), F(E). На концах одного из этих интервалов знаки функции будут одинаковы, а на друго различны (иначе Е - искомый корень). И именно то интервал, на концах которого знаки различны, мы берем за основу при следующей итерации, т.е. приравниваем к Е либо a, либо b.

Переходим к пункту 1.

Задачу можно упростить, если определить границы корней: граница абсолютных значений корней вычисляется по формуле (8)

: (8),

(9),


границу положительных корней – по формуле (9):

а границу отрицательных корней – заменив в уравнении (1) х на –х.

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

2.2.4. Метод разложения на множители

Данный метод является полностью аналитическим, однако полностью зависим от других. Главным его преимуществом является то, что в данном методе не происходит потери кратных корней. Поясним на примере:

Пусть дан многочлен F(x) = 2x3-11x2+20x-12 (11)

Его можно записать в виде: F(x) = (x+2)2(2x-3) (12)

У многочлена n-степени, как известно, n корней, а из (12) следует, что корнями F(x) являются –2 и 1,5, причем корень –2 является кратным, т.е. фактически это два одинаковых корня. При отыскании же корней любым из вышеописанных методов «второй» корень –2 будет потерян, т.к. график функции будет иметь лишь две точки пересечения с осью абсцисс

Чтобы избежать этого применяется метод разложения на множители. Суть его заключается в следующем: каждый многочлен вида (1) можно представить в виде (x+h1)(x+h2)…(x+hn)*H = 0 (13) ,

или F(x) = (x+h)(bn-1xn-1+…b1)+b0 (14)

где h1…hn – корни уравнения, а Н – произведение множителей х, вынесенных за скобки ( Н никак не влияет на уравнение, т.к. от него избавляются, деля на Н обе части (13). При этом не исключено, что некоторые h могут быть взаимно равны, что и свидетельствует о наличии кратного корня.

Для вычисления значений новых коэффициентов в (14) используются формулы:

bn=an

bn-1=bnh+an-1 (15)

bn-2=bn-1h+an-2

Таким образом, алгоритм этого метода выглядит следующим образом:

Определить границы корней уравнения;

При помощи любого из вышеописанных методов найти один корень уравнения;

Применяя формулы (14) и (15) сформировать новый многочлен степени, на 1 меньшей предыдущего.

Вернуться к пункту 2.

Повторять до тех пор, пока степень многочлена не обнулится.

Этот метод был реализован на программном уровне и включен в курсовую работу.

ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ

В рамках задания на курсовую работу в среде программирования VisualBasicforApplications была разработана программа, находящая корни многочлена с указываемой точностью.

3.1. Описание программных модулей

Разработка программы велась с учетом концепции объектно-ориентированного программирования, поэтому четко определенной последовательности действий в ней нет. Однако, разбирая программу на составляющие, можно проследить «путь» алгоритма в коде.

Вся программа состоит из форм и модулей. Модулей всего два: один содержит стандартную процедуру автозапуска (его рассматривать мы не станем), а другой – все «публичные» процедуры и функции.

Public function F(x). Функция, возвращающая значение многочлена для передаваемого х.

Public function DetectBorders. Возвращает границы корней, согласно формулам ( 7 , 8, 9 ).

PublicsubGra – процедура, «ответственная» за составление графика.

3.2. Описание форм

В формах заключена основная часть программы, в том числе и собственно алгоритм метода половинного деления. Решение «упаковать» эти функции в формы было продиктовано следующими причинами:

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

разграничение доступа (т.е. необходимая функция или метод могут быть активированы исключительно в допустимой ситуации – это значительно снижает вероятность ошибок);

каждая форма является «вещью в себе» и не зависит от остальных (кроме «корневой»

3.2.1. Форма Form _ Main

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


3.2.2. Форма Form_Koeff

В этой форме задаются коэффициенты многочлена.

Замечание. Для задания коэффициента а0 необходимо указать значение степени х равным 0.


3.2.3.Форма Form_Mnogo


Выводит на экран общий вид заданного многочлена, а также производных первого и второго порядков

3.2.4.Форма Form_WP

Эта форма по существу является панелью управления в режиме графика и позволяет его распечатать или закрыть.


3.2.5. Форма Form_Korni

«Основная форма» – именно в ней заключен сам алгоритм поиска корней (SubFindKor) методами бисекции и хорд/касательных.


В качестве свойств в объекте «форма» присутствуют три ключевые процедуры, реализующие собственно алгоритмы нахождения корней и нахождения производной.

PublicsubFF* – процедура, «ответственная» за нахождение производной.

PublicsubHorda_Kasatelnye – процедура, реализующая поиск корней по алгоритму хорд и касательных.

PublicsubFind_Kor – процедура, реализующая поиск корней по алгоритму половинного деления отрезка.

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

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

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

метод деления отрезка пополам;

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

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

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

Список литературы

Гутер Р.С. , Овчинский Б.В. «Элементы численного анализа и математический обработки результатов опыта». Москва, «Наука», 1979

Калиткин Н.Н. «Численные методы». Москва, «Наука», 1978

Крылов В.И., БабковВ.В., Монастырский П.И. «Вычислительные методы». Москва, «Наука», 1976

П. Санна. «Visual Basic for Applications 6.0 «вподлиннике», Киев, BHV


[1] Этот факт был доказан известными математиками Абелеи и Галуа.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений06:44:48 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
16:08:28 24 ноября 2015
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
10:13:41 24 ноября 2015

Работы, похожие на Дипломная работа: Нахождение всех действительных корней алгебраического многочлена методом деления отрезка пополам (бисекции)

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(150048)
Комментарии (1830)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru