Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра БІТ
/
З В І Т
до лабораторної роботи №1
з курсу:“Комп’ютерні методи дослідження інформаційних процесів і систем”
на тему:“Методи уточнення коренів нелінійних рівнянь’’
Варіант №14
Короткі теоретичні відомості
Метод поділу проміжку навпіл
Цей метод відомий також за назвами методу бісекцій або методу дихотомії. Це простий і надійний алгоритм уточнення коренів рівняння (1).
Суть методу полягає в тому, що відрізок / ділиться навпіл, тобто вибирається перше наближення кореня (Рис.1):
/ (3)
Якщо /, тоді / є коренем рівняння (1).
/
Рис.1.
Якщо /, то вибирають той з відрізків / чи /, на кінцях якого функція має різні знаки. Обраний відрізок знову ділять навпіл і т.д. Процес обчислень проводиться доти, доки величина відрізку / не стане меншою від заданої похибки Е.
Метод досить стійкий до похибок заокруглень. Але й збігається теж повільно. При збільшенні точності значно зростає об’єм обчислень. Тому на практиці метод часто використовують для грубого визначення початкового наближення кореня, а далі застосовують швидко збіжний ітераційний метод.
Метод бісекцій збігається для будь-яких неперервних функцій. Кількість ітерацій, необхідних для досягнення точності E, оцінюють співвідношенням:
/
Завдання
Знайти корінь рівняння з граничною абсолютною похибкою Е = 10–4, відокремлений на відрізку [a, b]. Методи чисельного розв’язування задаються викладачем.
14
lgx + x = 0
[0.2;1]
Блок-схема алгоритму
/
Текст програми
using System;
namespace KMD1
{
class Program
{
static void Main()
{
double a = 0.2;
double b = 1.0;
double eps = 0.0001;
double c;
int i = 0;
while (b - a > eps)
{
c = (a + b) / 2;
if (f(a) * f(c) > 0)
{
a = c;
}
else
{
b = c;
}
i++;
Console.WriteLine("a= {1} b= {2} x= {3} f(x)= {4}", i, a, b, c, f(c));
}
Console.ReadKey();
}
static double f(double x)
{
return Math.Log(x) + x +1;
}
}
}
Результат роботи програми
/
Висновок: на цій лабораторній роботі я ознайомився з методом половинного ділення та реалізував його за допомогою програми написаною на мові С# .
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!