Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Основы теории алгоритмов учеб. пособие

.pdf
Скачиваний:
9
Добавлен:
19.10.2023
Размер:
6.6 Mб
Скачать

 

 

 

 

 

 

 

 

 

 

-

130

-

 

 

 

 

 

 

 

 

 

 

Х >

-

 

к

+

 

2 1

N i .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5.13)

 

Например), для разрядной оетки

П

=

8

следует вычислить

*

 

С

-

с точностью

§

4

2 '3

 

.

Для достяхволя такой точности

до

 

л

 

 

 

отаточ!

 

но выбрать четырнадцать членов разложения (

р =

13)

 

 

 

 

<z

=

 

i + х +

-£7 +••• +]^7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 5 '

 

 

 

 

 

в вычисления проводить с учетверенной точностью (

к =

4 ).

 

 

Еоли рассматривается интервал

0 ^ 36 < i

, то сум/ш-

 

рование членов

О »

,

Q

i

z

,

О можноа

вычислять о

одинарной

 

точностью, т .к .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

" * >

 

а

 

»

,

Q

i

z>

,2а" 32,»

С

« )

;

 

членов

Q

g

,

Clio

 

-

о удвоенной точностью,

т .к .

 

 

 

 

 

 

2 " “ > 0 » . С » > 2

~

2 \

( N . - ( 0 ) ;

 

 

членов

( Х

б

О, /

,

Cfe -

 

о утроенной точностью, т .к .

 

 

 

 

 

 

2 ' ‘ > c k , c i ' , a l > 2 ' *

>'

( М г - 8 ) ;

 

шенов do

,

Q

l , .

.

.

,

-0 сs учетверенной точностью,

т .к .

 

они больше

 

2 “*

(

N* =

5).

 

 

 

 

 

 

 

 

 

 

 

Объем долговременной памяти без

економии ячеек

(5.12)

 

составит

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X) - Гр+0 к - 14-4 * 56,

а о экономией ячеек (5,. 13)

£ > = 4 + i l N i - 4 0 .

Время реализация оценим по (5.5)

и (5 . I I ) .

Пусть

t = 3 (гла­

ва

1У,

пример для дополнительного кода), a

mto = io i + -ivwH +

+

i

зам

. Примем, чтб

= 5 t«

, тогда

it! -to «

1to + 5Ь>+ ft* -

7Ь> t согласно

(5.5),

Т

=

= н е т 0 •

Однако если не все члены ряда вычислять с четырехзначной точ­ ностью, то.согласно (5 .II) ,

 

Т *

 

с-1

 

 

=954io.

 

 

 

 

 

 

 

 

 

 

В классе различных многочленных приближений функция

$ (& )представляется полиномом'степени р .

 

 

 

р

( # )

*

Со + С, ЗС- + • • • + Ср.,

+ Ср ЗСР.

 

Если для коэффициентов

C^j ( ^ =

0 , 1 , . .. ,

р

)

можно составить

систему

 

 

Ык

 

п

 

 

 

 

 

 

 

 

 

 

 

 

2 ~ (1 -ф

>

£ - С * > ' - 2

,

 

 

(5.14)

то все вычисления данного полинома цри 0 ^

ЗС

^

I

нецеле­

сообразно

проводить с

к -значной точностью, иначе это

приведет

к большому времени реализации. Система (5,14)

позволит устано­

вить, какие члены ряда и с какой степенью их следует вычислять.

Очевидно,

что члены, удовлетворяющие (5.14),

вычисляются о

( к-1)

- степенью точности.

,

Объем долговремшной памяти может быть определен из

(4 .1 3 ), а в р е м

реализации из (4 .I I ) .

 

В классе

итерационных приближений

 

V

 

УУН -

 

погрешность каждой итерации

 

 

 

 

Если для достижения заданной точности В ^ 2

требуется р

итераций,

то мокко составить многонтерадионную систему пова-

шечпой точности

 

 

 

 

 

 

 

 

-

132 -

 

 

 

 

 

 

&

 

S

i

 

 

St,

>

2

• - "

 

 

 

 

 

2~п >

 

 

б

*

/ (

+

 

St. > г 2”

4

*

 

 

 

 

Я

 

 

2

 

&Ni+iй

S

'

>N

 

i

a

>

 

 

 

 

 

 

 

 

 

StiM

 

 

 

 

2

'

 

«' 0

 

„"

 

St> .>«

 

• 2

-•

w

*-

>

< W l,

 

 

 

 

 

 

 

 

 

 

 

где Nt -

число

итераций.

Для

§Ni

я ,+1 выполняется условие

 

&Ni

> 2 W > $Ni.H .

Из (5.15) следует, что итерации 1 , 2 , . . . , Nr нецелесообразно выполнять с к -значной точностью, т .к . в процессе этих ите­ раций уточняются разряды, значения которых больше 2 Ч. Поэто­ му эти итерации достаточно выполнить о одинарной точностью. По этой же причине итерации | = N<4 ,N ( + 2 , . . . , Na следует выполнять с удвоенной точностью. В конечном приближении ите­

рации j=NiM+‘f

.Мк-г + 2

Nк , N kh необхо­

димо выполнять с

к -значной точностью.

Уменьшение степени

точности вычисления первых итераций дает значительный выигрыш во времени.

Для обратной величины и корня квадратного итерационные процессы дают быструю сходимость ( б ы « ( 8 i ) z ) . Поэтому сиотему (5.15) можно привести к одноитерационной системе повы­ шенной точнооти, значительно ускоряющей процесс приближения:

-

133 -

6o t S i , § г , • , Siii

> 2~ч

> 2 'ач

 

t

• • •

 

(5.16)

 

S

i

, . <zmv <

 

 

 

Особенностью оиотемы (4.16) являетоя то, что она содержит по

одной итерации с высшей степенью точности.

 

4

 

Например,

вычислим обратную величину

У =

дГ

о погреш­

ностью § * 2 '* 2

на машине о разрядностью

н

=

8 . Для

итерационной формулы

4i«=4i(2-х^)

относительные погрешности итераций находятся в зависимости

Й +<

= ^ ^

'

(5 .17|

На интервале [ о, 5

* i ]

максимальные относительные и аооолют-

ные ошибки по своему

значению совпадают,

т .к .

£ * а "</min = 1 и S - S .

В соответствии с (5.15) составим систему абсолютных погрешностей для найлучшей начальной константы приближения

4 ( & = О т ­

слоишь абсолютных погрешностей будет

8л=0,012$4> 2~*

2" *> & = 0 ,0 00*54 > 2 ~ 16

(5.18)

2 ~*м> & « 0 ,0 0 0 0 0 0 0 2 4 > 2 ' iz

S s - 0 . s i iO-iS< 2 “3* ,

 

 

 

- 134

-

 

 

 

Приведен (5.18)

к системе (5 .1 6 ), тогда

 

So,

Si, S t ,

S i > 2 ~ g 1

 

 

 

 

5/,

- 2

' “

>

 

 

 

 

S s

= 2 " и

J

 

Отсюда следует, что для достижения заданной точности

достаточно провести

три итерации с одинарной точностью, одну -

с удвоенной и одну -

о учетверенной.

 

 

 

Если выбрать в качестве начального приближения линейное

 

ч . -

н

32 зС-

 

 

п

1 7

 

 

 

то можно записать систему

 

 

 

 

 

 

&> = 0 ,059

 

>

2 ~ g

 

 

6< =0, О0348

> 2 ЧС

I

 

$ 1 = 0,12 -10 -*'>

2-~2*

[

 

S i = 0.15-10'*

>

2-~*г

 

Преобразуем данную оиотему к виду

 

 

 

 

S c , S t = 2'*

 

 

 

*

Sc. = 2 Н«

 

 

 

 

 

6 ,

-

2 ' зг

 

 

 

 

Данная систола содержит одну итерацию с одинарной точностью ,

одну - о удвоенной я одну -

о учетверенной.

 

Оценим время реализация метода итераций.

Бели все р -

итерации вычислять с

к

-значной точностью,

то

Т

- ptum ,

(5.19)

4*

 

 

к -значной

где Ъитц - время выполнения одной итерации с

точностью.

 

 

Для систеш

(5.15)

 

135 -

 

 

Т

-

£ т Л

 

 

(5.20)

где

W - число итераций в

t -й строчке оиотемн

(5 .15).

 

Для быотрооходящихоя итераций ( х >

-\[~

) из

(S .I6)

 

 

 

 

 

 

к

 

 

 

 

 

Т

ш Д м т ч

+

2 - tu r n

,

 

(5.21)

Определим показатель

 

Т

ва примере обратной величины.

 

Одна итерация о

к

-значной точностью,

согласно форму­

ле итерации

 

 

 

 

 

 

 

 

 

имеет

 

У i+< ~

 

а^ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1*ищ -

i w

+

2

i *«« -

к 1Ьо + 2 £ т

ь •

 

Для

I * 3 и

да = 7

 

 

 

 

 

 

 

t « 4 - ( S K M 4 K * ) l . .

Из (5.18) следует, что Wt = 2, •% = i , (tls = 0,

2.

4; огц = ( 5 + й } -*®

■^.^ытц = ( б + 5G) "t® = 6 2 (>о

■ f c « m - 0 i + 2 2 4 ) i e * 2 5 6 t « . -

4

Выполняя все итерации о четырехзначной точностью (У®*з), получим из (5.19)

T - S - 2 3 6 - t o - Ш < Н * .

 

 

 

Для системы (5.15) имеем из (5.20)

 

 

T

= 2 i7 i . + 6 2 io 4 2 - 236to - 5 6 8 ^ .

 

 

Согласно (5 ,1 6 ),

из (5.21) для w<= з ,

т г = I, ж **

0,

i

Т

-

3 * < 7 Ь + 62io + 2Ъ6*~

« 3 4 9 -to .

_______ J

 

- 136 -

5 .2 . Полиномо-выборочные алгоритмы

Вычисления некоторых функций на воем отрезке изменения аргумента занимают, как правило, большое время и не воегда мо­ гут удовлетворять требованиям к быстродействию алгоритмов для

5ВМ.

\

 

Один из методов уменьшения времени реализации алгорит­

мов рассмотрен в работах Гб5,6бЛ , в которых предлагается раз­

бить

интервал [ а , в ] , на котором отыскивается значение функ­

ции,

на систему непересекающихся подинтервалов. На каждом

подинтервале строится свой аппроксимирующий полином о меньшей

степенью,

чем полином на интервале [а ,

в ] , при сохранении

той же точности. Для отыскания необходимого подинтервала по­

требуется

loq^K операций сравнения

(

К - число подинтервалов).

Однако в логическую схему отыскания подинтервала будет вхо­

дить (

К - I) операций сравнения.

 

 

 

Объем памяти, отводимый для хранения вычислительных

конотант,

определяется как

 

 

 

 

 

3 ) “

**)*(*-*)>

 

где

P j

- порядок полинома

^ -го

подынтервала.

 

Из

[6 5 ,ббЗследует,

что непосредственно вычислению поли­

нома предшествует логическая схема отыскания необходимого под­ интервала (соответствующего полинома). При этом объем логичес­

кой схемы (число сравнений)

прямо пропорционально зависит

от

числа подинтервалов ( К ),

а время реализации "t ~

К

.

В связи с этим 'важным является вопрос построения такого небольшого объема логической схемы, который бы оставалоя постоян­ ным для любого числа подинтервалов. При этом время отыскания не­

обходимого подинтервала

было бы также независимо от

К

,

Такие алгоритмы,

у которых осуществляется последователь­

ная выборка необходимых коэффициентов полинома соответствующе*- го участка (подинтервала) при вычислении полинома, будем назы­ вать полшомо-выб^орочнши^алгоритмаша.

 

- 137 -

I

Расомотрим оущнооть метода построения полиномо-выбороч­

ных алгоритмов, у которых логическая схема не зависит от чиола подинтервалов. Как показано ниже, построение такой схемы целесообразно длй большого числа подинтервалов,

I

I .

Сущность метода.

 

 

 

 

 

 

Предположим, что аргумент

£

функции

£ (об) изменяет­

ся в

интервале [ 0 * 1 ] .

Разобьем этот интервал на 2 равных

подинтервала:

0

^

$

<

о,5;

 

1-

й

 

2 -

й

0,5

^

ОС

<

I

Для системы счисления о основанием

CJ, =

2

имеем

 

 

1-й подинтервал

0

^ ОС

v

0 ,0 П ...1 1

;

2 -й подинтервал

0,1000...О

 

ЭС <

I .

 

Отскда видно, что значение первого двоичного разряда после за­ пятой определяет номер подинтервала: "О" - первый, "I" - второй.

Для определенности первый и второй учаотки функции при­ близим полиномами третьей степени:

Р з (эе) = а н я * + о л £ г+ а < * я + а « ,

р аа (ос) = а г1Л 5+ а « э с Ч а г5^ + б ( г 4 .

Коэффициенты полиномов Р 4($)и Рз*С ^) разместим в’ следующих уоловных ячейках памяти с условными (относительными) адресами:

<С000> = Он

<0001>

=

<0010 > = О н

<00П >

Оаг

<0100>

=

<0Ю1> = Ога

< ОНО >

=Oii4

<0111 >

= Cfz4.

Ьдесь скобка:,ш ( <

>

) обозначено содержимое ячейки.

Функциональная зависимость между кодовым числом аргу­

мента и относительными адресами коэффициентов будет:

 

A d j r ' =

ос

 

A c i j z '• = A O j i + 2 А

 

 

 

138

 

 

 

 

А а р ; = А а ^ + 2 а

 

 

 

 

A<V**- А cip + 2A,

 

где

А

-

относительный адрес ;

 

 

j

-

номер подинтервала;

 

 

2 А -

две адресные единицы (0010).

X . t

Если оценивать номер подинтервала по 2-м первым разрядам

после запятой,

то можно весь интервал [0 + I]разбить на 4

под­

интервала. При атом 00 - первый подинтервал,

 

 

01 - второй подинтервал,

 

 

10 - третий подинтервал,

 

 

I I -

 

четвёртый подинтервал.

 

Пусть каждый подинтервал аппроксимируется полиномом 3-й сте­ пени. Константы полиномов распределим в условных ячейках памя­ ти так, что их относительные адреса

S а ^ - к г 4 - 1,

Да ^ : = Да^ + 4 А ,

Да р *•- Aaj4+ 4 A , A a j 4 * « A o j » + 4 A ,

где 4А - четыре адресные единицы (0100).

В общем олучае,

если номер подинтервала оценивать по

к разрядам, то получим

 

к

- 2

К

*

л

(5.22)

равных подинтервала. Пусть каждый участок приближается полино­ мом степени р , тогда

Д с 1 р ; = Х 2 ~ (н' к ) ,

 

- 139 -

 

А а ^ - Д а к н + К А ,

где

L- порядковый номер коэффициента полинома

 

( i - 2 , 5 , . * . ,

К Л

- количество адресных единиц.

 

Объем долговременной памяти, отводимый под константа,

г>- 2К р,-+о ,

алипри

 

р,-р**...

,

= Р

 

 

 

 

 

 

 

 

 

 

D

-

К (р+ 0

 

 

 

 

(5,23)

 

Для удобства размещения сиотемы констант полиномов в

любом месте памяти машина к относительному адресу

Д

при-

бавим адресную колстаяту ( N A ) j

,

определяющую начало зоны

(в дальнейшем -

это

номер зоны,

равный абсолютному адресу ко­

эффициента

С|«

)

размещения системы констант для заданной

функция

£

.

 

 

 

 

 

 

 

 

 

 

 

Тогда для некоторой функции

£

абсолютные 'адреса коэф­

фициентов:

 

 

 

 

 

 

к,

,

 

 

 

 

 

 

 

А а 4.

 

 

 

+

( « %

.

 

(5.24)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А а я : - А < у и и к а

 

 

I

 

 

 

 

 

ЛГ

 

 

 

 

 

 

 

(5.25)

 

 

 

 

 

а

 

2, 5,..-,

Р+0 >

 

 

 

 

 

 

 

 

 

 

 

где

-

оиотема счисления.

 

 

 

 

 

 

 

Зона систдаы констант разбита на подзоны, число которых

равно

р +1.

В каждой подзоне хранятся коэффициенты о одинако­

вым порядковым номером, количество равно числу подинтервалов К . Номер зоны

^Зоны = ( / V A ) f .

Функциональная зависимость (5.24) между кодовым чиолом

Соседние файлы в папке книги из ГПНТБ