БлогNot. Mathcad: программой или одной формулой?

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

Mathcad: программой или одной формулой?

Для реализации в Matchad типовых алгоритмов, связанных с расчётами числовых характеристик последовательностей и массивов, совсем не обязательно писать программы по аналогии с классическими процедурными языками. Например, значение минимального по модулю элемента массива можно в Mathcad найти следующим образом:

процедурный способ поиска минимального по модулю значения в массиве
процедурный способ поиска минимального по модулю значения в массиве

Но куда быстрее сделать это с помощью оператора векторизации:

быстрый способ с оператором векторизации
быстрый способ с оператором векторизации

Количество одинаковых минимумов в массиве можно искать, делая дополнительный проход по нему:

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

а можно просто узнать длину вектора, составленного из вхождений минимального элемента в исходный вектор:

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

Разумеется, далеко не факт, что второй способ менее затратен по вычислительным ресурсам, скорее наоборот. Но преимущество в том, что мы пользуемся только стандартными функциями и не составляем чреватых ошибками пользовательских подпрограмм-функций.

Современная тенденция языков и пакетов - готовые алгоритмы вместо их программирования, например, библиотека <algorithm> в C++, функции обработки и фильтрации массивов в PHP или встроенные операторы суммирования, перемножения, векторизации и т.п. в Mathcad.

Общие правила расчётов по типовым алгоритмам можно сформулировать так:

где ":=" - оператор присваивания. Эти правила не зависят от языка или пакета, в которых вы работаете.

Однако если в языке, как и в Mathcad, есть встроенные циклические операторы и встроенная условная функция, все 3 шага типового алгоритма можно выполнить одним выражением.

Приведём несколько примеров, иллюстрирующих это утверждение, найдя для массива A одним оператором:

Вот скриншоты расчётов, сделанных в том же порядке:

некоторые расчёты для типовых алгоритмов операторами суммы и произведения
некоторые расчёты для типовых алгоритмов операторами суммы и произведения

Последний пример показывает, что во всём нужно знать меру. В самом деле, нам пришлось трижды фильтровать массив прежде, чем его стало можно обработать стандартной функцией min. Трудно придумать аргументы, чем это лучше и нагляднее классического кода

минимальный из положительных элементов массива - классический способ лучше
минимальный из положительных элементов массива - классический способ лучше

Также при поиске произведений следует иметь в виду вот это замечание (2).

 Скачать документ .xmcd Mathcad 14/15 с этими расчётами в архиве .zip (33 Кб)


теги: алгоритм учебное mathcad

29.03.2017, 15:21; рейтинг: 2284

  свежие записипоиск по блогукомментариистатистика

Наверх Яндекс.Метрика
© PerS
вход