МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
кафедра «Захист інформації»
Звіт
про виконання лабораторної роботи №1
з курсу: "Комп’ютерні методи дослідження інформаційних процесів та систем"
МЕТОДИ УТОЧНЕННЯ КОРЕНІВ
НЕЛІНІЙНИХ РІВНЯНЬ
Мета роботи – ознайомлення з методами уточнення коренів нелінійних рівнянь з одним невідомим.
1.Короткі теоретичні відомості
Метод Ньютона
Метод послідовних наближень, розроблений Ньютоном, широко використовується при побудові ітераційних алгоритмів. Цей метод відомий своєю швидкою збіжністю (квадратичною збіжністю).
Нехай корінь рівняння відокремлений на відрізку , причому і неперервні і зберігають сталі знаки на всьому відрізку . Геометричний зміст методу Ньютона полягає в тому, що дуга кривої замінюється дотичною до цієї кривої.
Візьмемо деяку точку x0 відрізка [а, b] і проведемо в точці [x0, f(x0)] дотичну до цього графіку.
Рис. 3
Її рівняння має вигляд:
.
Візьмемо за перше наближення кореня точку перетину дотичної з віссю ОХ, одержимо, що
(1)
Наступне наближення знаходимо відповідно за формулою
Ітераційна формула методу Ньютона має вигляд
(2)
Зазначимо, що початкове наближення доцільно вибирати так, щоб виконувалась умова
(3)
В протилежному випадку збіжність методу Ньютона не гарантується.
Найчастіше або , в залежності від того, для якої із цих точок виконується умова (10).
Метод Ньютона ефективний для розв’язування тих рівнянь, для яких значення модуля і похідної біля кореня достатньо велике, тобто графік функції в околі даного кореня має велику крутизну.
2.Завдання
Знайти корінь рівняння з граничною абсолютною похибкою Е = 10–4, відокремлений на відрізку [a, b].
Варіант
Рівняння
Відрізок
2
ех + lnx = 0
[0.1;2]
3.Блок-схема алгоритму програми
4. Список ідентифікаторів констант, змінних, функцій,
використаних у блок-схемі алгоритму і програмі,
та їх пояснення
class Program – клас, в якому виконуються всі дії;
a, b - змінні, які відповідають за межі;
E- змінна, яка відповідає за похибку;
xn,xnr,- змінні, які відповідають за біжучі точки;
Console.WriteLine() – метод виведення на екран;
5. Текст програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Chursinov
{
class Program
{
static void Main()
{
double a, b, E, xn, xn1, xnr, xnr1, f;
Console.Write("Введiть a = ");
a = Convert.ToDouble(Console.ReadLine());
Console.Write("Введiть b = ");
b = Convert.ToDouble(Console.ReadLine());
Console.Write("Введiть абсолютну похибку E = ");
E = Convert.ToDouble(Console.ReadLine());
xn = a;
xnr1 = b;
do
{
xnr = xnr1;
xnr1 = xnr - (Math.Pow(Math.E, xnr) + Math.Log(xnr)) / (Math.Pow(Math.E, xnr) + 1 / xnr);
}
while (Math.Abs(xnr1 - xnr) > E);
f = 0.5 * (xnr1 + xnr);
Console.WriteLine("x=" + f);
Console.ReadLine();
}
}
}
6. Результати роботи програми
/
Висновок: на цій лабораторній роботі я ознайомився з методами уточнення коренів нелінійних рівнянь з одним невідомим.