Смекни!
smekni.com

Розробка програми мовою програмування С++ по пошуку коренів нелінійних рівнянь (стр. 1 из 4)

ЗМІСТ

Вступ

1. Аналіз завдання та розробка методу вирішення задачі

1.1 Розробка методу виконання основного завдання

1.2 Структура даних і функцій

2. Опис структури програмного проекту

3. Опис алгоритмів розв’язання задачі

4. Розробка та виконання тестового прикладу

5. Інструкція користувача

Висновки

Додатки


ВСТУП

Серед інформаційних технологій, які лежать в основі всіх напрямів підготовки спеціалістів з комп’ютерних технологій, особливе місце займає математичне моделювання. При цьому під математичною моделлю фізичної системи, об’єкта або процесу звичайно розуміють сукупність математичних співвідношень (формул, рівнянь, логічних виразів), які визначають характеристики стану і властивості системи, об’єкта і процесу та їх функціонування залежно від параметрів їх компонентів, початкових умов, вхідних збуджень і часу. Загалом математична модель описує функціональну залежність між вихідними залежними змінними, через які відображається функціонування системи, незалежними (такими, як час) і змінюваними змінними (такими, як параметри компонентів, геометричні розміри та ін.), а також вхідними збудженнями, прикладеними до системи.

Для кожної математичної моделі звичайно формулюється математична задача. У загальному випадку, коли функціональна залежності для множини вхідних даних (значення незалежних та змінюваних змінних і вхідних збуджень), що виступають як множина аргументів, задана неявно, за допомогою математичної моделі необхідно визначити множину вихідних залеж­них змінних, що виступають як множина значень функцій. При цьому відповідно до виду математичної моделі розрізняють такі базові типи математичних задач:

¨ розв’язання системи лінійних (в загальному випадку лінеаризованих) рівнянь;

¨ розв’язання нелінійних алгебраїчних рівнянь;

¨ апроксимація масиву даних або складної функції набором стандартних, більш простих функцій;

¨ чисельне інтегрування і диференціювання;

¨ розв’язання систем звичайних диференціальних рівнянь;


¨ розв’язання диференціальних рівнянь в частинних похідних;

¨ розв’язання інтегральних рівнянь.

Одному з таких типів, а саме розв’язанню нелінійних алгебраїчних рівнянь, і присвячена дана курсова робота. Методом розв’язування обрано метод дихотомії.


1 АНАЛІЗ ЗАВДАННЯ ТА РОЗРОБКА МЕТОДУ ВИРІШЕННЯ ЗАДАЧІ

Розглянемо рівняння

і нехай
- його дійсний корінь, тобто
Геометрично рівність
означає, що графік функції
проходить через точку
осі
.
Далі ми будемо розв’язувати задачу про знаходження
з наперед заданою точністю наближеного значення кореня
рівняння
Спочатку розглянемо питання про відокремлення коренів рівняння.

Корінь

рівняння
відокремлений, якщо знайдено відрізок ( позначимо його
), в якому, крім

, немає інших коренів цього рівняння.

Задача відокремлення коренів рівняння

розв’язується просто, якщо побудова графіка функції
не є важкою. Дійсно, маючи графік функції
, легко виділити відрізки, в кожному із яких знаходиться лише один корінь розглядуваного рівняння, або, що те саме, виділити відрізки, на кожному із яких є лише одна точка перетину кривої
з віссю
.

Відділити корені рівняння

при умові, що
- диференційована функція, можна не лише графічно. Нехай на кінцях деякого відрізка
функція
має значення різних знаків. Тоді за властивістю неперервних функцій ця функція на інтервалі
по меншій мірі один раз обертається в нуль, тобто рівняння
має по меншій мірі один корінь.

Якщо похідна

зберігає знак на відрізку
, то внаслідок монотонності функції
рівняння
на інтервалі
має єдиний корінь.

У цьому випадку числа

та
є наближеними значеннями кореня

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

Нехай корінь

рівняння
відокремлений, тобто є відрізок
, на якому, крім
, немає інших коренів цього рівняння.

Відшукаємо значення

з будь-якою точністю за таких допущень: функція
має на відрізку
неперервні похідні до другого порядку включно і, крім того, похідні
і
зберігають знаки на цьому відрізку. Із цих умов випливає, що
- монотонна функція на відрізку
, яка на кінцях має різні знаки, а також, що крива
опукла або вгнута (рис. 1.1).

Рисунок 1.1 – Варіанти поведінки функції

Отже, розглянемо задачу знаходження коренів рівняння

, (1)

де

- задана функція дійсного змінного.

Розв’язування даної задачі можна розкласти на декілька етапів:

а) дослідження розташування коренів (в загальному випадку на комплексній площині) та їх кратність;

б) відділення коренів, тобто виділення областей, що містять тільки один корінь;

в) обчислення кореня з заданою точністю за допомогою одного з ітераційних алгоритмів.

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

рівняння (1).

Метод ділення проміжку навпіл (метод дихотомії)

Нехай

і відомо, що рівняння (1) має єдиний корінь
. Покладемо a0=a, b0=b, x0=(a0+b0)/2. Якщо
, то
. Якщо
, то покладемо