БлогNot. Mathcad: почему произведение положительных значений равно нулю :)

Mathcad: почему произведение положительных значений равно нулю :)

Условие задачи было следующим:

Найти произведение только положительных значений функции f(x)=cos(x), величина x меняется от до π включительно с шагом π/10

С функцией if внутри стандартного оператора произведения у народа упорно получался ноль, решение с помощью программирования функции приводило к тому же результату. Проблема уже описана вот тут и решается аналогично.

Дело в том, что косинус от -π/2, вычисленный не символьно, а аналитически, едва ли будет равен 0 из-за погрешностей работы с вещественными числами (компьютер считает косинус, раскладывая его в ряд Маклорена). Если дважды щёлкнуть по числу и увеличить количество знаков в дробной части, мы увидим "настоящее" значение (см. Y6 на скрине):

Произведение положительных значений функции в Mathcad - почему ноль?
Произведение положительных значений функции в Mathcad - почему ноль?

Соответственно, используя в условии не Yi, а, например, round(Yi,10), получаем правильный ответ.

 Скачать этот пример в файле .xmcd Mathcad 14/15 (33 Кб)

04.03.2016, 22:25 [6125 просмотров]


теги: ошибка учебное mathcad

К этой статье пока нет комментариев, Ваш будет первым