MathCAD



       порно каналы Тв онлайн бесплатно смотреть.
Круг для плавания swimtrainer подробности здесь.
  

Рис. 4.3. Определение точки с максимальным отклонением от прямой - часть 2


Нелишне дополнить результаты сглаживания указанием точки, максимально отклонившейся от прямой (см. рис. 4.3). Само значение такого выброса найти несложно через функцию max. А вот с определением координат этой точки придется повозиться: привлечь аппарат булевых выражений, принимающих два значения – True (в среде Mathcad – единица) и False (нуль), умножение которых на текущий индекс фиксирует искомую координату.

В пакете Mathcad более 50 встроенных операторов (см. приложение 2) и почти 300 функций (см. приложение 3). Пять встроенных функций (csort, intercept, slope, min и max) были задействованы в задачах на рис. 4.1-4.3. Когда программисту предстоит решать какую-либо локальную задачу, то перед ним часто встает альтернатива: кодировать ли решение прямо в программе или выносить его наружу, оформляя в виде процедуры (функции). Считается, что глупый человек учится на своих ошибках, а умный – на чужих. Начинающий программист пишет свои процедуры (функции), а опытный ищет их в наборе ранее созданных. Знание пакета Mathcad – это на 90% знание операторов и функций[6], в него встроенных. Остальное – ловкость рук и программирование (средство создания новых инструментов – см. этюд 6).

Есть три причины, заставляющие даже сверхумного программиста отказываться от готовых программных форм и «изобретать велосипед». Первая причина лежит в сфере образования: тексты программ должны быть прозрачными для обучаемых. Во-вторых, в открытый участок программы легко ввести дополнения и изменения, расширяющие сферу ее применения и/или снимающие ранее наложенные ограничения. Так устроен, к примеру, пакет MatLab (разработка фирмы The Math Works). В его состав входят исходные тексты на языке C всех встроенных процедур и функций, так что пользователь перед включением их в работу может что-то узнать о методах, заложенных в них, и/или прощупать их работоспособность. В-третьих, всегда есть опасения, что в готовую программную форму затесалась чужая ошибка, которая, как бомба замедленного действия, может взорвать всю программу в самый неподходящий момент – после сдачи готового программного продукта заказчику или после того, как он разойдется по дилерской сети. Пример у нас под рукой (рис. 4.3). При всем богатстве встроенных функций пакету Mathcad не хватает функции определения в векторе или в матрице координат минимального (максимального) элемента. Выход из положения – это сумма (для вектора) или двойная сумма (для матрицы) произведений номера текущего элемента на булево выражение (см. рис. 4.3). Эту конструкцию так и хочется оформить в виде новой функции с именем imax, например, и больше с такой задачей не возиться. Но в новую функцию перекочует и будет замаскирована ошибка – неясно, что будет возвращать новорожденная функция imax, если в аргументе-векторе (в массиве) два или более максимальных элементов. Из прозрачной формулы с суммой это понятно, а из «затененной» функции imax – нет. Все эти замечания можно отнести и к встроенным функциям intercept и slope, возвращающим значения коэффициентов сглаживающей прямой. Всегда остаются сомнения, а нет ли в этих функциях фактической или методологической ошибки. Последнюю можно обнаружить, если подставить в функции intercept и slope аргументы-векторы с двумя или даже одним элементом. Через две точки всегда можно провести прямую. Через одну точку прямых можно провести бесчисленное множество. И в том, и в другом случае сумма квадратов отклонений двух точек (одной точки) от прямой будет минимальной (нулевой), и требования метода наименьших квадратов будут выполняться абсолютно. Но в первом случае функции intercept и slope будут решать простую интерполяционную задачу, для которой в среде Mathcad есть особый математический аппарат (см. ниже). Во втором случае (X и Y – не векторы, а скаляры) функции intercept и slope должны выдавать бесчисленное множество значений, связанных ограничением Y = a + b × X. В плане выполнимости критерия наименьших квадратов здесь все безупречно, но методология, заложенная в функции intercept и slope, приводит к тому, что при числе элементов в векторах X и Y, меньшем двух, выдается сообщение об ошибке. Но все это слабая защита, которую пользователь легко может обойти, подсунув функциям intercept и slope более одной точки, но с повторяющимися значениями аргументов. Резюме: играть можно не только с игровыми программами. На эту роль подходят и серьезные математические пакеты – было бы желание у пользователя. Компьютер же, как здоровая молодая собака, всегда готов играть со своим хозяином. Замахнется, к примеру, человек палкой, но не бросит ее, – собака прыгает, вертит головой, но не знает, куда бежать. Подсунет пользователь машине хитрый аргумент – функция не знает, что с ней делать, и выдает какие-то странные сообщения об ошибках, веселящие пользователя.

Есть направление в искусстве под названием поп-арт – популярное искусство. Методика обработки статистических данных, показанная на рис. 4.2, может быть названа поп-статом.




Содержание  Назад  Вперед