Приклад приведення виразу до аналітичного вигляду Завдання
Вар. | Функція | Формула розкладу | Додаткові дані |
26 | x]9., 15.[ x= 0.05 |
Згідно поставленого завдання, аналітичний вид математичної функцій, що буде обчислюватися, буде мати вигляд( для наочності обчислень беремо 5-6 членів ряду):
Обчисливши коефіцієнти при степенях, отримаємо:
2.На основі отриманого виразу обчислюємо еталонне значення функції на проміжку зміни х, fe(x).( При реалізації на мові С, тип змінної х та значення fe встановлюємо у float, double)
Обчислені значення fe заносимо у відповідний стовпець Таблиці 1.
3.Припустимо, мінімальне обчислене значення fe рівне -3,12457862438 , а максимальне 8,54781235.
Для обчислення значення функції f8 та f16 потрібно виконати узгодження з розрядністю обчислених коефіцієнтів, змінної х та результату.
3.1 Приведення коефіцієнтів та змінної х до формату з фіксованою комою довжиною 8 біт( для f8).
Згідно завдання х міняється в межах 9..15 а вираз 4х/5 відповідно —7,2..12, результат , згідно припущення, коливається в межах -3,12457862438..8,54781235. Отже для представлення х, коефіцієнтів та результату потрібно вибрати кількість розрядів для цілої частини та дробової частини з врахуванням того що їх загальна кількість 8.
Оскільки в нас результат є знаковим то 1 біт виділяється для ознаки знаку, ціла частина виразу 4х/5 коливається від 7 до 12 (0111 до 1100) а результату від 3 до 8 (0011 до 1000). Таким чином для кодування цілої частини змінної х, коефіцієнтів та результату необхідно 4 двійкові розряди. Отже для дробової частини залишається 3 розряди.
При використанні типів даних з рухомою комою не виникає проблеми з представленням чисел з великою кількістю чисел після коми( довгої дробової частини). При використанні форматів з фіксованою комою необхідно виконати переведення з числа у фіксований формат.
Для наших даних переведення виконується наступним чином:
Ціла частина виразу 4х/5, коефіцієнтів та результату переводиться в 2-ву систему числення ( згідно з правила переведення)- в даному випадку ціла частина всіх значень має займати 4 розряди, у разі малого числа виконується доповнення нулями.
Для х=9, 4х/5 =7,2 , ціла частина 7 рівна 111, доповнивши нулями отримаємо 0111
Дробова частина виразу 4х/5, коефіцієнтів та результатів переводиться у 2-ву систему числення ( згідно з правила переведення дробової частини)- в даному випадку дробова частина має займати не більше 3 розрядів.
Для х=9, 4х/5 =7,2 , дробова частина 0,2 рівна 001.
Таким чином число 7,2 в 2-вій системі числення у форматі з фіксованою комою ( 8 біт) рівна 0111.001 а враховуючи що в нас знакові дані то 00111.001.
Оскільки засоби мови С не мають можливості працювати з форматами з фіксованою комою то приходиться додатково проводити перерахунок чисел з одного формату в інший. Тобто якщо результат 00111.001 перевести в 10- ву систему числення то отримаємо +7,125. Тобто число 7,2 неможливо точно представити у форматі з фіксованою комою(8 біт), виникає похибка.
Відповідно до цього замість 7,2 для обчислення результату у форматі з фіксованою комою будемо використовувати 7,125.( така сама процедура виконується для всіх коефіцієнтів розкладу та значень виразу 4х/5 для всіх х). Крім того у виразі містяться операції множення, піднесення до степеня та додавання, тому необхідно виконувати переведення у фіксований формат кожного проміжного результату, з врахуванням того,що ми зафіксували кількість біт на цілу частину 4 біти, на дробову 3 і на знак 1. Можлива ситуація коли всі змінні та коефіцієнті додатні тоді знаковий розряд можна відкинути і використовувати всі 8 розрядів для представлення цілої та дробової частини. У випадках коли всі змінні та результати не містять цілої частини то для її представлення немаж потреби виділяти біти і всі 8 біт виділяються для представлення дробової частини та знаку.
Використовуючи перевід у фіксований формат( 8 біт) обчислюємо значення виразу f8 для всіх значень х із заданого проміжку.
Результати обчислень заносимо в таблицю 1 у відповідний стовпець.
3.2 Приведення коефіцієнтів та змінної х до формату з фіксованою комою довжиною 16 біт( для f16).
Згідно завдання х міняється в межах 9..15 а вираз 4х/5 відповідно —7,2..12, результат , згідно припущення, коливається в межах -3,12457862438..8,54781235. Отже для представлення х, коефіцієнтів та результату потрібно вибрати кількість розрядів для цілої частини та дробової частини з врахуванням того що їх загальна кількість 16.
Оскільки в нас результат є знаковим то 1 біт виділяється для ознаки знаку, ціла частина виразу 4х/5 коливається від 7 до 12 (0111 до 1100) а результату від 3 до 8 (0011 до 1000). Таким чином для кодування цілої частини змінної х, коефіцієнтів та результату необхідно 4 двійкові розряди. Отже для дробової частини залишається 16-1-4=11 розрядів.
При використанні типів даних з рухомою комою не виникає проблеми з представленням чисел з великою кількістю чисел після коми( довгої дробової частини). При використанні форматів з фіксованою комою необхідно виконати переведення з числа у фіксований формат.
Для наших даних переведення виконується наступним чином:
Ціла частина виразу 4х/5, коефіцієнтів та результату переводиться в 2-ву систему числення ( згідно з правила переведення)- в даному випадку ціла частина всіх значень має займати 4 розряди, у разі малого числа виконується доповнення нулями.
Для х=9, 4х/5 =7,2 , ціла частина 7 рівна 111, доповнивши нулями отримаємо 0111
Дробова частина виразу 4х/5, коефіцієнтів та результатів переводиться у 2-ву систему числення ( згідно з правила переведення дробової частини)- в даному випадку дробова частина має займати не більше 11 розрядів.
Для х=9, 4х/5 =7,2 , дробова частина 0,2 рівна 00110011001.
Таким чином число 7,2 в 2-вій системі числення у форматі з фіксованою комою ( 16 біт) рівна 0111.00110011001 а враховуючи що в нас знакові дані то 00111.00110011001.
Оскільки засоби мови С не мають можливості працювати з форматами з фіксованою комою то приходиться додатково проводити перерахунок чисел з одного формату в інший. Тобто якщо результат 00111.001 перевести в 10- ву систему числення то отримаємо +7,19970703125. Тобто число 7,2 неможливо точно представити у форматі з фіксованою комою(16 біт), виникає похибка, але в порівнянні з 8-ми бітним представленням похибка суттєво менша.
Відповідно до цього замість 7,2 для обчислення результату у форматі з фіксованою комою будемо використовувати 7,19970703125.( така сама процедура виконується для всіх коефіцієнтів розкладу та значень виразу 4х/5 для всіх х). Крім того у виразі містяться операції множення, піднесення до степеня та додавання, тому необхідно виконувати переведення у фіксований формат кожного проміжного результату, з врахуванням того,що ми зафіксували кількість біт на цілу частину 4 біти, на дробову 3 і на знак 1. Можлива ситуація коли всі змінні та коефіцієнті додатні тоді знаковий розряд можна відкинути і використовувати всі 8 розрядів для представлення цілої та дробової частини. У випадках коли всі змінні та результати не містять цілої частини то для її представлення немає потреби виділяти біти і всі 16 біт виділяються для представлення дробової частини та знаку.
Використовуючи перевід у фіксований формат( 16 біт) обчислюємо значення виразу для всіх значень х із заданого проміжку.
Після обчислення всіх значень fe f8 f16 виконуємо обчислення абсолютної та відносної похибки проведених обчислень для всіх значень х з заданого діапазону .
На основі проведених розрахунків похибок вивести відповідні графіки.
Схема обчислень для режиму з фіксованою крапкою повинна базуватись на перетворенні у фіксований формат( перетворення у двійкову систему – перетворення назад в десяткову) при кожній операції множення та додавання, а програмно має здійснюватись за допомогою спеціально розроблених функцій.
Таблиця коефіціентів Бернулі
Коефіціенти від непарних n(крімn=1) рівні 0.
Таблиця коефіціентів Ейлера
n E(n)
1 1
2 1
3 1
4 1
5 4
6 1
7 1
8 11
9 11
10 1
11 1
12 26
13 66
14 26
15 1
16 1
17 57
18 302
19 302
20 57
21 1
22 1
23 120
24 1191
25 2416
26 1191
27 120
28 1
29 1
30 247
31 4293
32 15619
33 15619
34 4293
35 247
36 1
37 1
38 502
39 14608
40 88234
41 156190
42 88234
43 14608
44 502
45 1
46 1
47 1013
48 47840
49 455192
50 1310354
51 1310354
52 455192
53 47840
54 1013
- Міністерство Освіти і Науки України Національний Університет “Львівська Політехніка”
- Аналіз обчислювальної похибки при виконанні базових операцій алгоритмів цифрової обробки сигналів. Обчислення математичних функцій
- Мета роботи
- Загальні теоретичні відомості
- Порядок виконання роботи
- Зміст звіту до лабораторної роботи
- Контрольні запитання
- Література
- Варіанти завдань до лабораторної роботи
- Приклад приведення виразу до аналітичного вигляду Завдання