Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра КСА
Звіт
з лабораторної роботи №3
з курсу “Комп’ютерні методи дослідження систем керування”
на тему: “ МЕТОДИ УТОЧНЕННЯ КОРЕНІВ НЕЛІНІЙНИХ РІВНЯНЬ”
Варіант 2
Перевірив: Яцук Ю. В.
Львів-2014р.
Мета роботи: вивчити основні методи уточнення коренів нелінійних рівнянь з одним невідомим.
1. Завдання:
№
п/п
Завдання
(метод та проміжок локалізації кореня)
Група 1
2
Метод поділу ділянки навпіл з пошуком ділянки локалізації
№2
Код програми:
#include "stdafx.h"
#include "conio.h"
#include "math.h"
#include "iostream"
using namespace std;
void main()
{
double x, i=0, fx, a=0.1, b, h=0.001, fa, fb, eps=0.0001;
b=a+h; //Табуляція функції
fa=log(a)+sin(a/4);
fb=log(b)+sin(b/4);
//Знаходження b
//Задання умови, при якій потрібно рухатися назад з від'ємним кроком –h
if (fabs(fb)>fabs(fa) && fa*fb>0)
h=-1*h;
b=a+h;
fa=log(a)+sin(a/4);
fb=log(b)+sin(b/4);
while (fa*fb>0) //Задання циклу, для виконання умови
{
a=b;
b=a+h;
fa=log(a)+sin(a/4);
fb=log(b)+sin(b/4);
i=i+1;
}
i=i+1;
cout<<endl<<"[ Kilkist iteraciy ] - "<<"["<<i<<"]"<<endl;
do //Основний цикл, для знаходження x
{ x=(b+a)/2;
fa=log(a)+sin(a/4);
fx=log(x)+sin(x/4);
if (fx*fa>0) //Необхідна умова для знаходження х
a=x;
else
b=x;
}
while (fabs(fx)<eps); //Умова збіжності
cout <<"[ Krok ] = " << h << endl;
cout <<"[ Korin rivniania ] = " << x << endl;
getchar();
}
Результат роботи програми:
Висновок:
Вивчив основні методи уточнення коренів нелінійних рівнянь з одним невідомим.
Методом поділу ділянки навпіл з пошуком ділянки локалізації.