4642

Наближені обчислення, рекурентні співвідношення, обґрунтування коректності

Лабораторная работа

Информатика, кибернетика и программирование

Наближені обчислення, рекурентні співвідношення, обґрунтування коректності Постановка задачі Завдання:Обчислити значень функції на інтервалі Результати оформити у вигляді таблиці...

Украинкский

2012-11-23

108.5 KB

15 чел.

Наближені обчислення, рекурентні співвідношення, обґрунтування коректності

  1.  Постановка задачі

Завдання: Обчислити  значень функції = на інтервалі 

Результати оформити у вигляді таблиці 1:

 

 

 

 Похибка

 

 

Маємо:

 - наближені значення функції значення функції , обчислені за допомогою стандартних функцій компілятора;

- наближені значення функції , обчислені за допомогою певного степеневого ряду ;

похибка – величина ;

- кількість ітерацій або кількість членів в частковій сумі відповідного ряду.

Вказівки:

  •  кількість точок на інтервалі   не менше 10, розподіл точок не має значення (може бути як рівномірним, так і випадковим);
  •  для тригонометричних функцій значення аргументу приводити до величини ;
  •  для показникових функцій виділяти цілу частину аргументу, а ряди використовувати тільки для дробової частини;
  •  у якості точності  взяти “машинний нуль”  в околі 1.0 ;
  •  змінні з індексами не використовувати.
  1.  
    Аналіз задачі

План

  1.  Зчитуємо з екрану n-необхідну кількість обчислень.
    1.  Знаходимо машинний нуль
    2.  Для кожно значення х (вибираємо n значень з відомого інтервалу)
    3.   за формулою Тейлора розкладаємо як

3.1) Знаходимо наближені значеня функції f(x), обчислені за допомогою стандартних функцій компілятора

3.2) Знаходимо наближені значеня функції f(x), обчислені за допомогою певного степеневого ряду, записуючи рекурентне співвідношення. В циклі створюємо лічильник, щоб порахувати кількість ітерацій.

3.3) Знаходимо похибку: р =

3.4)Виводимо результати в таблицю.


3)
Лістинг програми

#include<stdio.h>

#include<math.h>

#include<conio.h>

main()

{

float x, a, b, fx, gx, p, n, m;

float s;

int k=1;

clrscr();

 while (1+s !=1)

 s=s/2;

printf("");

printf("┌───┬─────┬────┬────┬──┐\n");

printf(" x f(x) ┼ g(x)  Похибка┼ n ┤\n");

printf("├───┼─────┼────┼────┼──┤\n");

for (x=0.523; x<=0.785; x+=0.025 )

{

n=sin(x);

m=sqrt(x);

fx=n+m;

a=x;

k=2;

gx=sqrt(x)+a;

p=s;

while (k>=2 && s<=p)

 {

 a=-(a*(x*x/(2*n-2)*(2n-1)));

 g(x)=g(x)+a;

 p=fabs(gx-fx);

 k++;

 }

printf(" ├ %.3f │ %.2f │ %.2f │ %.8f │ %u ┤\n", x, fx, gx, p , k);}

printf(" └────┴────┴────┴────┴────┘\n");

return(0);

}

**Використовуємо змінні:

х – аргумент;

fx обчислюється за допомогою стандартних функцій компілятора;

gx – рекурентне співвідношення;

р – похибка;

s – машинний нуль;

k – кількість ітерацій;

4)Тестування програми

Тестування виконане для 10 значень із даного інтервалу, результати подані в таблиці.

У середовищі Turbo C вони виглядають ось так:


5. Документування програми

Мова інтерфейсу програми – англійська.

1)Інсталяція та виконання програми

Для використання програму необхідно запустити. Вона виведе таблицю результатів.

2) Склад пакету

Пакет включає в себе - source файл: лабораторної роботи та відкомпільовану програму

3) Використання програми

Програма потребує вводу одного натурального числа – кількості значень функції.

На виході програма виводить таблицю, що складається з таких стовпчиків:

Х – значення х;

F(x) – значення функції, знайдене за допомогою стандартних функцій компілятора;

G(x) – значення функції, обчислене за допомогою певного степеневого ряду, з використанням рекурентної функції;

ПОХИБКА – похибка;

n – кількість ітерацій при обчисленні.

 6. Висновок

 Під час виконання поставлених завдань було реалізоване знаходження функції за допомогою стандартних функцій компілятора та з використанням ітераційної формули, було проведене тестування та від лагодження побудованої програми та її наступне документування. Точність обчислення даної функції стандартними засобами компілятора майже не відрізняється від обчислення її за допомогою формули, тому що обрана формула обчислення використовується в FPU процесора. Похибка, якщо вона існує, близька до машинного нуля. Але бачимо, що з невеликим збільшенням Хn, відповідно з’являється похибка, яка завжди однакова. Це може бути недолік формули або АЛП комп’ютера. Але при невеликих значеннях ця похибка може нехтуватися. Також плюс у обчисленні цією формулою – швидкість у декілька кроків.

 7. Література

1) В. В. Зубенко, Г. А. Кияшко. Методичні рекомендації до виконання практичних і лабораторних робіт з дисципліни «Програмування» - К.: «Київський університет», 2005.

2) Б. Керниган, Д. Ритчи. «Мова програмування СІ » - М.: Фінанси і статистика,1992.

3) Т. А. Павловська. «С\С++. Програмування мовою високого рівня» - М.: 2005.


 

А также другие работы, которые могут Вас заинтересовать

62639. Урок физической культуры – урок здоровья 23.68 KB
  По данным социологических исследований отмечается что у активно занимающихся физической культурой и спортом в значительно меньшей степени более чем на 20 проявляется психологическое и особенно общее утомление...
62640. Совершенствование техники передачи, ловли и ведения баскетбольного мяча 83 KB
  Ходьба: обычная по залу; на носках руки вверх; на пятках руки за голову в сторону; ходьба на внешней стороне стопы; ходьба на внутренней стороне стопы. Передвижения приставными шагами правым левым боком с имитацией передач бросков от груди...
62641. Прохождение полосы препятствий. Совершенствование баскетбольной техники 55.13 KB
  Цель: обучить навыкам игры в баскетбол Задачи: Образовательные: совершенствовать технику ведения мяча правой и левой рукой в движении. Оздоровительные: развивать быстроту реакции Воспитательные: содействовать развитию внимания и воспитанию чувства коллективизма...
62642. Совершенствование навыка ходьбе на лыжах. Продвижение скользящим шагом до 1000 метров 16.61 KB
  Продвижение скользящим шагом до 1000 метров Задачи урока: образовательные: Совершенствование умения передвижения скользящим шагом до 1000 метров воспитательные: воспитывать трудолюбие настойчивость в достижении цели.
62643. Техника передачи мяча двумя руками от груди после ведения на месте, в шаге 110.84 KB
  Стоя ноги вместе руки на поясе стоя ноги на ширине плеч руки согнуты в локтях перед грудью стоя ноги на ширине плеч руки в стороны кисти сжаты в кулак стоя ноги на ширине плеч руки на поясе.
62647. Первые кругосветные путешествия 21.7 KB
  Дети кто знает что такое путешествие А кто ни будь из вас сам путешествовал И куда Как долго вы туда добирались А на чем А знаете что когда-то путешествие длилось 23 года и путешествовали на кораблях 3. Кругосветное путешествие это путешествие вокруг земного шара.