Mathcad програмою або однією формулою
БлогNot. Mathcad: програмою чи однією формулою?
Mathcad: програмою чи однією формулою?
Для реалізації у Matchad типових алгоритмів, пов'язаних з розрахунками числових характеристик послідовностей та масивів, зовсім не обов'язково писати програми за аналогією з класичними процедурними мовами. Наприклад, значення мінімального за модулем елемента масиву можна в Mathcad знайти наступним чином:
(код написаний так, щоб він працював незалежно від значення системної змінної ORIGIN).
Але куди швидше зробити це за допомогою оператора векторизації:
Кількість однакових мінімумів у масиві можна шукати, роблячи додатковий прохід ним:
а можна просто дізнатися довжину вектора, складеного з входжень мінімального елемента вихідний вектор:
Зрозуміло, далеко ще не факт, що другий спосіб менш витратний по обчислювальним ресурсам, швидше навпаки. Але перевага в тому, що ми користуємося тільки стандартними функціями і не складаємо загрожують помилками підпрограм-функцій користувача.
Сучасна тенденція мов і пакетів - готові алгоритми замість їх програмування, наприклад, бібліотека C++, функції обробки і фільтрації масивів в PHP або вбудовані оператори підсумовування, перемноження, векторизації і т.п. у Mathcad.
Загальні правила розрахунків за типовими алгоритмами можна сформулювати так:
- для кожної шуканої величини створюється за змінною того ж типу даних, що досліджувані значення;
- до циклу обробки даних всім шуканим у ньому змінним надаються початкові значення. У найпростіших випадках достатньо присвоїти:
- нуль – кількості, суму чи арифметичному середньому;
- одиницю – твору;
- заздалегідь маледля аналізованих данихзначення або перший елемент послідовності даних -максимуму;
- заздалегідь великедля аналізованих даних значення або перший елемент послідовності даних -мінімуму;
де ":=" - оператор присвоєння. Ці правила не залежать від мови або пакета, де ви працюєте.
Однак якщо в мові, як і Mathcad, є вбудовані циклічні оператори і вбудована умовна функція, всі 3 кроки типового алгоритму можна виконати одним виразом.
Наведемо кілька прикладів, що ілюструють це твердження, знайшовши для масиву A одним оператором:
- кількість позитивних елементів масиву;
- суму елементів, за модулем бпронайбільшого значення 2;
- добуток квадратів ненульових елементів масиву;
- мінімальний із позитивних елементів масиву.
Ось скріншоти розрахунків, зроблених у тому порядку:
Останній приклад показує, що у всьому треба знати міру. Насправді, нам довелося тричі фільтрувати масив перш, ніж його можна обробити стандартною функцією min . Важко придумати аргументи, чим це краще і наочніше класичного коду
Також під час пошуку творів слід пам'ятати ось це зауваження (2).
Завантажити документ .xmcd Mathcad 14/15 з цими розрахунками в архіві .zip (33 Кб)