Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №1
з курсу: «Комп’ютерні методи дослідження інформаційних процесів і систем»
на тему: «Методи уточнення коренів нелінійних рівнянь»
Варіант №3
Мета роботи – ознайомлення з методами уточнення коренів нелінійних рівнянь з одним невідомим.
1. Завдання
Знайти корінь рівняння з граничною абсолютною похибкою Е = 10–4, відокремлений на відрізку [a, b]. Методи чисельного розв’язування задаються викладачем.
Варіант
Рівняння
Відрізок
3
sin x – 1/x = 0
[1;1.5]
2. Короткі теоретичні відомості
Метод Ньютона
Метод послідовних наближень, розроблений Ньютоном, широко використовується при побудові ітераційних алгоритмів. Цей метод відомий своєю швидкою збіжністю (квадратичною збіжністю).
Нехай корінь рівняння відокремлений на відрізку , причому і неперервні і зберігають сталі знаки на всьому відрізку . Геометричний зміст методу Ньютона полягає в тому, що дуга кривої замінюється дотичною до цієї кривої.
Візьмемо деяку точку x0 відрізка [а, b] і проведемо в точці [x0, f(x0)] дотичну до цього графіку (в прикладі обрано x0=b).
Рис. 3
Її рівняння має вигляд:
.
Візьмемо за перше наближення кореня точку перетину дотичної з віссю ОХ (y=0; x=x1 ), одержимо:
(8)
Наступне наближення знаходимо відповідно за формулою
Узагальнена ітераційна формула методу Ньютона має вигляд
(9)
Зазначимо, що початкове наближення доцільно вибирати так, щоб виконувалась умова
(10)
В протилежному випадку збіжність методу Ньютона не гарантується.
Найчастіше або , в залежності від того, для якої із цих точок виконується умова (10).
Метод Ньютона ефективний для розв’язування тих рівнянь, для яких значення модуля похідної біля кореня достатньо велике, тобто графік функції в околі даного кореня має велику крутизну.
Метод Ньютона, як і метод хорд є методом одностороннього наближення. Причому якщо в методі хорд наближення відбувається справа, то в методі Ньютона – зліва, і навпаки.
Алгоритм методу Ньютона
3. Блок-схема алгоритму програми
4. Текст програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program
{
public static double f(double x)
{
return Math.Sin(x)-1/x;
}
public static double fp(double x)
{
double dx = 0.0001;
return (f(x + dx) - f(x)) / dx;
}
public static double f2p(double x)
{
double dx = 0.0001;
return (fp(x + dx) - fp(x)) / dx;
}
static void Main(string[] args)
{
double a, b, Eps, x, dx;
int Kmax;
Console.WriteLine("a=");
a = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("b=");
b = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Vvedit tochnist Eps=");
Eps = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Vvedit max kilkist iteratsiy Kmax=");
Kmax = Convert.ToInt32(Console.ReadLine());
x = a;
if (f(x) * f2p(x) < 0)
{
x = b;
}
if (f(x) * f2p(x) < 0)
{
Console.WriteLine("Zbizhnist ne garantuyetsya");
}
for (int i = 1; i <= Kmax; i++)
{
dx = f(x) / fp(x);
if (Math.Abs(dx) < Eps)
{
Console.WriteLine("x={0},\nKmax={1}", x, i);
Console.ReadLine();
return;
}
x = x - dx;
}
Console.WriteLine("Za zadanu kilkist iteratsiy tochnist ne dosyagnuto");
Console.ReadLine();
return;
}
}
}
5. Результати роботи програми
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!