Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций

Министерство Общего и Проф образования
Таганрогский Муниципальный Радиотехнический институт
Кафедра микропроцессорных систем





Курсовая работа
по курсу:
Базы обработки данных
на тему:
Вычисление простых функций


Выполнил:

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

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


Проверил:

к.т Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций.н.д. Ледовской М.И.


Таганрог 1998 г.

Содержание


1. Задание


2. Инструкция


3. Введение


4. Теоретические базы таблично - алгоритмического способа


^ 5. Расчет характеристик метода


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


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


6. Масштабирование метода


  1. Граф – схема программки




  1. Листинг и описание подпрограммы-функции




  1. Листинг программки




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




  1. Заключение




  1. Перечень литературы
1. Задание



  1. Используя литературу Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций и методические указания выполнить проектирование метода вычисления простой функции с внедрением таблично – алгоритмического способа в согласовании с данным вариантом. Метод должен ориентироваться на целочисленные вычисления в формате б со знаком Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций в дополнительном коде.




  1. Выполнить масштабирование метода.




  1. Создать Граф – схему метода для реализации в целочисленном режиме.




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




  1. Создать программку для вычисления функции на данном интервале аппроксимации и Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций экспериментального анализа, полной, методической и вычислительной погрешности.




  1. Выстроить графики функций и всех погрешностей на интервале аппроксимации.




  1. Сравнить экспериментальные значения погрешности с теоретическими оценками и сделать выводы.



Функция


Интервал аппроксимации Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций [0,0.5]


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


Способ нахождения поправки одночленный ряд

Тейлора


3. Введение

Простыми функциями именуются функции 1-го аргумента, значения которых получаются при помощи конечного числа вычислительных операций над аргументом, зависимой переменной и неизменными числами.

Простые функции делятся на алгебраические и Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций непознаваемые. Вычисление значений простых функций один из более нередко встречающихся типов вычислительных операций, выполняемых в микро ЭВМ при решении задач управления движением роботов-манипуляторов, навигации, стабилизации и т. д. В этой связи Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций принципиальное значение приобретает разработка алгоритмов вычисления простой функции для их программной и аппаратной реализации, обеспечение наибольшего быстродействия.

Метод вычисления простой функции в микроЭВМ обхватывает три последующих типа:

  1. привидение аргумента к интервалу аппроксимации Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций (уменьшение интервала конфигурации аргумента);

  2. вычисление простой функции на интервале аппроксимации;

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

Задачка проектирования метода вычисления простой функции сводится к нахождению метода приведения аргумента к интервалу аппроксимации и выбору численного Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций способа для приближенного вычисления значений этой функции на интервале аппроксимации. Приведение аргумента к интервалу аппроксимации является неотклонимым шагом как при использовании итеративных способов вычисления простых функций, так и при многочленной и рациональной Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций аппроксимации. Этот прием позволяет уменьшить число операций нужных для вычисления значения простой функции за счет уменьшения количества итераций либо использования многочленных и оптимальных приближении, содержащих сравнимо маленькое число членов.

Метод уменьшения Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций интервала конфигурации аргумента находится в зависимости от параметров функции. Если функция повторяющаяся, то имеет смысл вычислять ее лишь на одном периоде конфигурации аргумента. Если функция симметричная, то это свойство также можно использовать для уменьшения интервала Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций. Существует всераспространенный прием уменьшения спектра конфигурации аргумента, который основывается на использовании теорем сложения и умножения простых функций. Одним из более обычных и универсальных приемов является разбиение всего спектра конфигурации на ряд интервалов Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций (сегментная аппроксимация). Обычно аргумент приводят к интервалу [- 1, 1 ] либо [ 0, 1]. Таковой выбор разъясняется лучшей изученностью поведения функции на этих интервалах, возможностью работы в режиме с фиксированной точкой, наличием точки нуль, которая для многих Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций функций является осью симметрии, и тем, что на данных отрезках есть ортогональные многочлены.

Этапы приведения аргумента к интервалу аппроксимации и постаброботки специфичны для каждой простой функции и не достаточно находится в зависимости Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций от избранного способа вычислений. Самую большую часть выполнения которого зависит сначала от избранного способа вычисления простой функции. Способ должен владеть высочайшей скоростью сходимости и добиваться для собственной реализации малого количества арифметических операций, обеспечивать Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций заданную точность вычисления значений простой функции, быть универсальным.

Способ вычисления простых функций можно поделить на две группы: алгоритмические и таблично алгоритмические. Способы первой группы основаны на чисто алгоритмических приемах вычислений, которые начинаются Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций “с нуля” и вследствие этого требуют значимых издержек машинного времени. К ним относятся и терационные, полиномиальные способы, в том числе, степенные ряды и др.

Отличительной особенностью таблично алгоритмических способов является Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций внедрение в той либо другой мере за ранее вычисленных табличных значений. Эти способы находят обширное применение для программной и аппаратурной реализации.


4. Теоретические базы таблично алгоритмического способа

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

В связи с этим обширное применение в текущее время отыскали таблично алгоритмические способы вычислений, сочетающие Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций поиск по таблице с грубым значением аргумента и введением поправок на четкое значение. При определении поправки, соответствующей для данных способов, может употребляться последующая формула:


F(x)=F(xs+ xn-s)= F(xs Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций)+Ф( xn-s, xs),

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

0 xn-s<2-s – (n-s)-разрядный код младшей части аргумента Х,

F(xs) – табличное значение функции F(x) для Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций точки xs,

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

В этом случае величина s, являясь разрядностью аргумента xs , задает значение шага таблицы h=2-s, также количество табличных значений функции F(xs), равное 2s Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций. Поправки Ф( xn-s, xs) определяются в процессе работы микроЭВМ. Их находят при помощи разных способов, к которым, сначала, относятся: разложение в степенные ряды, цепные дроби, дробно оптимальные приближения, интерполирование, численное интегрирование, итерационные Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций процессы.

Принципы использования личных способов вычисления поправок, основанных на применении узнаваемых тождеств для каждой определенной простой функции. Этот подход характеризуется точностью базисной формулы, зависимостью поправки для большинства простых функций только от младшей Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций части аргумента. В большинстве случаев данный способ является нерациональным из-за значимого числа дополнительных операций.


Формула для вычисления значения F(x) на интервале (xs, xs+h) с внедрением ряда Тейлора имеет последующий Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций вид:

F(x)= F(xs) +  xn-s/k!)F(k)( xs),

где m – количество членов ряда ,  xn-s=x - xs,

F(k)( xs) – значение k-ой производной функции F(x) в точке xs.

Методическая Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций погрешность приведенного метода можно оценить по формуле:

м(( 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) + ( xn-s/h)(F(xs, xs+h) - F Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций(xs))


Методическая погрешность приведенного метода можно оценить по формуле:


м( xn-s( xn-s – h)/2)F(2)max


Формулы для вычисления погрешностей:












^ 5. Расчет характеристик метода


Одной из задач проектирования алгоритмов таблично алгоритмических способов является ублажение требований по времени вычисления простой функции в микроЭВМ и точности вычислений, которая обоснована данной разрядностью представления Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций аргумента.

Требование по времени tдоп можно выполнить, ограничивая такие характеристики численных способов как число членов ряда, полинома, цепной дроби, шагов итераций и т. п. При всем этом учитывается время выполнения Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций в микро-ЭВМ арифметических, логических и других применяемых операций.

Нужная точность вычислений обеспечивается методом выполнения баланса методической и вычислительной погрешностей метода в виде условия м = в где в качестве в выступает Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций ее малое значение 2-(n+1).

В случае разложения в ряд Тейлора баланс погрешностей имеет вид:


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


Беря во внимание что  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, обеспечивающую требуемый баланс методической и вычислительной погрешностей.

В случае использования кусочно-линейной интерполяции баланс погрешностей имеет вид:


( xn-s| xn-s – h|/2)|F Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций(2)max| = 2-(n+1)


Так как h=2-s, то левая часть этого неравенства добивается наибольшего абсолютного значения при  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) = = 26 Mx = = = 26

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


^ 6.Масштабирование Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций метода


f(x) = f(xs) +  xn-sf'(xs),


F(X)/Mf(x) = F(Xs)/Mf(xs) + ( Xn-s/ Mx)F'(Xs)/ Mf '(x)


Умножим все выражение на Mf(x)


F Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций(X) = F(Xs)Mf(x)/Mf(xs) +  Xn-sF'(Xs) Mf(x)/(Mf '(x)Mx)


Подставляя значения приобретенные выше получим


F(X) = F(Xs) + 2-5  Xn-sF'(Xs)


где F Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций(X)=f(x)Mf(x), F(Xs)=f(xs)Mf(xs),  Xn-s=  xn-sMx,


F'(Xs)= f'(xs)Mf '(x), X = xMx - масштабированные значения


^ 7. Граф – схема программки








Вычисление табличных значений Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций функций f(xs) и f '(xs) с шагом h = 2-s на интервале аппроксимации в виде вещественных чисел при помощи библиотек функций TURBO PASCAL







Масштабирование табличных значений F(xs) = f(xs)Mf Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций , F'(xs) = f '(xs)Mf ' , округление масштабированных значений до наиблежайшего целого и преставление их в виде целых чисел










Получение масштабированного значения аргумента Х=хМх в виде целого числа для начального не масштабированного Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций значения х из данного интервала аппроксимации







Вычисление приближенных, целочисленных (масштабированных) значений функции F(x) по разработанному методу с внедрением подпрограммы функции








Вычисление эталонного значения функции f(x) в виде вещественного числа с внедрением Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций библиотеки TURBO PASCAL, (м  0, в  0 – для образца)






Вычисление полной погрешности  = f(x) – F(x)/Mf





Вычисление функции f()(x) по разработанному не масштабированному методу в виде вещественного числа (в0)












^ Нахождение вычислительной погрешности в=f(x Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций) – F(x)/Mf





Нахождение методической погрешности м=-в либо f(x)–f(x)


















  1. Листинг и описание подпрограммы функции


^ 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. граф – схема метода






Сдвиг Xm на 3 разряда на право



dx:=Xm&0110



fx1:=dxmasfx Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций[ad]



Сдвиг fx1 на 5 разрядов на право




Fx:=masFx[ad]+fx1








^ 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;

y Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций2next:=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);

y Работа по курсу : Основы обработки данных на тему : Вычисление элементарных функций2prev:=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.



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


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. Конспект лекций

rabota-po-discipline-organizaciya-planirovanie-i-upravlenie-predpriyatiem-na-temu-organizacionno-ekonomicheskij-proekt-malogo-predpriyatiya-stranica-3.html
rabota-po-discipline-osnovi-menedzhmenta-na-temu-kommunikacii-v-organizacii-rabotu-stranica-2.html
rabota-po-discipline-osnovi-tehnologii-organizacii-i-proektirovaniya-predpriyatij-na-temu-planirovanie-sklada-optovogo-predpriyatiya.html