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