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

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

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

 

 

 

 

 

 

 

,

-

120

-

 

 

 

 

 

 

для

Ч*

*

^

(

к ч

,.4»,2,1

 

 

 

 

 

 

 

 

'

Р

ы

+ i X

C <3,* ' ) ^ +

5 i - p t + ( а х + В ) с 2 ' 1п.

 

 

Здесь

коэффициент 0 ,10

. . .

00 введен для округления.

 

|

 

Максимальное чиоло однозначных слов о учетом олова ко»!

эффицнента

&

 

^ подлежащих Словению, равно

 

ЧГ «

2 к

j,

Кроме того,

для

1 = 1

имеем

 

]?4 <

I ,

поэтому число инан

колнх разрядов

 

Ц,

можно выбрать

из уоловия

 

 

|

 

 

 

 

 

•2*"*

<

2 к - 4

2

<v.

 

(4 .4 i)

!

ти.

Реализуем (4.39) и (4.40) на примере удвоенной точнос­

 

Из (4.41)

имеем

 

=

2,

Схема вычисления а х + &

при»

 

 

мет вид

(рио.

4.6)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

й

»•

 

Д|

I

а .

I

 

 

 

 

 

 

 

 

 

 

X

=

 

X.

I

* (

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Ai

 

 

 

 

 

 

 

 

 

 

 

 

 

At

[

Аэ

I

 

 

 

 

 

 

 

 

 

 

 

 

/Ц ______ As

 

 

 

 

 

 

 

 

 

 

Ае

 

 

Аг

 

 

 

 

 

 

 

 

 

6 в

 

 

В,

 

 

6 г ’

1 0 - 0 0 0

 

 

 

 

 

 

п-

f

 

( V

 

 

Пй

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.

4.S

 

 

 

 

 

 

Здесь,

при накоплении суммы чисел

Д а , Д 4 , А г *

6

возможны 3 единица переноса, Поэтому для

сохранения знака

*

суммы ( А & и

Ац ~ старшие части частичных произведений

представлены со знаками) введем дополнительно 3-й знаковый раа ряд.

- 121 -

 

Команда специальной записи

( ||=Ф

)

реаяиэуетоя сле­

дующим образом!

 

 

 

переносится в

 

1 .

Содержимое цифровых разрядов

£ .

память машины е положительным знаком.

 

 

 

 

2 .

Цифровые разряды 51

гноятся.

 

 

 

 

3 . Содержимое знаковых разрядов

£

переносится в

младшие разряди 5! • При этом,

если знак оуииы положителен

(

Ш

= о ), то остальные разряди оушатора

заполняются еди­

ницами (заполняются также и знаковые разряды).

 

 

Введем две команды:

 

 

 

 

 

 

1. Специальное умножение без округления о сохранением

младшей чаоти произведения на регистре множителя-частного

(

Рмч ) . Условное обозначение -

®

,

 

 

 

2 .

Запиоь содержимого Рмч

о положительным знаком в

память машины. Условное обозначение - К Рмч>|

.

 

Тогда алгоритм о использованием команд в параграфе 4.3

будет

>£-

 

 

 

 

 

 

 

O L > - > Ae

 

 

 

 

 

 

 

|<Рмч>|-*Аг

 

 

 

.

|< Р ччЯ - » а 5

u .« >

а« - * £

<£ > ® Я я

| < P m4 > |- » A s

< £ > ® 0 С *

-122 -

<£ > e As

<51>Ф As

ю ©

-

о

о

< 5:

0> ,

<£ > к = > 0

<£ > © А и

<£>© А 4

<£>© Аг

<S > © & 2

<SL>II=> Пи

<£ > © А б

Реализуем умножение по системе (4.19), тогда линейная

функция реализуется оиотемой

 

 

 

 

 

n«.j,

+Pft.j)г-'1*1'"- <3f«*i) г41*"",

 

 

(длй

j=lc

имеем P(itK)“0;

П(й|)“0)-.

 

 

 

 

для

t-k

u j=k, 1м,...,2,< ;

 

 

(<Л.2~**)(Ч^2~*") +Gfi+i> 2~^)и =

(4,43)

 

 

 

 

2 - (i^

rt4+

П и ) 2 4c+i)n.

 

 

 

 

(для

P (i+j*o

“ П О ■

 

 

Для каждого фиксированного

i =

к ,

к ~(

3,2,

параметр

|

принимает значения к ,

к-{

, . . . , 2 , 1 . Для

' i= I

первая

итерация заменяется

 

 

П(»а 2 ' й,г\

b t - f f u .

 

E W

 

 

 

где для

С«=кН ,

b t - 0,10...00 константа округления по

(

k +

I) -му олову:

 

 

 

 

 

 

для

Т -

к t k-i

.........2,1

D t- олова числа

Б ,

 

Максимальное число чисел, которое приходитоя складывать

в одной итерации системы (4.43),

равно четырем (случай

1= I ) .

Отсюда чиоло единиц переносов в знаковый разряд при сложении не больше трех. Поэтому для сохранения знака частичных произ­ ведений и их суш достаточно иметь 3 знаковых разряда.

- 123 -

Реализуем (4.43) на примере удвоенной точности вычисле­ ний. Для этого будем использовать следующие команды:

1.

Посылка числа на Рмч

( < « 0 —> Рмч

) .

2.

Запоминание

< Рмч >

( \<-Рмч>| —

).

3. Специальное сложение из (4.31).

 

4 .

Умножение с накоплением. Здесь < Рмч> множится на

<«4> я складывается о накоплением <Х > (<Рмч>®<4>+<£>,

Алгоритм:

С1г-*2.

 

 

Qi -> ft»4

 

 

<Рмч>®Л* +< £ >

 

 

< Х > - > А г

(4.44)

|< P m > | - ^ A j А» -> 5 :

<51 >Ф 0 , 1 0 ...ОО

01г. Рмч

<Рмч>® 30-1 + <51 >

<5 1 > е А г

<£ > Ф $ г

0< -> Рмч

+ Ч 2 >

<z > + b i

<Z > - t П: .

В(4.42) и (4.44) на сложение о каждым оловом коэфзаьшз:

ента 6 затрачено по одной простой команде. Для

к . -

значней точности будет

затрачено

к простых команд оложения.

Тогда время реализации

алгоритма

линейной функции

 

й н = k am-to + k b .

Абсолютный выигрыш во времени составит

д 4 : =» "Ьи - "Ьлн « k ( t - ( ) b .

Алгоритмом линейной функции можно реализовать не толь­ ко функции, приведенные к охеме Горнера, но и функции вида

т

р* = Ole -Р . (4.45)

i-1

- 124 -

 

Приведен (4.45) к линейной схеме ( Л -

схема)

F*(С'*"((<Я°+с,1&0+®а1>г)+-"+С?т£тЗ •

(4 4g) !

В (4.46) кавдая скобка реализуется линейной функцией. Колинеот-

0 0 обращений к алгоритму линейной функции определится порядков m .

/

 

125 -

 

Г Л А В А 7

 

СИНШ АЛГОРИТМОВ ВЫЧИСЛЕНИЯ НЕКОТОРЫХ ФУНКЦИЙ

 

ПРИ ОГРАНИЧШОЙ ДОТЕ РАЗРЯДНОЙ СЕТКИ УВМ

 

5 .1 . Некоторые Функции о повышенной точеоотью

 

вычислений в клаосах степенных разложений

j

и итерационных поопессов

В настоящее время известен ряд численных методов начис­

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

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

функций.

 

 

 

При вычиояешш

значения функции на машине широко исполь­

зуются различные численные методы; разложение в ряд Тейлора-

Маклорена, приближение разного рода многочленами,

метод

итера­

ций |б З ,6 4 | .Любой из

этих вычислительных методов

и ряд

других -

может быть разбит на отдельные повторяющиеся участки о однозначнымя операциями.

 

Еоли для достижения необходимой точности требуется обра­

щаться к такому участку N *

раз,

который проводит вычисле­

ния с

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

то

общее вреда реализации

 

 

 

 

(5.1)

где

Й ч - время реализации отдельного участка о

к -значной

точностью.

 

 

 

 

Каждый участок состоит из простых операций

(сложение,

вычитание, умножение), которые выполняются с повышенной точ­

ностью. Как была показано

в главе 1У, время - tw

тем больше,

чем выше степень точности

к .

Отсюда величина

Т раотет

о увеличением к ♦ Более того,

с ростом степени точности рао-

- 126 -

тех я число обращений N k к повторяющемуся участку» Например, с ростом точности в ряде Тейлора следует выбирать большее число

членов разложения.

 

Очевидно, что значительный роот времени Т

может при­

вести к нежелательным показателям эффективности

алгорит­

мов управления. В связи о этим в настоящей главе рассматрива­

ются некоторые возможности уменьшения N k и 4!Чч

в различных

клаооах вычисления элементарных функций.

 

 

 

 

 

 

 

В классе отепенных разложений Тейлора-Маклорена функция

 

 

 

S

C

*

 

Р

xCiVfi

X

-

 

 

i

#

 

 

 

 

)

о •

 

 

 

Согласно [ б 1 ,

для

 

 

1=0

 

 

 

 

 

 

 

знакочередувдего ряда оотаточный член

 

 

 

 

J

R

p l

 

 

<

!

О р

+

П

 

,(5,2)

где

 

Q p*i— ({>*<)

 

 

-й член ряда.

 

 

 

 

 

 

 

Боля вое члены ряда одного знака удовлетворяют условию

то

конечный член ряда

 

p>

qq

1

 

 

 

 

 

 

 

 

 

G

 

 

5

 

 

 

 

Отоада оотаточнай член

R

p

l

« l

a

p

l

-

 

 

 

 

 

 

|

 

 

 

 

 

Для многих степенных разложений элементарных функций,

содержащих в знаменателе

j

!

,

в

интервале изменения аргумен­

та

+ l ]

при

р > 4

 

условие

(5.3) можно записать

так:

 

 

 

 

 

I RP I <

1«р I •

 

 

 

 

(5-4) '

 

&

Конечный р

-член

ряда

заданной абсолютной погрешности

 

при выполнении (5 .2)

н (5,4) можно выбрать из условия

 

 

 

 

O p

^

^

0(i+i

>

 

 

 

 

»

где

 

Op

и

О р н

-

 

максимальные значения членов

на всем ин-

тчдвале изменения аргумента.

 

 

 

 

 

 

 

 

 

- 127 -

 

Реализуя

Р +*

член разложения по схеме Горнера,

оо- |

глаоно (5 .1)

и

(4 .27), получиы^для

N « = p

 

 

 

j

 

Т = * р £ * ч — р ( ^ м

+ - ^ уин)

 

 

 

 

 

 

'

 

 

'

 

 

 

 

 

 

 

(5.5)

 

 

 

* р ( к И о + 1< ш ^ в ) - p k ( £ + k m ) i 0 .

 

 

 

Пусть для

 

И

-разрядной сетки

сГ= 2 н ,

а для повышенной

точнооти абсолютная ошибка метода 8 я

2 *

. Обозначим через

N i

порядковые номера членов ряда,

которые обеспечивают точ'

нооть вычисления в

(

i n

) -ы разряде

t=

1 , 2 , . . . ,

к

,

тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Out

>

2 ' ы > й н т .

 

(5.6)

 

 

Для достижения точности в

( ia K )-м разряде из (5.6)

 

следует

система

 

 

 

 

 

 

 

 

 

 

■ .

 

 

 

 

 

 

 

 

a Hi > Т *

>

 

 

 

 

 

 

 

 

 

 

 

 

С(щг У 2

> Q n*.+1

у

 

 

 

 

 

 

 

 

atiK > 2 ~ kH> a N^ i

,

(5.7)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

%

 

 

 

где

Ык=Р

,

a

 

Nt(+I ■

р+ I.

 

 

 

 

 

Преобразуем

(5 .7) к виду

 

 

 

 

 

 

 

 

 

'

Ос

 

 

а ,

 

 

Q

a

 

Он, > 2 ~И

 

(5.8)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2~*

>

 

Он, +1

Q^+z

. . .

Qfi/Z> 2

 

 

 

 

< г *

>

 

&НС+1

0*1+2

• • ■W««)^ 2 ^

 

 

 

 

2 ‘ (' 0">

а . , . ,

Ow-f+2

• Cli/K> 2~*w

 

 

 

2 ~ к* >

 

 

 

 

 

 

 

 

- 128 -

 

 

 

 

 

 

Из (5.8) видно, что члены

 

 

,

Qn k- , +z

i . . . * 0

iv* не пре­

вышают значения

Ы к

 

 

и при выполнении уоловия (5,2) и

(5 .4)

 

 

 

 

 

.

 

,

 

 

 

 

 

 

 

£ _

а *

 

<

 

 

 

 

 

(5.9)

 

 

 

V-Nit+1

 

 

 

 

 

 

 

 

 

 

Таким образом,

суммирование данных членов рада можно

проводить с одинарной точностью.

 

 

 

 

 

 

 

Для членов

 

 

 

 

 

 

,.«».C Iiyh можно запи­

сать,

что

 

(

 

 

 

 

. - (К-2) И

 

 

 

 

 

 

 

X

а *

<

 

 

 

 

 

 

 

 

2 '

 

 

 

 

(5.Ю )

 

 

T=Nk-i +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и суммирование этих членов рада следует проводить не ниже,

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

 

 

 

 

 

 

 

 

 

Неравенство

(5.10)

совместно

о (5.9)

дает

 

 

 

 

 

Nк

 

 

 

 

 

 

 

 

 

 

 

В общем олучае для членов C?Wi4|

М

ы

2с

О бусловив

 

 

 

W;-m

 

 

 

 

 

 

 

 

 

 

 

 

 

X

a *

<

2

гЫ

 

 

 

 

 

 

 

 

 

<Р* NiH

 

 

 

 

 

 

 

 

 

 

 

позволяет сумму этих членов вычислять о точностью

E k - l 3 .

С учетом последующих членов

 

 

 

 

 

 

 

 

 

1

>

<

2

Л

 

 

 

 

 

 

 

Для

i s

I имеем первые члены Of.,

0< ,Cfa , . . . , Ofv(

,

суммиро­

вание которых вдет

о

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

 

 

 

 

Таким образом, вычисляя с

 

к-значной точностью пер­

вые члены рада,

а остальные с

точностью, меньшей

к

,

значи­

тельно улучшим показатель

Ь

эффективности алгоритма.

Как

правило,

степенные разложения Тейлора-Маклорена на вычислитель­

ных машинах реализуются по схеме Горнера или с использованием рекурентных соотношений. Поэтому вычисление оуммы рада начи­

нается о младших членов ( Q p , O

p - i

, . , . с, одинар0 ^ ­ 0

ной точностью. Затем переходим к

удвоенной точности и так да-

)-

 

 

89 -

 

 

 

 

 

 

 

лее. Заканчиваем вычисления о

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

Повторяющийся участок вычисления но схеме Горнера со­

стоит из операций умножения и оложения. Поэтому

 

.CK-U-oJ

iTK-CH)]

гСк-t-OJ

 

t v 4

— "Сел

-I-

х . smh

=

 

 

= [ k - ( £ . - 0 ] { f c + [ k - ( i - 0 ] m ] t o .

 

Общее время реализации всего ^яда

 

 

Т -

+ (Nz- N i) -Ьуч + •■• + (N k- N*-4) ^

 

: N i[6 +(2k -f)ftl]+*** +

N/tf-i ( £ +5 гс)+№*н (£+Згп)+М ((£+м).

Отовда

 

 

 

 

 

Т

- X

N i { 6 + [ 2 ( X - 0 + i ] w } .

(5,11)

При реализации ряда Маклорена по схеме Горнера для хранения постоянных коэффициентов % ^ \ о )

лс ‘ “ Т Г

членов ряда О

j =С^ X

требуетоя объем долговременной

памяти

D - ( N - H ) К « ( р + * ) К .

 

 

 

 

 

(5.12)

Однако

этот

объем значительно уменьшается, воли учесть,

что для хранения констант Су*., +<

, Су^+л... .. Су* достаточно

по одной ячейке (из

системы (5.8)

данные члены меньше 2 " 0 ^ и),

для констант Сук-л+<

.........достаточно по 2 ячейки, а для

констант Со ,

С» , .. . , С у ,

необходимо но к ячеек.

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

D - ( N 4 M ) K

+ ( N a- N i ) ( k - 0 + ( N . - N 0 ( K - 2 ) + ... +

+( N1 - Nl-i) [k - ( t- о] +• *•+(Nk-i+ IVif-i)2+(Nk-IYk-i

=k + Ni 4- Nz + --- +Nk,

или

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