Разделы презентаций


Программирование 1

Содержание

13.10.2011Вычисления с вещественными числами 2Вычисления с вещественными числами и машинное эпсилон

Слайды и текст этой презентации

Слайд 113.10.2011
Вычисления с вещественными числами 2
Программирование 1
Лекция 7

Вычисления с вещественными числами

(продолжение):
Вычисления с вещественными числами и машинное эпсилон

13.10.2011Вычисления с вещественными числами 2Программирование 1Лекция 7Вычисления с вещественными числами (продолжение):Вычисления с вещественными числами и машинное эпсилон

Слайд 213.10.2011
Вычисления с вещественными числами 2
Вычисления с вещественными числами и машинное

эпсилон

13.10.2011Вычисления с вещественными числами 2Вычисления с вещественными числами и машинное эпсилон

Слайд 313.10.2011
Вычисления с вещественными числами 2
Вычисления с вещественными числами и машинное

эпсилон

13.10.2011Вычисления с вещественными числами 2Вычисления с вещественными числами и машинное эпсилон

Слайд 413.10.2011
Вычисления с вещественными числами 2
Особенности системы F (t, L, U)

13.10.2011Вычисления с вещественными числами 2Особенности системы F (t, L, U)

Слайд 513.10.2011
Вычисления с вещественными числами 2
1
0




13.10.2011Вычисления с вещественными числами 210

Слайд 613.10.2011
Вычисления с вещественными числами 2
0
1
2
1
1
1

13.10.2011Вычисления с вещественными числами 2012111

Слайд 713.10.2011
Вычисления с вещественными числами 2
2

13.10.2011Вычисления с вещественными числами 22

Слайд 813.10.2011
Вычисления с вещественными числами 2
0
4
2
3
3
2
1


13.10.2011Вычисления с вещественными числами 20423321

Слайд 913.10.2011
Вычисления с вещественными числами 2
Особенности

13.10.2011Вычисления с вещественными числами 2Особенности

Слайд 1013.10.2011
Вычисления с вещественными числами 2

13.10.2011Вычисления с вещественными числами 2

Слайд 1113.10.2011
Вычисления с вещественными числами 2
Особенности вычислений с вещественными числами. Дополнение.


Нарушение ассоциативности сложения:
(a + b) + c  a

+ (b + c)
Пример:
5/16 + (2  1)  (5/16 + 2)  1
5/16 + (2  1) = 5/16 + 1= 0.101*21 + 0.100*21 =
= (0.101*22 + 0.100*20) * 21=
= (0.00101*20 + 0.100*20) * 21=
= (0.001[01] + 0.100) * 21= (0.101[01]) * 21=
= 0.101* 21 = 5/4 = 1.
Точный результат = 21/16 = 1+5/16

Следствие: результат зависит от порядка суммирования

13.10.2011Вычисления с вещественными числами 2Особенности вычислений с вещественными числами. Дополнение. Нарушение ассоциативности сложения: (a + b) +

Слайд 1213.10.2011
Вычисления с вещественными числами 2
5/16 + 2 = 0.101*21 +

0.100*22 =
= (0.101*23 + 0.100*20) * 22=
= (0.000101*20 +

0.100*20) * 22=
= (0.000[101] + 0.100) * 22= (0.100[101]) * 22 =
0.100* 22 = 2 в режиме «отбрасывания»
=
0.101* 22 = 2 в режиме округления
1 в режиме «отбрасывания»
(5/16 + 2)  1 =
1 в режиме округления
Т.о. 1  1 и 1  1

1

1

1

1+5/16

13.10.2011Вычисления с вещественными числами 25/16 + 2 = 0.101*21 + 0.100*22 = 	= (0.101*23 + 0.100*20) *

Слайд 13Стандарт 754 (IEEE) – 1985 г. – «плавающая точка IEEE»

формат

одинарной точности (в B-Pascal – тип single, в С/С++ -

float);
формат двойной точности (в BP и в – тип С/С++ double);
формат расширенной (повышенной) точности (в BP – тип Extended ). (long double ?)

13.10.2011

Вычисления с вещественными числами 2

Стандартные формы чисел с плавающей точкой:

Стандарт 754 (IEEE) – 1985 г. – «плавающая точка IEEE»формат одинарной точности (в B-Pascal – тип single,

Слайд 1413.10.2011
Вычисления с вещественными числами 2
Стандартные формы чисел с плавающей точкой: формат

одинарной точности (float / single); формат двойной точности (double); формат расширенной точности

(extended).
13.10.2011Вычисления с вещественными числами 2Стандартные формы чисел с плавающей точкой: формат одинарной точности (float / single); формат

Слайд 1513.10.2011
Вычисления с вещественными числами 2
Формат чисел типов float, double (и

extended)
одинарная точность float
двойная точностьdouble
Расширенная точность extended
Знак: 1 бит
Порядок: 8

бит

Мантисса: 23 бита

4 байта

8 байт

10 байт

13.10.2011Вычисления с вещественными числами 2Формат чисел типов float, double (и extended)одинарная точность floatдвойная точностьdoubleРасширенная точность extendedЗнак: 1

Слайд 1613.10.2011
Вычисления с вещественными числами 2
Машинное эпсилон
В качестве характеристики точности
представления

вещественных чисел в ЭВМ
используют так называемое машинное эпсилон,
определяемое

как
eps = min { >0: fl ( + 1) > 1 }.
Эта величина учитывает особенности реализации
системы F(t, L, U) в конкретном типе компьютера.
Проблема переносимости ПО (библиотек).

1

0.10…001*21

eps

пусто

13.10.2011Вычисления с вещественными числами 2Машинное эпсилонВ качестве характеристики точности представления вещественных чисел в ЭВМ используют так называемое

Слайд 17Встроенное в программу («эмпирическое») вычисление машинного эпсилон
typedef float real;

// (long) double
real eps, epsP1, epsil;
int i;
i = 0;

eps = 1.0; epsP1 = 2.0;
while (epsP1 > 1.0) { // eps=2^(-i) && (1+eps>1)
eps = eps * 0.5;
epsP1 = eps + 1.0;
i = i + 1;
} //end: eps=2^(-i) && !(1+eps>1) && (1+2*eps>1)
epsil = 2.0 * eps;

13.10.2011

Вычисления с вещественными числами 2

eps1.cpp

Встроенное в программу («эмпирическое») вычисление машинного эпсилонtypedef  float real; //  (long) doublereal eps, epsP1, epsil;int

Слайд 18Встроенное в программу («эмпирическое») вычисление машинного эпсилон (найди отличия!)
typedef

float real; // (long) double
real eps, epsil;
int i;
i =

0; eps = 1.0;
while (eps+1.0 > 1.0) { // eps=2^(-i) && (1+eps>1)
eps = eps * 0.5;
i = i + 1;
} //end: eps=2^(-i) && !(1+eps>1) && (1+2*eps>1)
epsil = 2.0 * eps;

13.10.2011

Вычисления с вещественными числами 2

eps2.cpp

Анализ выполнения (eps1.cpp b, eps2.cpp) и интерпретация результатов

Встроенное в программу («эмпирическое») вычисление машинного эпсилон (найди отличия!)typedef  float real; //  (long) doublereal eps,

Слайд 1913.10.2011
Вычисления с вещественными числами 2
Рекомендации программисту
Память более важна, чем точность

 одинарная точность float (single)
Точность более важна, чем память

 двойная точность double (long double)
[Расширенная точность Extended только в специальных случаях (с самостоятельным контролем точности программистом) – в С++ не актуально]
13.10.2011Вычисления с вещественными числами 2Рекомендации программистуПамять более важна, чем точность  одинарная точность float (single) Точность более

Слайд 20Полезное отступление
Вывод результатов работы программы в файл
Что дает?
Возможность документировать

(сохранить) для дальнейшего анализа, отчетности и т.п.
Возможность анализировать с большим

полем обзора, чем окно консоли (+ масштабирование)
Возможность редактировать (модифицировать, вырезать, использовать в других документах – например, в лекциях - и т.п.)
Возможность обрабатывать другими программами (например, Exel – таблицы, графики, диаграммы и т.п.)

13.10.2011

Вычисления с вещественными числами 2

Полезное отступлениеВывод результатов работы программы в файл Что дает?Возможность документировать (сохранить) для дальнейшего анализа, отчетности и т.п.Возможность

Слайд 21Рекомендации книг по C++
См. файл «книги С++.ppt»
13.10.2011
Вычисления с вещественными числами

Рекомендации книг по C++См. файл «книги С++.ppt»13.10.2011Вычисления с вещественными числами 2

Слайд 22Ввод-вывод
13.10.2011
Вычисления с вещественными числами 2

Ввод-вывод13.10.2011Вычисления с вещественными числами 2

Слайд 23Модель потока вывода
Поток (типа) ostream
Преобразует значения разных типов в последовательность

символов
Передает символы «куда-то» (на консоль, в файл, на другой

компьютер и т.п.

c

(1,234)

123

“куда-то”
(в «человеческом» виде)

Вычисления с вещественными числами 2

buffer

ostream

Значения разных типов

Последовательности символов

13.56

13.10.2011

Модель потока выводаПоток (типа) ostreamПреобразует значения разных типов в последовательность символов Передает символы «куда-то» (на консоль, в

Слайд 24c
(1,234)
123
“откуда-то”
Вычисления с вещественными числами 2
buffer

istream
Модель потока ввода
Значения разных типов
Последовательности символов
13.56
Поток

(типа) istream
Получает символы «откуда-то» (с консоли, из файла, от другого

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

13.10.2011

c(1,234)123“откуда-то”Вычисления с вещественными числами 2bufferistreamМодель потока вводаЗначения разных типовПоследовательности символов13.56Поток (типа) istreamПолучает символы «откуда-то» (с консоли, из

Слайд 25Нами уже использовались
Стандартные потоки (из библиотеки iostream):
для ввода –

поток cin (типа istream)
для вывода – поток cout

(типа ostream)

Подключение в программе:
#include
Для форматирования:
#include

13.10.2011

Вычисления с вещественными числами 2

Нами уже использовалисьСтандартные потоки (из библиотеки iostream): для ввода – поток cin (типа istream) для вывода –

Слайд 26Файлы. Обобщенная модель
Диск
Система ввода-вывода
Основная память
Файлы
(последовательности байтов)
Потоки iostream
Объекты (разных типов)
Stroustrup/Programming

-- Oct'10
Запись в файл:
Указать имя файла
Открыть файл для записи (или

создать новый)
Записать в файл объекты (значения)
Закрыть файл

Во внешней среде - файлы

В программной среде - потоки

Файлы. Обобщенная модель ДискСистема ввода-выводаОсновная памятьФайлы(последовательности байтов)Потоки iostreamОбъекты (разных типов)Stroustrup/Programming -- Oct'10Запись в файл:Указать имя файлаОткрыть файл

Слайд 27Имя потока вывода
#include // подключить библиотеку
13.10.2011
Вычисления с вещественными числами

2
// открыть файл для записи с именем outputD.txt:
ofstream outfile (

"outputD.txt" );

// запись в файл порции данных:
outfile << '<‘ << i << "> eps : " << eps << " 1 + eps :" << epsP1 << endl;

outfile.close(); // закрыть файл

Имя файла

См. программу eps3file.cpp – c выводом в файл для типа float

Имя потока вывода#include // подключить библиотеку13.10.2011Вычисления с вещественными числами 2// открыть файл для записи с именем outputD.txt:ofstream

Слайд 28Демонстрация программ про машинное ЭПСИЛОН
Программы про машинное эпсилон см.

в таком порядке:
eps1.cpp – без вывода в файл
eps2.cpp – без

вывода в файл + некорректность float==double
eps3file.cpp – c выводом в файл для float
eps3d_file.cpp – c выводом в файл для double
eps3f_file_err.cpp – c выводом в файл для float + некорректность float==double

13.10.2011

Вычисления с вещественными числами 2

Демонстрация программ про машинное ЭПСИЛОН Программы про машинное эпсилон см. в таком порядке:eps1.cpp – без вывода в

Слайд 29Конец отступления про вывод в файл
13.10.2011
Вычисления с вещественными числами 2

Конец отступления про вывод в файл13.10.2011Вычисления с вещественными числами 2

Слайд 3013.10.2011
Вычисления с вещественными числами 2
Анализ примера с вычислением sin x
С

выводом в файл! См. sin3f_fil.cpp

13.10.2011Вычисления с вещественными числами 2Анализ примера с вычислением sin xС выводом в файл! См. sin3f_fil.cpp

Слайд 3113.10.2011
Вычисления с вещественными числами 2

13.10.2011Вычисления с вещественными числами 2

Слайд 3213.10.2011
Вычисления с вещественными числами 2
Машинное эпсилон и точность вычислений (комментарии и

примеры)
Параметр точности  - характеристика абсолютной или относительной ошибки (точности);

см. exponenta.cpp
13.10.2011Вычисления с вещественными числами 2Машинное эпсилон и точность вычислений (комментарии и примеры)Параметр точности  - характеристика абсолютной

Слайд 3313.10.2011
Вычисления с вещественными числами 2
Пример. Проверка ортогональности прямых
Изменение масштаба :
*

  *>  или *>   *< 


Отложено

13.10.2011Вычисления с вещественными числами 2Пример. Проверка ортогональности прямыхИзменение масштаба :*<   *>  или *> 

Слайд 3413.10.2011
Вычисления с вещественными числами 2
 вектор нормали прямой
 ортогональность прямых
Отложено

13.10.2011Вычисления с вещественными числами 2 вектор нормали прямой ортогональность прямыхОтложено

Слайд 3513.10.2011
Вычисления с вещественными числами 2
КОНЕЦ ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
КОНЕЦ

ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
КОНЕЦ

ЛЕКЦИИ
13.10.2011Вычисления с вещественными числами 2КОНЕЦ  ЛЕКЦИИКОНЕЦ  ЛЕКЦИИКОНЕЦ  ЛЕКЦИИКОНЕЦ  ЛЕКЦИИКОНЕЦ  ЛЕКЦИИКОНЕЦ  ЛЕКЦИИКОНЕЦ

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика