DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Лабораторна робота № 1

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

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра СКС

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

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Алгоритми та методи обчислень

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

Міністерство освіти та науки України НТУУ “КПІ” Факультет прикладної математики Кафедра “СКС” Лабораторна робота № 1 з дисципліни „Алгоритми та методи обчислення” Київ 2011 ОБЧИСЛЕННЯ ЗНАЧЕНЬ ФУНКЦІЇ Мета роботи – дослідити особливості наближення функцій за допомогою рядів, виконати аналіз похибок наближення. Варіант 14 14 cosx [-31.3; -4.9]   Метод обчислення:  де   (k = 1, 2, …, n – 1) і   Файл main.cpp: /************************************************************************ *file: main.cpp *author: Stelmakh Georgiy, KB-93 *written: 16/09/2011 *last modified: 16/09/2011 ************************************************************************/ #include <cstdlib> #include <iostream> #include <math.h> using namespace std; int sign; // Positive or Negative X indicator //Ranges double a = - 31.3; double b = - 4.9; double x; int k, n_len; double tmp, U; //Determinating X sign void SignX(){ sign = 1; double pi = 3.1415926535897932384626433832795; if( x < 0 ){ x = -x; } while( x > pi * 2 ){ x -= pi * 2; } if( x >= pi ){ x -= pi; sign = -1; } } //1st TASK void FirstCos(){ tmp = 0; double eps = 1E-2; U = 1; k = 1; x = ( b - a ) / 2; printf( "1st task: x := %4.1f cos( x ) := %4.6f\n\n", x, cos( x ) ); printf( "%-10s%-10s%-15s%-20s%-20s", "EPS", "| n", "| cos(x[i])", "| Absolute error", "| Remainder term" ); printf( "\n------------------------------------------------------------------------\n" ); double real = x; SignX(); while( eps > 1E-14 ){ while( abs( U ) > eps ){ tmp += U; U *= - x * x / ( 2 * k * ( 2 * k - 1 ) ); k++; } // Storing n count for eps = 10^(-8) if( eps == 1E-8 ){ n_len = k - 1; } printf( "%.0e%5s", eps, "|" ); printf( "%2d%8s ", k - 1, "|" ); printf( "%f%7s", sign * tmp, "| " ); printf( "%.5e%7s ", abs( sign * tmp - cos( real ) ), "|" ); printf( "%.5e\n", abs( U ) ); eps /= 1E3; // Changing by 10^(-3) } printf( "\n" ); } //2nd TASK void SecondCos(){ printf( "2nd task:\n\n" ); printf( "%-7s%-15s%-14s%-20s%-20s", "x[i]", "| cos(x[i])", "| f", "| Absolute error", "| Remainder term" ); printf( "\n----------------------------------------------------------------------------\n" ); for( int i = 0; i <= 10; i++ ){ double h = ( b - a ) / 10; x = a + h * i; double Xi = x; printf( "%-.2f%2s", x, " " ); printf( "%9f%7s", cos( x ), " " ); SignX(); tmp = 0; U = 1; for( int n = 1; n <= n_len ; n++ ){ tmp += U; U *= - x * x / ( 2 * n * ( 2 * n - 1 ) ); } printf( "%9f%7s", sign * tmp, " " ); printf( "%.5e%7s ", abs( sign * tmp - cos( Xi ) ), " " ); printf( "%.5e\n", abs( U ) ); } printf( "\n" ); } int main(){ //1st TASK FirstCos(); //2nd TASK SecondCos(); system( "pause" ); return 0; } Вхідні дані та результат: / Графік залежності абсолютної похибки від X: /
Антиботан аватар за замовчуванням

28.03.2013 01:06

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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