Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
Кафедра ЗІ
ЗВІТ
До лабораторної роботи №1
з курсу: «Комп’ютерні методи дослідження
інформаційних процесів та систем»
на тему: «Методи уточнення коренів нелінійних рівнянь»
Варіант – 3
Мета роботи - ознайомлення з методами уточнення коренів нелінійних рівнянь з одним невідомим.
Короткі теоретичні відомості
Нехай задане рівняння
,
де – неперервна функція, визначена на проміжку і має різні знаки на кінцях цього проміжку, тобто виконується умова
Крім того, та – неперервні і зберігають знак на проміжку . Необхідно знайти корінь рівняння (1) із заданою граничною абсолютною похибкою Е.
Нехай корінь рівняння відокремлений на відрізку , причому і неперервні і зберігають сталі знаки на всьому відрізку . Геометричний зміст методу Ньютона полягає в тому, що дуга кривої замінюється дотичною до цієї кривої.
Візьмемо деяку точку x0 відрізка [а, b] і проведемо в точці [x0, f(x0)] дотичну до цього графіку.
Рис. 3
Її рівняння має вигляд:
.
Візьмемо за перше наближення кореня точку перетину дотичної з віссю ОХ, одержимо, що
Наступне наближення знаходимо відповідно за формулою
Ітераційна формула методу Ньютона має вигляд
Зазначимо, що початкове наближення доцільно вибирати так, щоб виконувалась умова
В протилежному випадку збіжність методу Ньютона не гарантується.
Найчастіше або , в залежності від того, для якої із цих точок виконується умова (10).
Метод Ньютона ефективний для розв’язування тих рівнянь, для яких значення модуля і похідної біля кореня достатньо велике, тобто графік функції в околі даного кореня має велику крутизну.
Завдання
Знайти корінь рівняння з граничною абсолютною похибкою Е = 10–4, відокремлений на відрізку [a, b] методом Ньютона.
/
Блок-схема алгоритму програми
Список індентифікаторів, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення
x – змінна дійсного типу, яка є аргументом виразу;
Math – клас, в якому визначено стандартні математичні функції;
double – тип з плаваючою точкою подвійної точності;
if-else - умовний оператор;
while - оператор циклу з передумовою;
Main() – головна функція;
Pow(x,y) - повертає значення х піднесене до степеня у;
Текст програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Lab1
{
class Program
{
static double F(double x )
{return Math.Sin (x) - 1/x;
}
static double Fph(double x)
{
return Math.Cos(x)+1/(Math.Pow(x, 2));
}
static double F2ph(double x)
{
return -Math.Sin(x) - 2/Math.Pow(x , 3);
}
static double y;
static void Main(string[] args)
{double x;
Console.WriteLine("Vvedit a");
double a = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Vvedit b");
double b = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Vvedit E");
double eps = Convert.ToDouble(Console.ReadLine());
if (F(a) * F2ph(a) > 0)
y = a;
else
y = b;
x = y;
double nev = F(x);
while (Math.Abs(nev) > eps)
{
x = x - F(x) / Fph(x);
nev = F(x);
}
Console.WriteLine("result=" +x);
Console.ReadKey();
}
}
}
Результати роботи програми
/
Висновок: На цій лабораторній роботі я ознайомився з методами уточнення коренів нелінійних рівнянь з одним невідомим.