(добавление к главе 4 книги «Mathcad 12 для студентов и инженеров»)
Очень часто, а точнее сказать, как правило, в различных справочниках и энциклопедиях функциональные зависимости даются в виде графиков и таблиц, а не формулами, которые более подходят для ввода в компьютер.
Ниже будут приведены примеры создания, вернее, воссоздания[1] формул по табличным и графическим зависимостям в среде Mathcad.
На рис. 1 показана типичная таблица в виде матрицы с заполненными всеми элементами. Работа с такой таблицей сводится к указанию названия интересуемого параметра и температуры и считыванию значения искомого параметра. На рис. 2 показана реализация этого алгоритма работы с данной матрицей в среде Mathcad.
Таблица данных, показанная на рис. 1, в Mathcad-документе, показанном на рис. 2, присваивается в виде матрицы переменной D. Первый столбец матрицы – это дискретные значения температуры, пересылаемые в переменную Х (Х:=D<0>), а последующие, i-ые cтолбцы – это дискретные значения i-го параметра турбинного масла при данной температуре: Y: = D<i>. Значение переменной i (номер рассчитываемого параметра турбинного масла) задается постановкой «галочки» у одного из семи переключателей («флажков»), связанных с скрытыми переменными ch1-ch7. Здесь более «технологичными» были бы радиокнопки, а не группа переключателей, т.к. в радиокнопках можно выбрать только одну позицию из нескольких. Кроме того, радиокнопки не требуют написание программы с цепочкой «номерных» переменных ch1-ch7, связанных оператором and (^). Но группа переключателей в данном контексте имеет свои преимущества. Вот они:
Пользователь, открывший в Интернете или в среде Mathcad расчетный документ, показанный на рис. 4, может поставить от одной до четырех галочек в одном из столбцов переключателей и получить числами и точками на графиках нужный ответ.
Другим типичным случаем табличного хранения информации является случай, когда одна зависимость дается для разных веществ, причем количество точек у разных веществ разное и к векторным значениям добавлены и скалярные – см. рис. 5.
На рис. 6 показан Mathcad-документ, автоматизирующий вычисления по таблице рис. 5.
Выбор вещества на рис. 6 ведется через сетевой элемент управления List (список), где переменной Com присваивается текстовое значение – название выбранного вещества. Альтернативный способ работы со списком – это когда он возвращает не текст (название вещества), а число – порядковый номер вещества в списке – см. рис. 7. Этот способ удобен тем, что можно произвольно менять название в списках – добавлять туда, например английские или латинские названия веществ, а также их химическое обозначение без необходимости менять эти названия в операторах if Com = “…”. Кроме того, числа не искажаются при передаче в Сети, что нельзя сказать о некоторых спецсимволах, которые могут оказаться в текстовых константах (символ градуса Цельсия, например). Привязка же к именам, а не к номерам более удобна при редактировании программы, стоящей за оператором М :=
Исходные данные в программе, показанной на рис. 6, хранятся не в матрице (см. рис. 2), а в отдельных вложенных массивах (Nested Array) – в матрицах-строках с двумя элементами, первый из которых – скаляр[5], а второй – матрица с двумя строками и с переменным числом столбцов, равным числу дискретных точек обрабатываемой зависимости температуры плавления от давления.
Выбор нужной позиции осуществляется не за счет задания номера переменной (переменной i, если говорить о рис. 2), а (рис. 6) цепочкой операторов if. Второе отличие технологий работы, показанных на рис. 2 и рис. 6. На рис. 2 мы задействовали аппроксимацию (регрессию) полиномом n-ой степени[6], а на рис. 2 – линейную интерполяцию (при двух точках) или интерполяцию сплайном (при трех точках и более).
Исходными данными тут будут не числа таблицы, а линии графиков.
Точки на этих линиях можно оцифровать и вручную, но лучше воспользоваться специальными программами, работа одной их которых[7] оказана на рис. 9.
Для оцифровки графика его сначала нужно отсканировать и сохранить данный графический файл в bmp-формате, а потом открыть график с помощью программы, показанной на рис. 9. Далее необходимо установить на график две контрольные точки – щелкнуть мышью по двум точкам с известными координатами и занести эти координаты в специальные появляющиеся диалоговые окна. После этого щелчок мышью по любой точке графика будет отображать эту точку в окнах «Координаты X и Y». Эти координаты нужно копировать и переносить в Mathcad-документ (см. рис. 10) для дальнейшей статистической обработки.
Работая с программой, отображенной на рис. 9, можно также, открыв файл для записи, вести мышью по кривой графика и получать координаты точек в виде двух столбцов чисел для их дальнейшей статистической обработки.
[1] Нередко таблицы строились по формулам, которые затем были утеряны.
[2] В этом случае Mathcad-документ нужно защитить через команду Tools/Protect, предварительно сняв защиту с сетевых элементов управления.
[3] Наши точки для интерполяции расположены в интервале от 10º С до 120º С. В интервале от 0º С до 10º С будет вестись не интерполяция, а экстраполяция, что подчеркивается пунктирной , а не сплошной линией, показанной на рис. 2.
[4] При n:= 11 линия проводится строго по точкам – аппроксимация переходит в интерполяцию.
[5] Если этой величины нет, то вместо нее ставится системная переменная NaN (Not a Number).
[6] Для вязкости масла, например, (рис. 2) подходит не полином n-ой степени, а, например, выражение a + b·ecx, а для плоскости – линейная зависимость a + bx (полином при n = 1).
[7] Ее можно скачать из Сети по адресу… Автор программы В.Писков.