Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра БІТ
/
Звіт
до лабораторної роботи №1
з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем»
на тему: «Методи уточнення коренів нелінійних рівнянь»
Метод Хорд
ЛЬВІВ 2016
Мета роботи – ознайомлення з методами уточнення коренів нелінійних рівнянь з одним невідомим.
Теоретичні відомості
Комбінований метод хорд та дотичних
Метод хорд та дотичних дають наближення кореня з різних сторін (менше і більше від істинного значення). Тому доцільно використати обидва способи одночасно, завдяки чому уточнене значення кореня одержується швидше.
Нехай – початкове наближення кореня за методом хорд, а – за методом дотичних (див.рис.4).
Тоді провівши хорду та дотичну, одержимо відповідні наближення за методом хорд
і за методом дотичних
.
Або в загальному випадку
(11)
(12)
Рис. 4
Якщо припустима абсолютна похибка E заздалегідь задана, то процес наближення припиняється, доки не буде виявлено, що
Після закінчення процесу за значення кореня х* краще взяти середнє арифметичне одержаних останніх значень
Кращий результат дає наступний порядок обчислень:
Знаходиться наближене значення кореня за методом Ньютона. При цьому початкове наближення має бути обране так, щоб виконувалась умова (10). Отже якщо в точці x=b умова (10) не виконується, на етапі введення початкових даних в поданому нижче прикладі алгоритму необхідно ввести ;
Знаходиться наближене значення кореня за методом хорд, використовуючи замість значення , знайдене за методом Ньютона, і процес повторюється до одержання бажаної похибки обчислень.
; .
Завдання
Знайти корінь рівняння з граничною абсолютною похибкою Е = 10–4, відокремлений на відрізку [a, b]. Методи чисельного розв’язування задаються викладачем.
Варіант
Рівняння
Відрізок
4
cos x – 1/(x + 2) = 0
[1;1.5]
Блок-схема алгоритму програми
Список індефікаторів, констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення
а – змінна дійсного типу, яка є початком проміжку;
b – змінна дійсного типу, яка є кінцем проміжку;
Е – змінна дійсного типу, яка є граничною абсолютною похибкою;
Cout – метод виводу даних;
Cin – метод вводу даних дійсного типу;
Текст програми
#include <iostream>
#include <cmath>
using namespace std;
double func(double x)
{
return (cos(x) - 1 / (x + 2));
}
double derFunc(double x){
return (-sin(x) + 1 / pow((x + 2), 2));
}
double CombMet(double a, double b, double eps)
{
double HordX = a;
double Dot_X = b;
do
{
Dot_X = Dot_X - func(Dot_X) / derFunc(Dot_X);
HordX = HordX - func(HordX) * (Dot_X - HordX) / (func(Dot_X) - func(HordX));
} while (abs(HordX - Dot_X) > eps);
return (HordX + Dot_X) * 0.5;
}
int main()
{
double x, a, b, eps;
cout << "Enter begin of the segment : ";
cin >> a;
cout << "Enter end of the segment : ";
cin >> b;
cout << "Enter abolute error : ";
cin >> eps;
cout <<"X = " << CombMet(a, b, eps) << "\n";
return 0;
}
Розв’язування нелінійного рівняння в системі MatLab
/
Результат роботи програми
/
Висновок:
В даній лабораторній роботі я ознайомився з методами уточнення коренів нелінійних рівнянь з одним невідомим. Також навчився писати та підлагоджувати програми за алгоритмом методу Ньютона для уточнення коренів нелінійних рівнянь