DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт про виконання лабораторної роботи з курсу Дослідження комп'ютерних систем штучного інтелекту: Задача пошуку нулів функції на відрізку

Оригінальна назва роботи

Задача пошуку нулів функції на відрізку.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2007
Тип роботи:
Лабораторна робота
Предмет:
Дослідження комп'ютерних систем штучного інтелекту
Група:
КСМм-1
Коротко про документ

Про що ця робота

У звіті наведено розв'язання задачі пошуку нулів функції на відрізку за допомогою алгоритму грубого та уточнюючого проходу. Програмна реалізація написана мовою C++ для дослідження заданої тригонометричної функції.

У роботі розглядаються

  • Чисельні методи
  • Пошук нулів функції
  • Алгоритми пошуку
  • Програмування на C++
  • Дослідження систем

Зміст і розділи

  1. Мета
  2. Завдання
  3. Лістинг програми
  4. Графічне подання функції
  5. Результати виконання роботи
Для кого:Студенти технічних спеціальностей вищих навчальних закладів, які вивчають методи обчислень та штучний інтелект.
Викладачі:Викладач кафедри електронних обчислювальних машин

Ключові поняття

нулі функціїкрок проходууточнення нулятригонометрична функціяінтервалфункція mainалгоритмпрограма на C++наближені обчисленнядіапазон пошуку

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання лабораторної роботи з курсу „ Дослідження комп'ютерних систем штучного інтелекту ” Тема: Задача пошуку нулів функції на відрізку Львів – 2007 Мета: Ознайомитись із алгоритмами розв’язання задачі пошуку нулів функції на заданому відрізку та написати програму, яка б реалізовувала один з цих алгоритмів. Завдання Написати програму, яка шукає нулі функції cos(1/X) - X*sin(5/X) на заданому інтервалі із заданою точністю. Лістинг програми // max_AI_lab1.cpp #include "stdafx.h" #include "stdio.h" #include "math.h" // діапазон пошуку нулів #define LEFT -0.01 #define RIGHT 0.01 double step = 0.0001; // крок основного проходу double stepE = 0.000000001; // крок додаткового (уточнюючого) проходу double Result; // сюди зберігається результат double func (double X) // власне формула обчислення функції { return ( cos(1/X) - X*sin(5/X) ); } int isZero (double); // пошук нулів функції - загальний "грубий" прохід double extra (double, double); // знаходження точної позиції даного // конкретного нуля // ‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡ MAIN ‡‡‡ int main(int argc, char* argv[]) { double i; long znum=1,totalops=0; for ( i = LEFT ; i < RIGHT ; i += step) if ( isZero(i) == 1 ) { printf("got a zero #%04d @ %16.9f\n",znum,Result); znum++; } return 0; } // ‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡ isZero ‡‡‡ "грубий прохід" int isZero (double var) { double y, yPrev; double varPrev = var - step; y = func (var); // знач. ф-ції в даній точці yPrev = func (varPrev); // знач. ф-ції в попередній точці if ( ( (y > 0) && (yPrev < 0) ) || // перетин нуля з "+" в "-" ( (y < 0) && (yPrev > 0) ) ) // перетин нуля з "-" в "+" { // більш точне визначення нуля в заданому діапазоні Result = extra (varPrev,var); return 1; } else if (y==0) // bull's eye! { Result = var; return 1; } return 0; } // ‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡ extra ‡‡‡ уточнення нуля double extra (double varStart, double varStop) // пошук з підвищеною точністю { double i; for ( i=varStart ; i<=varStop ; i+=stepE) { // printf("."); double y = func(i); double yPrev = func(i-stepE); if ( ( (y > 0) && (yPrev < 0) ) || ( (y < 0) && (yPrev > 0) ) ) return ( i - stepE/2 ); else if ( y==0 ) return ( i ); else if ( yPrev==0 ) return ( i-stepE ); } return 0; } Графічне подання функції на досліджуваному відрізку  Результати виконання роботи Знайдені програмою нулі функції cos(1/X) - X*sin(5/X) на відрізку [-0.01; 0.01]:
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!