- •1. Основы работы с системой MathCad 8
- •1.1. Пользовательский интерфейс системы
- •1.2. Входной язык системы MathCad
- •2. Редакторы MathCad
- •2.1. Редактор формул
- •2.2. Редактор графиков
- •3. Примеры математических расчетов в MathCad
- •3.1. Решение нелинейных уравнений и систем
- •3.2. Решение обыкновенных дифференциальных уравнений
- •3.3. Решение задач оптимизации
- •3.4. Решение задач интерполяции и регрессии
- •3.5. Работа с векторами и матрицами
- •3.6. Работа со случайными числами
3.4. Решение задач интерполяции и регрессии
Для представления физических закономерностей и при проведении научно-технических расчетов часто используются зависимости вида у(х), причем число точек этих зависимостей ограничено. Неизбежно возникает задача приближенного вычисления значений функций в промежутках между узловыми точками (интерполяция). Эта задача решается аппроксимацией исходной зависимости, т.е. ее заменой какой-нибудь достаточно простой функцией. Система MathCAD предоставляет возможность
аппроксимации двумя типами функций: кусочно-линейной и сплайновой.
При кусочно-линейной интерполяции вычисление дополнительных точек выполняется по линейной зависимости (узловые точки соединяются отрезками прямых), для чего используется функция linterp(vx, vy, x), где vx и vy - вектора узловых точек аргумента х (рис. 21).
Линия, которую описывает сплайн-функция, напоминает по форме гибкую линейку, закрепленную в узловых точках. Для осуществления сплайновой интерполяции MathCAD предлагает четыре встроенные функции:
cspline(VX, VY) - возвращает вектор VS вторых производных при приближении в опорных точках к кубическому полиному;
pspline(VX, VY) - возвращает вектор VS вторых производных при приближении в опорных точках к параболической кривой;
lspline(VX, VY) - возвращает вектор VS вторых производных. при приближении в опорных точках к прямой.
Только после применения одной их перечисленных функций производится вычисление значения у(х) с помощью функции interp(VS, VX, VY, x). Применение описанных функций показано на рис.21.
Рис.21. Проведение линейной и сплайн-интерполяции
Другой широко известной задачей обработки данных, ..заданных таблично, является регрессия. Задача регрессии -заключается в получении параметров функции у(х) такими, что функция приближает «облако» исходных точек (заданных векторами VX и VY) с наименьшей среднеквадратичной погрешностью. Для проведения линейной регрессии (функция у(х) = а +bх) в систему MathCAD встроен рад функций:
corr(VX ,VY) - возвращает коэффициент корреляции Пирсона;
intercrpt(VX ,W) - возвращает значение параметра а;
slope(VX,VY) - возвращает значение параметра b.
На рис.22 показан пример проведения линейной регрессии.
Рис.22. Линейная регрессия
В MathCAD реализована также возможность выполнения линейной регрессии общего вида. Заданная совокупность точек приближенно описывается функцией вида: F(х,К1,К2,...Кn) = K1F1 (х) + K2F2 (х) +...+ KnFn(x). Для реализации линейной регрессии общего вида используется функция linfit(VX,VY,F) - возвращает вектор коэффициентов К, при котором среднеквадратичная погрешность оказывается минимальной. Вектор F должен содержать функции F1 (x),F2 (x) ,...Fn(x), записанные в символьном виде. Рис.23 иллюстрирует проведение линейной регрессии общего вида с помощью функции linfit.
Рис.23. Пример проведения линейной регрессии общего вида
3.5. Работа с векторами и матрицами
Определение вектора или матрицы в MathCAD производится с помощью шаблона Матрицы палитры Математика. Для этого следует установить курсор на место, где будет производиться вывод, при необходимости ввести имя матрицы (заглавная латинская буква), щелкнуть по изображению шаблона матрицы, расположенному в верхнем левом углу. На экране появится диалоговое окно, в котором требуется ввести число строк и столбцов матрицы и щелкнуть по кнопке ОК или Еставить(рис.24).
Рис.24. Окно Вставить матрицу
На экране возникает шаблон матрицы, который следует заполнить данными:
Для работы с векторами и матрицами в системе MathCAD имеется набор операторов и функций, приведенных в табл.1. Существует также ряд встроенных векторных и матричных функций, делающих работу с векторами и матрицами столь же простой, что и с обычными числами и переменными.
Приведем некоторые из них:
lengr(V) - возвращает число элементов вектора;
last(V) - возвращает номер последнего элемента;
max(V) - возвращает максимальный элемент вектора или матрицы;
min(V) - возвращает минимальный элемент вектора или. матрицы;
Re(V) - возвращает вектор действительных частей вектора с комплексными элементами;
Im(V) - возвращает вектор мнимых частей вектора с комплексными элементами;
augment(Ml,M2) - объединяет в одну матрицы Ml и М2, имеющие одинаковое число строк (объединение идет бок о бок);
stact(Ml,M2) - объединяет матрицы Ml и М2, имеющие одинаковое число столбцов, сажая Ml над М2;
diag(V) - создает диагональную матрицу, элементы главной диагонали которой - элементы вектора V;
coIs(M) - возвращает число столбцов матрицы М;
rows(M) - возвращает число строк матрицы М;
ratk(M) - возвращает ранг матрицы М;
mean(M) - возвращает среднее арифметическое элементов массива М.
Ниже приведены примеры наиболее распространенных векторных и матричных операторов.
Кроме набора математических функций при работе с матрицами большое удобство представляет наличие в MAtad функций сортировки - перестановки элементов векторов и матриц:
sort(V) - сортировка элементов вектора в порядке возрастания их значений;
reverse(V) - сортировка элементов вектора в порядке убывания их значений;
csort(M,n) - перестановка строк матрицы М таким образом, чтобы отсортированным оказался n-й столбец;
rsort(M,n) - перестановка строк матрицы М таким образом, чтобы отсортированной оказалась n-я строка.
Примеры использования функций сортировки:
Векторные и матричные операторы и функции системы MMathCAD позволяют решать, например, системы линейных
уравнений
Рис. 25. Решение системы линейных уравнений
Поскольку решение систем линейных уравнений довольно распространенная задача, то для этого в последних версиях МаthСАD имеется функция lsolve(A, В), которая возвращает вектор решений системы линейных уравнений.
