Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра БІТ
/
З В І Т
до лабораторної роботи №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;
}
}
}
Результат роботи програми
/
Висновок: на цій лабораторній роботі я ознайомився з методом половинного ділення та реалізував його за допомогою програми написаною на мові С# .