МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра БІТ
/
Звіт
до лабораторної роботи №1
з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем»
на тему: «Методи уточнення коренів нелінійних рівнянь»
Метод Хорд
ЛЬВІВ 2016
Мета роботи – ознайомлення з методами уточнення коренів нелінійних рівнянь з одним невідомим.
Теоретичні відомості
Метод хорд
Метод забезпечує швидшу збіжність, ніж метод поділу навпіл. Ідея методу в тому, що на проміжку дугу кривої заміняють хордою, яка її стягує. За наближене значення кореня приймають точку перетину хорди з віссю абсцис (точка А на Рис.1)
Рис. 1
Рівняння прямої, яка проходить через точки і :
Точка А є наближеним коренем , яка була знайдена з рівняння прямої, якщо покласти , :
Далі застосовуємо метод хорд до відрізку :
Таким чином, ітераційна формула методу хорд має вигляд:
(4)
За наведеними формулами обчислюють корені також і тоді, коли ; ; ; . Тобто коли - застосовують (4).
У випадку, коли перша і друга похідні мають різні знаки, тобто , ітераційна формула має інший вигляд:
(5)
Метод хорд – це метод одностороннього наближення. Один край відрізку фіксується, а інший змінюється. Зауважимо, що формули (4) та (5) тотожні. Узагальнити їх можна так. Якщо виконується співвідношення (6):
, (6)
фіксується точка а: . В іншому випадку фіксується точка b: . При цьому ітераційна формула методу хорд має вигляд:
, (7)
де початкове значення - край відрізка , протилежний до обраного
Обчислення виконуються доти, доки різниця між черговими i не стане меншою за задану граничну абсолютну похибку Е:
Завдання
Знайти корінь рівняння з граничною абсолютною похибкою Е = 10–4, відокремлений на відрізку [a, b]. Методи чисельного розв’язування задаються викладачем.
Варіант
Рівняння
Відрізок
13
x3 + x + 3 = 0
[–2;–1]
Блок-схема алгоритму програми
Список індефікаторів, констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення
а – змінна дійсного типу, яка є початком проміжку;
b – змінна дійсного типу, яка є кінцем проміжку;
Е – змінна дійсного типу, яка є граничною абсолютною похибкою;
Cout – метод виводу даних;
Cin – метод вводу даних дійсного типу;
Текст програми
#include <iostream>
#include <cmath>
using namespace std;
double func(double x)
{
double R = pow(x, 3) + x + 3;
return R;
}
double FinFun(double lower, double higher, double AbsErr)
{
while (fabs(higher - lower) > AbsErr)
{
lower = higher - (higher - lower) * func(higher) / (func(
higher) - func(lower));
higher = lower - (lower - higher) * func(lower) / (func(
lower) - func(higher));
}
return higher;
}
int main()
{
double a, b, E;
cout << "Enter the beginning of the segment: ";
cin >> a;
cout << "Enter end of the segment: ";
cin >> b;
cout << "Enter absolute error: ";
cin >> E;
cout << FinFun(a, b, E) << "\n";
return 0;
}
Розв’язування нелінійного рівняння в системі MatLab
/
Результат роботи програми
/
Висновок:
В даній лабораторній роботі я ознайомився з методами уточнення коренів нелінійних рівнянь з одним невідомим. Також навчився писати та підлагоджувати програми за алгоритмом методу Ньютона для уточнення коренів нелінійних рівнянь