МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра БІТ
/
Звіт
до лабораторної роботи №1
з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем»
на тему: «Методи уточнення коренів нелінійних рівнянь»
Метод Ньютона
ЛЬВІВ 2016
Мета роботи – ознайомлення з методами уточнення коренів нелінійних рівнянь з одним невідомим.
Теоретичні відомості
Метод Ньютона
Метод послідовних наближень, розроблений Ньютоном, широко використовується при побудові ітераційних алгоритмів. Цей метод відомий своєю швидкою збіжністю (квадратичною збіжністю).
Нехай корінь рівняння відокремлений на відрізку , причому і неперервні і зберігають сталі знаки на всьому відрізку . Геометричний зміст методу Ньютона полягає в тому, що дуга кривої замінюється дотичною до цієї кривої.
Візьмемо деяку точку x0 відрізка [а, b] і проведемо в точці [x0, f(x0)] дотичну до цього графіку (в прикладі обрано x0=b).
Рис. 3
Її рівняння має вигляд:
.
Візьмемо за перше наближення кореня точку перетину дотичної з віссю ОХ (y=0; x=x1 ), одержимо:
(8)
Наступне наближення знаходимо відповідно за формулою
Узагальнена ітераційна формула методу Ньютона має вигляд
(9)
Зазначимо, що початкове наближення доцільно вибирати так, щоб виконувалась умова
(10)
В протилежному випадку збіжність методу Ньютона не гарантується.
Найчастіше або , в залежності від того, для якої із цих точок виконується умова (10).
Метод Ньютона ефективний для розв’язування тих рівнянь, для яких значення модуля похідної біля кореня достатньо велике, тобто графік функції в околі даного кореня має велику крутизну.
Метод Ньютона, як і метод хорд є методом одностороннього наближення. Причому якщо в методі хорд наближення відбувається справа, то в методі Ньютона – зліва, і навпаки.
Завдання
Знайти корінь рівняння з граничною абсолютною похибкою Е = 10–4, відокремлений на відрізку [a, b]. Методи чисельного розв’язування задаються викладачем.
Варіант
Рівняння
Відрізок
3
sin x – 1/x = 0
[1;1.5]
Блок-схема алгоритму програми
Список індефікаторів, констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення
х – змінна дійсного типу, яка є аргументом виразу;
а – змінна дійсного типу, яка є початком проміжку;
b – змінна дійсного типу, яка є кінцем проміжку;
Е – змінна дійсного типу, яка є граничною абсолютною похибкою;
Println() – метод виводу даних;
nextDouble() – метод вводу даних дійсного типу;
close() – метод, закриваючий джерело вводу даних;
Текст програми
import java.util.Scanner;
import java.lang.Math;
class CalcFun{
private double x0;
private double x1;
private double con;
public CalcFun(double a, double b, double E) {
x0 = a;
if ((f0(x0) * f2(x0)) < 0){
x0 = b;
}
do {
x1 = x0 - (f0(x0) / f1(x0));
con = Math.abs(x1 - x0);
x0 = x1;
}
while(con > E);
System.out.println("x = " + x1);
}
double f0(double x){
double y;
y = Math.sin(x) - 1/x;
return y;
}
double f1(double x){
double t;
t = Math.cos(x) + 1/ Math.pow(x, 3);
return t;
}
double f2(double x){
double r;
r = -Math.sin(x) - 2/Math.pow(x, 3);
return r;
}
}
public class main{
public static void main(String args[]){
double a, b, E;
Scanner in = new Scanner(System.in);
System.out.println("Enter begin of the segment: ");
a = in.nextDouble();
System.out.println("Enter end of the segment: ");
b = in.nextDouble();
System.out.println("Enter absolute error");
E = in.nextDouble();
new CalcFun(a, b, E);
in.close();
}
}
Розв’язування нелінійного рівняння в системі MatLab
/
Результат роботи програми
/
Висновок:
В даній лабораторній роботі я ознайомився з методами уточнення коренів нелінійних рівнянь з одним невідомим. Також навчився писати та підлагоджувати програми за алгоритмом методу Ньютона для уточнення коренів нелінійних рівнянь