Построение эмпирических зависимостей
Эмпирические зависимости. В научных и инженерных исследованиях часто возникает задача математического описания некоторого исследуемого процесса или объекта. Для определенности предположим, что связь независимой переменной








Задача построений эмпирической зависимости состоит в нахождении функции S(x), как можно точнее аппроксимирующей неизвестную f(x).
Решение этой задачи включает два этапа.
Этап 1. Выбор класса функций, из которого выбирается S(x). Например, S(x) выбирается из класса линейных функций вида S(x)=а0+а1х, где а0, а1 – параметры. Таким образом, на этом этапе эмпирическая зависимость выбирается с «точностью» до её параметров. Выбор класса функций осуществляется на основе анализа диаграммы рассеяния (в декартовой системе координат наносятся точки

Этап 2. Вычисление неизвестных параметров функции S(x) с использованием таблицы измерений. Параметры вычисляются из условия минимума некоторого функционала F(a). Наиболее часто в качестве такого функционала используется функционал метода наименьших квадратов, имеющий вид:

где запись S(а, x) указывает на наличие у функции S(x) параметров {aj}, j=1, 2,…, M.
Функции MathCAD для построения эмпирических зависимостей. В пакет MathCAD включены функции для вычисления параметров различных функций S(x). Обращения к этим функциям приведены в табл. 10.2.1, где Х – вектор, составленный из значений {xi}, i=1, …, n, а Y – вектор, сформированный из значений

Таблица 10.2.1
Функция | Назначение функции | ||
slope(x, y) | Вычисляет параметр а1 линейной функции
![]() | ||
intercept(x, y) | Вычисляет параметр а0 линейной функции
![]() | ||
regress(x,y,m) | Вычисляет параметры ![]() ![]() для любого m (на практике ![]() | ||
line(x, y) | Вычисляет параметры а0, а1
линейной зависимости ![]() ![]() | ||
linfit (x, y,Ф) | Вычисляет параметры ![]() ![]() Базисные функции ![]() | ||
genfit(x,y,ао,F) | Вычисляет параметры ![]() составленный из самой функции S(x) и частных производных ![]() ![]() ![]() |
Таблица 10.2.2
Функция |
Назначение функции |
expfit(X,Y,ao) |
Вычисляет параметры а1, а2, а3 экспоненциальной зависимости ![]() (размерности 3) определяет точку старта, т.е. задает «начальное» значение для а1, а2, а3 |
lgsfit(X,Y,ao) |
Вычисляет параметры а1, а2, а3 зависимости ![]() |
lnfit(X,Y) |
Вычисляет параметры а1, а2 зависимости ![]() |
logfit(X,Y, ao) |
Вычисляет параметры а1, а2, а3 зависимости ![]() |
pwrfit(X,Y,ao) |
Вычисляет параметры степени зависимости ![]() |
sinfit(X,Y,ao) |
Вычисляет параметры синусоидальной зависимости ![]() (размерности 3) задаёт «стартовые» значения для а1, а2, а3 |
Пример 10.2.4. По данным, приведенным на рис. 10.2.4, построить эмпирическую зависимость вида

Построение этой эмпирической зависимости показано в документе MathCAD, приведенном на рис. 10.2.4. ¨

Рис. 10.2.4. Построение экспоненциальной зависимости
Приведенные в табл. 10.2.1 и 10.2.2 функции осуществляют построение эмпирических зависимостей, которые можно назвать «глобальными»,
так как при вычислении их параметров используется вся таблица исходных данных. В ряде экспериментов возникает необходимость построить эмпирическую зависимость по некоторому небольшому набору исходных данных, которые находятся в окрестности точки х, для которой будет вычисляться значение эмпирической формулы. Такие эмпирические формулы можно назвать «локальными».
Для построения «локальных» эмпирических зависимостей в MathCAD включена функция loess(X,Y,d), приближающая исходные данные полиномом второй степени. Формальные параметры X, Y – это массивы с исходными данными, а параметр

Пример 10.2.5. На рис. 10.2. 5 приведен документ MathCAD, реализующий вычислительный эксперимент по построению локальной эмпирической формулы с помощью функции loess(X,Y,d) при




Рис. 10.2.5. Построение локальных эмпирических зависимостей
Сглаживание экспериментальных данных. В большинстве случаев результаты измерения содержат случайные погрешности, которые необходимо «отфильтровать». Это можно сделать путем построения эмпирических зависимостей. Однако в MathCAD определены специальные «сглаживающие» функции, имена которых содержат слово smooth (гладкий). Таких функций три:
- medsmooth(Y,m) – сглаживает массив Y, состоящий из n элементов с использованием скользящего медианного фильтра с размером окна сглаживания m (m должно быть нечетным и ). Результатом работы является массив, содержащий n сглаженных значений массива Y;
- supsmooth(X,Y) – сглаживает массив Y, состоящий из n значений, измеренных в точках , которые являются элементами массива X. Сглаживание осуществляется построением линейной регрессии по k – ближайшим точкамс адаптивным выбором «размера» k
окна сглаживания. Элементы массива X должны быть упорядочены по возрастанию; - ksmooth(X,Y,b) – сглаживает массив Y, состоящий из n значений, измеренных в точках , которые являются элементами массива X. Сглаживание осуществляется на основе формулы


Видно, что сглаженное значение




Пример 10.2.6. На рис. 10.2.6 приведен документ MathCAD, реализующий вычислительный эксперимент по сглаживанию «зашумленных» данных (относительный уровень шума равен 38%) с помощью функции ksmooth при двух значениях параметра





Рис. 10.2.6. Сглаживание данных функций ksmooth
ЗАКЛЮЧЕНИЕ
В данном пособии авторы стремились изложить основы программирования в пакете MathCAD и продемонстрировать решение часто встречающихся задач в этом пакете. К сожалению, ограниченный объем учебного пособия не позволил уделить внимание ряду важных возможностей пакета. Это прежде всего относится к символьным вычислениям, к решению обыкновенных дифференциальных уравнений и дифференциальных уравнений в частных производных. Некоторым «оправданием» служит хорошее освещение этих тем в литературе [ 2, 3, 9,10 ].
Авторы желают читателям (особенно студентам и аспирантам), чтобы пакет MathCAD стал для них «дружелюбным и незаменимым» помощником в решении широкого круга научно-инженерных задач.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Дьяконов В.П. Компьютерная математика. Теория и практика / В.П. Дьяконов. – М.: Изд-во Нолидж, 2001. – 296 с.
2. Дьяконов В.П. MathCAD2000: Учебный курс / В.П. Дьяконов. – СПб: Питер, 2000. – 596 с.
3. Дьяконов В.П. MathCAD 8 Professional в математике, физике и Internet / В.П. Дьяконов, И.В. Абраменконова. – М.: Нолидж, 1999. – 512 с.
4. Дьяконов В.П. Matlab: Учебный курс / В.П. Дьяконов. – СПб: Питер, 2001. – 560 с.
5. Потемкин В.Г. Система инженерных и научных расчетов Matlab 5.x.: В 2-х т. – М. ДИАЛОГ–МИФИ, 1999. – 672 с.
6. Дьяконов В.П. Mathematica 4: Учебный курс / В.П. Дьяконов. – СПб: Питер, 2000 – 482 с.
7. Дьяконов В.П. Математическая система Maple V R3/R4/R5 / В.П. Дьяконов. – М.: Солон, 1998. – 381 с.
8. Воскобойников Ю.Е. Программирование в математическом пакете MathCAD. Методические указания / Ю.Е. Воскобойников, Т.Н. Воскобойникова. – Новосибирск: Изд-во НГАСУ, 1999. – 32 с.
9. Кирьянов Д.В. Самоучитель MathCAD2001 / Д.В. Кирьянов. – СПб.: БХВ-Петербург, 2002. – 459 с.
10. Очков В.Ф. Советы пользователям Mathcad / В.Ф. Очков. – М.: Изд-во МЭИ, 2001. – 196 с.
11. Демидович В.П. Основы вычислительной математики / В.П. Демидович, И.А. Марон. – М.: Наука, 1970. – 486 с.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 5
РАЗДЕЛ 1. Экспорт и импорт данных в пакете MathCAD 7
Тема 1. Запись и чтение файловых данных 7
1.1. Файловый тип данных MathCAD................................. 7
1.2. Запись данных в файл.................................................. 9
1.3. Чтение данных из файла............................................ 13
Тема 2. Обмен информацией с другими прОграммами-приложениями 15
2.1. Обмен информацией с текстовым процессором Word 15
2.2. Обмен информацией с табличным процессором Excel 19
РАЗДЕЛ 2. ПРОГРАММИРОВАНИЕ В ПАКЕТЕ MathCAD 27
ТЕМА 3. БЕЗМОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ В ПАКЕТЕ MathCAD 28
3.1. Программирование линейных алгоритмов............... 28
3.2. Программирование разветвляющихся алгоритмов.. 29
3.3. Программирование циклических алгоритмов.......... 35
ТЕМА 4. ПОДПРОГРАММА-ФУНКЦИЯ: ОПИСАНИЕ И ВЫЗОВ 39
4.1. Описание подпрограммы-функции и локальный оператор присваивания 39
4.2. Обращение к подпрограмме-функции Mathcad...... 42
ТЕМА 5. Программирование АЛГОРИТМОВ в ПОДпрограмме-функции MathCAD 44
5.1. Программирование линейных алгоритмов в подпрограмме-функции 44
5.2. Программирование разветвляющихся алгоритмов в подпрограмме-функции 45
5.3. Программирование циклических алгоритмов в подпрограмме-функции 51
ТЕМА 6. Программирование типовых задач в подпрограммах-функциях mathCAD 62
6.1. Программирование разветвляющихся алгоритмов.. 62
6.2. Программирование циклов типа арифметической прогрессии 66
6.3. Программирование итерационных циклов............... 74
ТЕМА 7. МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ В MathCAD 80
7.1. Преимущества модульного программирования....... 80
7.2. Модульное программирование в пределах одного документа MathCAD 81
7.3. Модульное программирование в нескольких документах MathCAD 84
7.4. Программы MathCAD в Internet................................. 85
РАЗДЕЛ 3. РЕШЕНИЕ НАУЧНО-ИНЖЕНЕРНЫХ ЗАДАЧ В ПАКЕТЕ MathCAD 94
ТЕМА 8. РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ И СИСТЕМ В ПАКЕТЕ MathCAD 94
8.1. Решение нелинейных уравнений............................... 94
8.2. Решение систем уравнений...................................... 105
ТЕМА 9. Решение оптимизационных задач в пакете MathCAD 112
9.1. Решение оптимизационных задач без ограничений 112
9.2. Решение оптимизационных задач с ограничениями 114
ТЕМА 10. ОБРАБОТКА ЭКСПЕРиМЕНТАЛЬНЫХ ДАННЫХ В ПАКЕТЕ MathCAD 118
10.1. Моделирование и обработка статистических данных 118
10.2. Построение эмпирических зависимостей............. 125
Заключение 135
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 135