трусики женские украина

На головну

 Обчислення елементарних функцій - Радіоелектроніка

Міністерство загальної та професійної образованіяТаганрогскій Державний Радіотехнічний університет

Кафедра мікропроцесорних систем

Курсова робота

по курсу: Основи обробки даних

на тему: Обчислення елементарних функцій

Виконав:

студент групи Р-106

Рябчевський К.Л.

Перевірив:

к.т.н.д. Ледовських М.І.

Таганрог 1998

Зміст

1. Завдання

2. Анотація

3. Введення

4. Теоретичні основи таблично - алгоритмічного методу

5. Розрахунок параметрів алгоритму

5.1.Расчет величин S і h

5.2.Вибор масштабних коефіцієнтів

6. Масштабування алгоритму

7. Граф - схема програми

8. Лістинг і опис підпрограми-функції

9. Лістинг програми

10.Результати роботи програми

11.Заключеніе

12.Спісок літератури

1. Завдання

1. Використовуючи літературу та методичні вказівки виконати проектування алгоритму обчислення елементарної функції з використанням таблично - алгоритмічного методу відповідно до заданого варіантом. Алгоритм повинен орієнтуватися на цілочисельні обчислення в форматі байт зі знаком в додатковому коді.

2. Виконати масштабування алгоритму.

3. Розробити Граф - схему алгоритму для реалізації в целочисленном режимі.

4. Розробити підпрограму-функцію з використанням цілочисельних операторів мови Turbo Pascal.

5. Розробити програму для обчислення функції на заданому інтервалі апроксимації та експериментального аналізу, повною, методичної та обчислювальної похибки.

6. Побудувати графіки функцій і всіх похибок на інтервалі апроксимації.

7. Зіставити експериментальні значення похибки з теоретичними оцінками і зробити висновки.

Функція

Інтервал апроксимації [0,0.5]

Розрядність 8

Метод знаходження поправки одночленним ряд

Тейлора

3. Введення

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

Елементарні функції діляться на алгебраїчні і трансцендентні. Обчислення значень елементарних функцій один з найбільш часто зустрічаються типів обчислювальних операцій, які виконуються в мікро ЕОМ при вирішенні завдань управління рухом роботів-маніпуляторів, навігації, стабілізації і т. Д. У цьому зв'язку важливого значення набуває розробка алгоритмів обчислення елементарної функції для їх програмної і апаратної реалізації, забезпечення максимальної швидкодії.

Алгоритм обчислення елементарної функції в мікроЕОМ охоплює три наступних типи:

1) привид аргументу до інтервалу апроксимації (зменшення інтервалу зміни аргументу);

2) обчислення елементарної функції на інтервалі апроксимації;

3) пост-обробка.

Завдання проектування алгоритму обчислення елементарної функції зводиться до знаходження алгоритму приведення аргументу до інтервалу апроксимації і вибору чисельного методу для наближеного обчислення значень цієї функції на інтервалі апроксимації. Приведення аргументу до інтервалу апроксимації є обов'язковим етапом як при використанні ітеративних методів обчислення елементарних функцій, так і при багаточленної і раціональної апроксимації. Цей прийом дозволяє скоротити число операцій необхідних для обчислення значення елементарної функції за рахунок зменшення кількості ітерацій або використання багаточленних і раціональних наближенні, що містять порівняно невелике число членів.

Спосіб зменшення інтервалу зміни аргументу залежить від властивостей функції. Якщо функція періодична, то має сенс обчислювати її тільки на одному періоді зміни аргументу. Якщо функція симетрична, то це властивість також можна використовувати для зменшення інтервалу. Існує поширений прийом зменшення діапазону зміни аргументу, який грунтується на використанні теорем додавання і множення елементарних функцій. Одним з найбільш простих і універсальних прийомів є розбиття всього діапазону зміни на ряд інтервалів (сегментна апроксимація). Зазвичай аргумент приводять до інтервалу [- 1, 1] або [0, 1]. Такий вибір пояснюється найкращою вивченістю поведінки функції на цих інтервалах, можливістю роботи в режимі з фіксованою точкою, наявністю точки нуль, яка для багатьох функцій є віссю симетрії, і тим, що на даних відрізках існують ортогональні многочлени.

Етапи приведення аргументу до інтервалу апроксимації та постаброботкі специфічні для кожної елементарної функції і мало залежить від обраного методу обчислень. Найбільшу частину виконання якого залежить насамперед від обраного методу обчислення елементарної функції. Метод повинен володіти високою швидкістю збіжності та вимагати для своєї реалізації мінімальної кількості арифметичних операцій, забезпечувати задану точність обчислення значень елементарної функції, бути універсальним.

Метод обчислення елементарних функцій можна розділити на дві групи: алгоритмічні та таблично алгоритмічні. Методи першої групи засновані на чисто алгоритмічних прийомах обчислень, які починаються "з нуля" і внаслідок цього потребують значних витрат машинного часу. До них відносяться і тераціонние, поліноміальні методи, в тому числі, статечні ряди та ін.

Відмінною особливістю таблично алгоритмічних методів є використання в тій чи іншій мірі попередньо обчислених табличних значень. Ці методи знаходять широке застосування для програмної та апаратурною реалізації.

4. Теоретичні основи таблично алгоритмічного методу

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

У зв'язку з цим широке застосування в даний час знайшли таблично алгоритмічні методи обчислень, що поєднують пошук по таблиці з грубим значенням аргументу і введенням поправок на точне значення. При визначенні поправки, характерною для даних методів, може використовуватися наступна формула:

F (x) = F (xs + D xn-s) = F (xs) + Ф (D xn-s, xs),

де xs- s-розрядний код старшої частини аргументу Х,

0 ? D xn-s <2-s- (ns) розрядний код молодшої частини аргументу Х,

F (xs) - табличне значення функції F (x) для точки xs,

Ф (D xn-s, xs) - поправка.

В даному випадку величина s, будучи розрядністю аргументу xs, задає значення кроку таблиці h = 2-s, а також кількість табличних значень функції F (xs), рівне 2s. Поправки Ф (D xn-s, xs) визначаються в процесі роботи мікроЕОМ. Їх знаходять за допомогою різних методів, до яких, насамперед, відносяться: розкладання в статечні ряди, ланцюгові дроби, дрібно раціональні наближення, інтерполювання, чисельне інтегрування, ітераційні процеси.

Принципи використання приватних методів обчислення поправок, заснованих на застосуванні відомих тотожностей для кожної конкретної елементарної функції. Цей підхід характеризується точністю базової формули, залежністю поправки для більшості елементарних функцій тільки від молодшої частини аргументу. Найчастіше даний метод є нераціональним через значного числа додаткових операцій.

Формула для обчислення значення F (x) на інтервалі (xs, xs + h) з використанням низки Тейлора має наступний вигляд:

F (x) = F (xs) + D xn-s / k!) * F (k) (xs),

де m - кількість членів ряду, D xn-s = x - xs,

F (k) (xs) - значення k-ой похідної функції F (x) в точці xs.

Методична похибка наведеного алгоритму можна оцінити за формулою:

EМ ? ((D xn-s) m + 1 / (m + 1)!) * F (m + 1) max

де F (m + 1) max- максимальне значення (m + 1) -ої похідної функції F (x) на інтервалі (xs, xs + h).

Формула для обчислення значення F (x) на інтервалі (xs, xs + h) за допомогою лінійної інтерполяції має наступний вигляд:

F (x) = F (xs) + (D xn-s / h) * (F (xs, xs + h) - F (xs))

Методична похибка наведеного алгоритму можна оцінити за формулою:

EМ ? (D xn-s (D xn-s- h) / 2) * F (2) max

Формули для обчислення похибок:

- Повної e = Fет (х) - Fm (xm) / Mf

- Методичної EМ ? ((D xn-s) m-1 / (m + 1)!) * F (m + 1) max

- Обчислювальної EВ = Fет * - Fm (xm) / Mf

5. Розрахунок параметрів алгоритму

Одним із завдань проектування алгоритмів таблично алгоритмічних методів є задоволення вимог по часу обчислення елементарної функції в мікроЕОМ і точності обчислень, яка обумовлена ??заданої розрядністю подання аргументу.

Вимога за часом tдопможно виконати, обмежуючи такі параметри чисельних методів як число членів ряду, полінома, ланцюгового дробу, кроків ітерацій і т. П. При цьому враховується час виконання в мікро-ЕОМ арифметичних, логічних та інших використовуваних операцій.

Необхідна точність обчислень забезпечується шляхом виконання балансу методичної та обчислювальної похибок алгоритму у вигляді умови EМ = eвгде в якості eввиступает її мінімальне значення 2- (n + 1).

У разі розкладання в ряд Тейлора баланс похибок має вигляд:

((D xn-s) m + 1 / (m + 1)!) * | F (m + 1) max | = 2- (n + 1)

Враховуючи що D xn-s = 2-sімеем:

S ? (n + 1 - log2 ((m + 1)!) / | F (m + 1) max |) / (m + 1)

Для більшості елементарних функцій залежність s (m) добре апроксимується співвідношенням:

S ? (n + 1 - 2m * log2e) / (m + 1)

Отже, за відомою розрядності аргументу n і кількості членів ряду m можна оцінити мінімальну розрядність s старшої частини аргументу X, що забезпечує необхідний баланс методичної та обчислювальної похибок.

У разі використання кусочно-лінійної інтерполяції баланс похибок має вигляд:

(D xn-s | D xn-s- h | / 2) * | F (2) max | = 2- (n + 1)

Оскільки h = 2-s, то ліва частина цієї нерівності досягає максимального абсолютного значення при D xn-s = 2- (s + 1) .Тоді

2-2s * | F (2) max | / 8 = 2- (n + 1)

Звідси остаточно отримуємо:

S ? (n + log2 | F (2) max | - 2) / 2

Величина s є тим параметром, який забезпечує баланс методичної та обчислювальної похибок, а також визначає не тільки розрядність старшої частини аргументу Х, але і значення кроку таблиці h = 2-Sи кількість табличних значень функції F (xs) рівне 2s.

5.1. Розрахунок величини S і h

y = sh (x) - вихідна функція

Знайдемо першу і другу похідну y

y '= ch (x) у' '= sh (x)

| F'max | = 1.128 | f''max | = 0.521

Знаючи | f''max | знайдемо s і h

S ? (n + 1 - log2 ((m + 1)!) / | F (m + 1) max |) / (m + 1), де n = 8 і m = 1

Обчислюючи отримаємо s = 4

Тоді h = 2-s = 2-4 = 0.0625

5.2.Вибор масштабних коефіцієнтів

 МF (x) == 26MDx === 26

Mf (xs) == 26Mf '(x) == 25Mx == 27

6.Масштабірованіе алгоритму

f (x) = f (xs) + D xn-s ? f '(xs),

F (X) / Mf (x) = F (Xs) / Mf (xs) + (D Xn-s / MDx) ? F '(Xs) / Mf' (x)

Помножимо всі вираз на Mf (x)

F (X) = F (Xs) ? Mf (x) / Mf (xs) + D Xn-s ? F '(Xs) Mf (x) / (Mf' (x) ? MDx)

Підставляючи значення отримані вище отримаємо

F (X) = F (Xs) + 2-5 ? D Xn-s ? F '(Xs)

де F (X) = f (x) ? Mf (x), F (Xs) = f (xs) ? Mf (xs), D Xn-s = D xn-s ? MDx,

F '(Xs) = f' (xs) ? Mf '(x), X = x * Mx- масштабовані значення

7. Граф - схема програми

8. Лістинг і опис підпрограми функції

8.1.Лістінг підпрограми функції

function Fx (masFx, masFhx: m; Xm: word; var ad: word): longint;

var

dx, fx1: word;

begin

ad: = Xm shr 3;

dx: = Xm and $ 6;

fx1: = dx * masFhx [ad];

fx1: = fx1 shr 5;

Fx: = masFx [ad] + fx1;

end;

8.2. граф - схема алгоритму

9. Лістинг програми

program kir;

uses crt, dos, graph;

type

m = array [0..8] of word;

const

h = 0.0625;

Mh = 64;

Mf = 64;

Mfh = 32;

Mx = 128;

function Fx (masFx, masFhx: m; Xm: word; var ad: word): longint;

var

dx, fx1: word;

begin

ad: = Xm shr 3;

dx: = Xm and $ 6;

fx1: = dx * masFhx [ad];

fx1: = fx1 shr 5;

Fx: = masFx [ad] + fx1;

end;

var

masFx, masFhx: m;

masfxs, masfhxs, x: array [0..8] of real;

i, Xm, ad: word;

work, F, fxn, e, ev, em, fz: real;

gd, gm: integer;

xnext, xprev, y1next, y1prev: integer;

y2next, y2prev, y3next, y3prev: integer;

y4next, y4prev: integer;

begin

clrscr;

for i: = 0 to 8 do begin

x [i]: = h * i;

masfxs [i]: = (exp (x [i]) - exp (-x [i])) / 2;

masfhxs [i]: = (exp (x [i]) + exp (-x [i])) / 2;

masFx [i]: = trunc (masfxs [i] * Mf);

masFhx [i]: = trunc (masfhxs [i] * Mfh);

end;

work: = 0;

repeat

begin

Xm: = trunc (work * Mx);

F: = Fx (masFx, masFhx, Xm, ad);

fxn: = (exp (work) -exp (-work)) / 2;

e: = fxn-F / Mf;

fz: = masfxs [ad] + (work-x [ad]) * masfhxs [ad];

ev: = fz-F / Mf;

em: = e-ev;

write ('', work: 5: 4, '', Xm: 2, '', fxn: 4: 4, '', F: 4: 0, '');

writeln (e: 4: 4, '', ev: 4: 4, '', em: 4: 4);

work: = work + h / 4;

end;

until work> 0.5;

writeln ('x X f (x) F (x) E Ev Em');

readln;

gd: = detect;

initgraph (gd, gm, 'c: \ language \ bp \ bgi');

cleardevice;

floodfill (0,0, white);

setcolor (black);

line (0,0,0,480);

line (0,240,640,240);

work: = 0;

xnext: = 1;

xprev: = 0;

y2next: = 240;

y1prev: = 240-trunc ((exp (work) -exp (-work)) * 120); y2prev: = 240;

y3prev: = 240; y4prev: = 240;

repeat

begin

work: = work + h / 4;

fxn: = (exp (work) -exp (-work)) / 2;

y1next: = 240-trunc (fxn * 240);

setcolor (green);

line (xprev, y1prev, xnext, y1next);

y1prev: = y1next;

Xm: = trunc (work * Mx);

F: = Fx (masFx, masFhx, Xm, ad);

e: = fxn-F / Mf;

y2next: = 240-trunc (e * 240);

setcolor (cyan);

line (xprev, y2prev, xnext, y2next);

y2prev: = y2next;

fz: = masfxs [ad] + (work-x [ad]) * masfhxs [ad];

ev: = fz-F / Mf;

y3next: = 240-trunc (ev * 240);

setcolor (magenta);

line (xprev, y3prev, xnext, y3next);

y3prev: = y3next;

em: = e-ev;

y4next: = 240-trunc (em * 240);

setcolor (lightgray);

line (xprev, y4prev, xnext, y4next);

y4prev: = y4next;

xprev: = xnext;

xnext: = xnext + trunc (64 * work);

end;

until work = 0.5;

setcolor (green);

outtextxy (0,470, 'f (x)');

setcolor (cyan);

outtextxy (40,470, 'E');

setcolor (magenta);

outtextxy (60,470, 'Ev');

setcolor (lightgray);

outtextxy (90,470, 'Em');

readln;

end.

9. Результати роботи програми

0.1563 20 0.1569 12 -0.0306 -0.0307 0.0001

0.1719 22 0.1727 14 -0.0460 -0.0462 0.0002

0.1875 24 0.1886 12 0.0011 0.0011 0.0000

0.2031 26 0.2045 14 -0.0142 -0.0142 0.0000

0.2188 28 0.2205 16 -0.0295 -0.0296 0.0001

0.2344 30 0.2365 18 -0.0447 -0.0449 0.0002

0.2500 32 0.2526 16 0.0026 0.0026 0.0000

0.2656 34 0.2688 18 -0.0125 -0.0125 0.0000

0.2813 36 0.2850 20 -0.0275 -0.0277 0.0001

0.2969 38 0.3013 22 -0.0425 -0.0428 0.0003

0.3125 40 0.3176 20 0.0051 0.0051 0.0000

0.3281 42 0.3340 22 -0.0097 -0.0097 0.0000

0.3438 44 0.3506 24 -0.0244 -0.0246 0.0002

0.3594 46 0.3672 26 -0.0391 -0.0395 0.0004

0.3750 48 0.3839 24 0.0089 0.0089 0.0000

0.3906 50 0.4006 26 -0.0056 -0.0057 0.0000

0.4063 52 0.4175 28 -0.0200 -0.0202 0.0002

0.4219 54 0.4345 30 -0.0342 -0.0347 0.0004

0.4375 56 0.4516 28 0.0141 0.0141 0.0000

0.4531 58 0.4688 30 0.0000 -0.0000 0.0001

0.4688 60 0.4861 32 -0.0139 -0.0141 0.0002

0.4844 62 0.5035 34 -0.0277 -0.0282 0.0005

0.5000 64 0.5211 33 0.0055 0.0055 0.0000

x X f (x) F (x) E Ev Em

11. Висновок

У процесі виконання курсової роботи, використовуючи літературу та методичні вказівки, ми виконали проектування алгоритму обчислення елементарної функції з використанням таблично - алгоритмічного методу. Алгоритм орієнтується на цілочисельні обчислення в форматі байт зі знаком в додатковому коді. Розробили програму для обчислення функції на заданому інтервалі апроксимації та експериментального аналізу, повною, методичної та обчислювальної похибки. Програма виводить на екран графіки функції і всіх похибок на інтервалі апроксимації.

12. Список літератури

1. Керівництво до лабораторної роботи №4 "проектування алгоритмів обчислення елементарних функцій" по курсу:

Основи обробки даних і моделірованія2. Конспект лекцій

Авіація і космонавтика
Автоматизація та управління
Архітектура
Астрологія
Астрономія
Банківська справа
Безпека життєдіяльності
Біографії
Біологія
Біологія і хімія
Біржова справа
Ботаніка та сільське господарство
Валютні відносини
Ветеринарія
Військова кафедра
Географія
Геодезія
Геологія
Діловодство
Гроші та кредит
Природознавство
Журналістика
Зарубіжна література
Зоологія
Видавнича справа та поліграфія
Інвестиції
Інформатика
Історія
Історія техніки
Комунікації і зв'язок
Косметологія
Короткий зміст творів
Криміналістика
Кримінологія
Криптологія
Кулінарія
Культура і мистецтво
Культурологія
Логіка
Логістика
Маркетинг
Математика
Медицина, здоров'я
Медичні науки
Менеджмент
Металургія
Музика
Наука і техніка
Нарисна геометрія
Фільми онлайн
Педагогіка
Підприємництво
Промисловість, виробництво
Психологія
Психологія, педагогіка
Радіоелектроніка
Реклама
Релігія і міфологія
Риторика
Різне
Сексологія
Соціологія
Статистика
Страхування
Будівельні науки
Будівництво
Схемотехніка
Теорія організації
Теплотехніка
Технологія
Товарознавство
Транспорт
Туризм
Управління
Керуючі науки
Фізика
Фізкультура і спорт
Філософія
Фінансові науки
Фінанси
Фотографія
Хімія
Цифрові пристрої
Екологія
Економіка
Економіко-математичне моделювання
Економічна географія
Економічна теорія
Етика

8ref.com

© 8ref.com - українські реферати


енциклопедія  бефстроганов  рагу  оселедець  солянка