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.


 

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

69320. Ітераційні методи розв’язування СЛАР 307.5 KB
  Метод простої ітерації умови збіжності Для розріджених великих систем рівнянь досить добрі результати можна отримати як це було показано в попередньому параграфі застосуванням методу визначальних величин.
69321. Властивості власних значень і власних векторів матриці 115 KB
  Метод характеристичного рівняння матриці Коли на деякий вектор х діє матриця А то в загальному випадку отримується новий вектор у = Ах який відрізняється від вектора х як своїм модулем розміром так і орієнтацією в багатовимірному просторі.
69322. Степеневий метод обчислення власних значень 149.5 KB
  Для оцінки окремих власних значень матриці можна використовувати теорему Гершгоріна яка стверджує що матриця А порядку nxn має n власних значень кожне з яких лежить в межах круга: 4. Якщо λ власне значення матриці то завжди можна вибрати відповідний йому...
69323. Власні значення симетричних матриць 174 KB
  Остаточно маємо формули алгоритму Ланцош довільний нормований вектор; При цьому вважається, що Якщо то було випадково взято ортогональним одному з власних векторів. Тоді Т розпадається на дві тридіагональної матриці; характеристичний поліном – на добуток двох поліномів...
69324. LR-та QR-алгоритми обчислення власних значень 325.5 KB
  Цей метод базується на перетворенні подібності матриці А таким чином щоб власні значення матриці отриманої внаслідок перетворення знаходилися простіше чим для початкової матриці. Найбільш просто обчислювати власні значення трикутної матриці для якої...
69325. Інтерполяція алгебраїчними поліномами. Інтерполяційні поліноми Лагранжа та Ньютона 213 KB
  Таку заміну називають наближенням функції fx. Тоді при вирішенні задачі замість функції fx оперують з функцією φx а задача побудови функції φx називається задачею наближення. Такий спосіб наближення базується на теоремі Вейерштраса про наближення неперервної функції...
69326. Кусково-поліноміальна інтерполяція. Інтерполяція сплайнами 507 KB
  Поліном 3-го ступеня будемо називати кубічним сплайном Sx що відповідає вихідної функції fx і заданий на сітці впорядкованих вузлів =x0 x1 xn=b якщо задовольняютьсянаступні умови: а. Будемо виводити формулу для рівновіддалених вузлів коли: xi xi 1 = h Знайдемо значення функції...
69327. Збіжність і точність процесу інтерполяції. Середньоквадратичне наближення 297 KB
  Похибки інтерполяційної формули Лагранжа Різницю між функцією fx і її інтерполяційним наближенням Lnx називають залишковим членом інтерполяційноїформули або похибкою інтерполяції. 8 зрозуміло що у вузлах інтерполяції ця похибка дорівнює нулю тому похибку...
69328. Методи розв’язування нелінійних рівнянь. Збіжність методів розв’язування нелінійних рівнянь 806 KB
  Оскільки оточуючий нас світ нелінійний, математичні моделі його об'єктів і процесів визначаються переважно через нелінійні рівняння: алгебраїчні і трансцендентні для аналізу сталих станів, і диференційні для аналізу динамічних процесів. Розв’язок нелінійних алгебраїчних рівнянь...