Этап "Архимедов рычаг"

Тема исследования: Как выбор пути решения влияет на результат?
Объект исследования: компьютерная арифметика.
Цель исследования: Выявить влияние пути решения на результат компьютерных вычислений.
Задачи исследования:
  1. Развить навыки выбора метода решения задачи.
  2. Научиться составлять план проведения экспериментальной работы.
  3. Научиться проводить компьютерный эксперимент.
  4. Научиться анализировать результаты экспериментальной работы.
Действуем согласно, заданному плану


Составили компьютерную программу , включающую различные схемы вычисления
Анализируя полученные результаты, делаем выводы, что вычисление слева направо дает более точный результат. Т.е. схема вычисления влияет на результат.

Гипотеза: вычисление значения суммы или произведения конечных числовых рядов более точно при схеме вычисления "слева направо"

Проверили наше предположение еще на одном примере. Пример ряда взят из задачи про Ахилла и черепаху.

1 +1/2 + 1/4 + 1/8 +1/16 +...+1/(2^n)

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

Правила получения точного результата:
(в разработке)

  1. Упростить выражение, если возможно.
  2. Разработать не менее двух схем вычисления
  3. Проанализировать работу каждой схемы
  4. Выбрать "лучшую" схему для данной задачи


Как же выбрать правильную схему?

Приложение: Что такое число с плавающей запятой?


Я обнаружил, что многие на самом деле не вникают, что такое числа с плавающей запятой, поэтому есть смысл вкратце объяснить. Я пропущу здесь мельчайшие детали о битах, INF, NaN и поднормалях, а вместо этого покажу несколько примеров чисел с плавающей запятой в base-10. Всё то же самое применимо к двоичным числам.

Вот несколько примеров чисел с плавающей запятой, все с семью десятичными разрядами (это близко к 32-битному float).

1.875545 · 10^-18 = 0.000 000 000 000 000 001 875 545
3.141593 · 10^0 = 3.141593
2.997925 · 10^8 = 299 792 500
6.022141 · 10^23 = 602 214 100 000 000 000 000 000

Выделенная жирным часть называется мантиссой, а выделенная курсивом — экспонентой. Вкратце, точность хранится в мантиссе, а величина в экспоненте. Так как с ними работать? Ну, умножение производится просто: перемножаем мантисссы и складываем экспоненты:

1.111111 · 10^42 · 2.000000 · 10^7
= (1.111111 · 2.000000) · 10^(42 + 7)
2.222222 · 10^49

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

3.141593 · 10^0 + 1.111111 · 10^-3 =
3.141593 + 0.0001111111 =
3.141593 + 0.000111 =
3.141704

Заметьте, как мы сдвинули некоторые из значимых десятичных знаков, чтобы запятые совпадали. Другими словами, мы теряем точность, когда складываем числа разных величин.

Ссылка на источник

Вывод: при сложении нужно использовать схему - справа налево, а при умножении - слева направо.

Бонусное задание




4 комментария:

  1. Хорошая работа, важные выводы. Однако, пример суммирования в команде TheBestTeam показывает, что лучшей является схема вычислений справа налево. Есть над чем подумать... Успешной работы! Новых открытий!

    ОтветитьУдалить
    Ответы
    1. Да, да, как-то не внимательно изначально прочитала. Исправила.

      Удалить
  2. Уважаемые Экспериментаторы, большое спасибо за своевременное, качественное и 100%-е выполнение заданий проекта. Вы являете собой пример добросовестного отношения к работе, умения взаимодействовать в команде, спланировать и организовать свою деятельность.

    ОтветитьУдалить