Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра КСА
Звіт
з лабораторної роботи №3
з курсу “Комп’ютерні методи дослідження систем керування”
МЕТОДИ УТОЧНЕННЯ КОРЕНІВ
НЕЛІНІЙНИХ РІВНЯНЬ
Варіант №4
Львів-2014
Мета роботи:
Вивчити основні методи уточнення коренів нелінійних рівнянь з одним невідомим.
Завдання:
Знайти корінь нелінійного рівняння методом хорд з пошуком ділянки локалізації
№4
/
Код програми:
#include "conio.h"
#include "math.h"
#include "iostream"
#include <stdlib.h>
#include <stdio.h>
using namespace std;
int main()
{
setlocale(0,"");
double perevirka = 0,x,xold=0, fx, a=-1.5, b=0, h=0.001, fa, fb, eps=0.0001;
int i=0;
//Пошук ділянки локалізації
b=a+h;
fa=cos(a)-(1/(a+2));
fb=cos(b)-(1/(b+2));
//Задания умови, при якій потрібно рухатися назад в від'ємним кроком
if (fabs(fb)>fabs(fa) && fa*fb>0)
{h=(-1)*h;}
b=a+h;
fb=cos(b)-(1/(b+2));
//Задания циклу, для виконання умови
while (fa*fb>0)
{
a=b;
b=a+h;
fa=cos(a)-(1/(a+2));
fb=cos(b)-(1/(b+2));
i=i+1;
}
cout<<"Кiлькiсть iтерацiй: "<<"["<<i<<"]"<<endl;
//Ітераційний процес
x = a;
do
{
xold=x;
fa=cos(a)-(1/(a+2));
fb=cos(b)-(1/(b+2));
x = a-fa*((b-a)/(fb-fa));
fx=cos(x)-(1/(x+2));
if(fx*fa>0) {a=x;}
else {b=x;}
}while (fabs(((x-xold)/x))<eps); //Умова збіжності
cout<<"Корiнь рiвняння: "<< x << endl;
perevirka = cos(x)-(1/(x+2));
printf ("Перевiрка: %2.8f \n", 2.05797e-007);
}
Результати:
/
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!