МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of...

25
МАШИННАЯ АРИФМЕТИКА И ВЫЧИСЛИТЕЛЬНО НЕУСТОЙЧИВЫЕ АЛГОРИТМЫ Матросов Александр Васильевич

Transcript of МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of...

Page 1: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

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

АЛГОРИТМЫ

Матросов Александр Васильевич

Page 2: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

2

Арифметические вычисления в программах(1)

Разность чисел одинарной точности

123456789 - 123456788 = 1

Программа VBA1.

Разность чисел одинарной иудвоенной точности

123456789.123457 – 123456789.123457 = 0single double

Программа VBA2.

Page 3: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

Арифметические вычисления в программах(2)

3

Скалярное произведение векторов

a = (1.0 1020, 1234.0, 1.0 1018)b = (1.0 1020, 5.0, -1.0 1022)(a,b) = 6170.0

Программа Maple

Использование промежуточных вычислений

a = 1.0 (single) b = 3.0 (single)a / b – 1.0 / 3.0 = 0

Программа VBA3.

4.

Page 4: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

Числа с плавающей запятой (1)

4

Число с плавающей запятой состоит из:1) Мантиссы (выражающей значение числа без учёта порядка)2) Знака мантиссы (указывающего на отрицательность или положительность числа)3) Порядка (выражающего степень основания числа, на которое умножается мантисса)4) Знака порядка

x = ±a1,a2...at × be = ±f × be , f = a1,a2...at , -m ≤ e ≤ M (1)

Нормальная формаb-1 ≤ f < 1 (f = 0,a1a2...at)

0,001 = 0,1 × 10-2 = 0,01 × 10-1 = 0,001 × 100

Нормализованная форма1 ≤ f < b (b = 1, f = 1,a1a2...at)

0,001 = 1,0 × 10-3

Page 5: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

Числа с плавающей запятой (2)

5

Числа с плавающей запятой вида (1) образуют конечное множество Q рациональных чисел.

Арифметические операции над числами из множества Qне могут быть выполнены точно, результат не принадлежит Q, а следовательно подлежит округлению.

Page 6: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

Выполнение арифметических операций (1)

6

Сложение и вычитаниеМеньшее по абсолютной величине число сдвигается

вправо на |b1-b2| позиций, выполняется операция и

результат округляется до t цифр и нормализуется

0,3127·10-6+0,4153·104

---------------------------------0,4153 0000 ·104

0,0000 0000 003127·104

---------------------------------0,4153 0000·104 = 0,4153 ·104

0,3127·104+0,4153·101

---------------------------------0,4153 0000·104

0,0003 1270·104

---------------------------------0,4156 1270·104 = 0,4156 ·104

0,4127·104+0,7158·104

---------------------------------0,4127 0000·104

0,7158 0000·104

---------------------------------1,1285 0000·104 = 0,1128 5000 ·105 = 0,1129 ·105

1) 2)

3)

Page 7: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

Выполнение арифметических операций (2)

7

УмножениеВычисляется экспонента результата b1+b2, мантиссы

перемножаются и при необходимости нормализуются

сдвигом влево, результат округляется до t цифр и

нормализуется

0,8132·10-4х0,6135·106

---------------------------------0, 81320, 5135---------------------------------0, 4988 9820·102 = 0,4989·102

0,1213·10-3+0,1714·10-4

---------------------------------0,12130,1714---------------------------------0,0207 9082·10-7=0,2079 0820·10-8

= 0,2079 ·10-8

1) 2)

Page 8: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

Выполнение арифметических операций (3)

8

ДелениеВычисляется экспонента результата b1-b2, если мантисса

делимого больше мантиссы делителя, то мантисса

делимого сдвигается вправо на один разряд, а экспонента

результат увеличивается на 1, мантиссы делятся,результат округляется до t цифр

0,9137·10-6:0,1312·10-2

---------------------------------0, 9137 = 0, 0913 7000 (·10-4+1)0, 1312---------------------------------0, 6964 17·10-3 = 0,6964·10-3

0,1235·104:0,9872·10-6

---------------------------------0,1235 (·104-(-6)= 1010)0,9872---------------------------------0,1251 01·1010=0,1251·1010

1) 2)

Page 9: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

9

Стандарт IEEE 754 (1)

IEEE - Institute of Electrical and Electronics Engineers

• S - бит знака, если S=0 - положительное число; S=1 - отрицательное число • E - смещенная экспонента двоичного числа;exp2 = E - (2(b-1) - 1) - экспонента двоичного нормализованного числа с плавающей точкой , (2(b-1) -1) - заданное смещение экспоненты • M - остаток мантиссы двоичного нормализованного числа с плавающей точкой

Page 10: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

10

Стандарт IEEE 754 (2)

Одинарная точность

Удвоенная точность

Page 11: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

11

Разъяснение ошибок программных вычислений (1)

Разность чисел одинарной точности123456789 - 123456788 = 1

123456789 = 4CEB79A3 = 123456792 абсолютная ошибка равна +30| 10011001 | 11010110111100110100011 (101)

123456788 = 4CEB79A2 = 123456784 абсолютная ошибка равна -40| 10011001 | 11010110111100110100010 (100)

123456792 - 123456784 = 8 (800%)

1.

Разность чисел одинарной и удвоенной точности123456789.123457 (single) – 123456789.123457 (double) = 0

Single: 123456789.123457 = 4CEB79A3=123456792,0Double: 123456789.123457 419D6F34547E6B75 =123456789,123456791043281555176 123456792,0 - 123456789,123456791043281555176 = 2,87654300034046

2.

Page 12: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

Разъяснение ошибок программных вычислений (2)

12

Скалярное произведение векторов

a = (1.0 1020, 1234.0, 1.0 1018)b = (1.0 1020, 5.0, -1.0 1022)(a,b) = 6170.0

Ответ см. в примере сложения числа большого

Порядка с числом малого порядка

Программа Maple

Использование промежуточных вычислений

a = 1.0 (single) b = 3.0 (single)a / b – 1.0 / 3.0 = 0

Ответ см. в задаче 2

Программа VBA3.

4.

Page 13: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

Вычисление функции sin(x) степенным рядом

13

Digits8 16 20 23 25

n 68an 0.4265 10-4 < 1.0 10-4

Sn -.8835·1011 18247.6344 -1.2690 -.7697 -.7683

Sточн

-.7683| Sn-Sточн| -.8835·1011 18248.4027 -.5007 -0.0014 0

=0.0001

вычисление синуса рядом.mws

Page 14: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

14

Дифференциальные уравнения изгиба балки

Page 15: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

15

Аналитический подход

Page 16: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

16

Разрешающая система уравнений

q F

z

x O

l/2 l/2

Page 17: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

17

Расчеты на традиционном компьютере (1)

n=59; S(n)=3016691835837026.; log[10](S)=15.47953094 795058;n=60; S(n)=3016677101793550.; log[10](S)=15.47952882 677621;

Page 18: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

18

Расчеты на традиционном компьютере

n=159; S(n)=3016677430639723.; log[10](S)=15.4795288 7411839;n=160; S(n)=3016677430639723.; log[10](S)=15.4795288 7411839;

Page 19: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

19

Расчеты на традиционном компьютере

n=159; S(n)=0.3484052939 443682e21; log[10](S)=20.54208474539808;n=160; S(n)=0.3484052939 443682e21; log[10](S)=20.54208474539808;

Page 20: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

20

Расчеты в Maple

n=159; S(n)=0.3484052939 354102047e21; log[10](S)=20.54208474538691369;n=160; S(n)=0.3484052939 354102047e21; log[10](S)=20.54208474538691369;

(сравнить с предыдущим слайдом)

Page 21: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

21

x

y O

h

a

(u)

(v)

0xσ

0xyτ

hxσ

hxyτ

0u

0v

hu

hv

(1)

Метод начальных функций

-----------------------------------------------------------------------------------------------

Page 22: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

22

Вычислительная неустойчивость МНФ (1)

Частичные суммы рядов для перемещений при x=h

Перемещения

в срединном сечении

16 цифр в мантиссе 20 цифр в мантиссе

изотропный прямоугольник:

x

y O

h

a

(u)

(v)

0xσ

0xyτ

hxσ

hxyτ

0u

0v

hu

hv

log(|Sn|)

n

( )cosax a m y aτ τ π=

0 1q = −

2aq = −

0 0τ =

0.5aτ = −

( )00 cosx m y aτ τ π=( )0

0 sinx q m y aσ π=

( )sinax aq m y aσ π=

Page 23: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

23

Решение системы линейных уравнений1µ −= A A

DigitsВычисленные значения правых частей уравнений (2)

первого второго

10 -17. -.8507405062e-96

12 -1.99210 -.42026

14 -2.00185228 -.50126888

16 -2.000000071312904 -.4999923041379909

( )00 cosv v m y aπ=

29 29 220 0

29 29 220 0

0.3175282498 10 0.3244124968 10 0.432867228810 2

0.3244124968 10 0.3312967437 10 0.442362965610 0.5

u v

u v

− ⋅ + ⋅ + ⋅ = −

− ⋅ + ⋅ + ⋅ = −

( )00 sinu u m y aπ= m = 7

(2)

,"cond:" 9072.1395201958095803Число обусловленности:

, ,"u0,v0" 0.4547282943 10-6 0.1591548336 10-6

, ,"u0,v0" 0.45472839987929027078 10-6 0.15915493452111727395 10-6Digits = 20

Digits = 10

Page 24: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

24

Замкнутая форма решения МНФ

расчет изотропии

расчет ортотропии

:= L ,1 1 + 1

2α ( ) + 1 ν y ( )sinh α y ( )coshα y := L ,1 2 −

1

2( ) − ν 1 ( )sinh α y

1

2( ) + 1 ν α y ( )coshα y

… := L ,4 1

1

2α E ( ) + ( )sinh α y α y ( )coshα y

:= L ,1 1

H66 ( ) + ( ) + H22 α12 H12 ( )coshα1 alph y ( )− − H22 α22 H12 ( )cos α2 alph y

d

:= L ,4 1 −H66

2alph ( + ( )− − − H11 α2 2 H12 α12 α2 H22 α14 α2 ( )sinh α1 alph y ( ) + + H11 α1 2 H12 α1 α22 H22 α1 α24 (sinh α2 alph

d α1 α2

:= L ,3 2 −1

2α E ( )− + ( )sinh α y α y ( )coshα y

= u0 u0

cos

m π x

a = v0 v0

sin

m π x

a = Sy0 sy0

sin

m π x

a = Txy0 txy0

cos

m π x

a

-------------------------------------------------------------------------------------------------------

Page 25: МАШИННАЯ АРИФМЕТИКА И …Стандарт IEEE 754 (1) IEEE - Institute of Electrical and Electronics Engineers • S -бит знака , если S=0 -положительное

Литература

1. Wilkinson J. H. Rounding Errors in Algebraic Processes, Prentice-Hall, Inc., 1963

2. Кнут Д. Искусство программирования для ЭВМ. – Т. 2. – М.: Наука, 1977

3. Годунов С.К. Решение систем линейных уравнений. – Новосибирск: Наука, 1980

4. Бабенко К.И. Основы численного анализа. –М.: Наука, 1986

25