- •ВВЕДЕНИЕ
- •2. СОЗДАНИЕ И РЕДАКТИРОВАНИЕ ФОРМУЛ И ТЕКСТА
- •2.1.Курсор
- •2.2. Шаблоны
- •2.3. Текстовые области
- •2.4. Задание размерности
- •3. ВХОДНОЙ ЯЗЫК СИСТЕМЫ
- •3.1. Общие сведения
- •3.2. Алфавит
- •3.3. Элементарные конструкции
- •3.4. Выражения
- •3.5. Операторы
- •3.6. Константы и переменные
- •3.7. Функции
- •3.7.1. Встроенные функции
- •3.7.2. Функции, принимающие несколько значений
- •3.7.3. Функции, определяемые пользователем
- •4. РАБОТА С ДОКУМЕНТАМИ
- •5. ВЫПОЛНЕНИЕ ВЫЧИСЛЕНИЙ
- •6. ВЕКТОРЫ И МАТРИЦЫ
- •6.1. Создание и отображение массивов
- •6.2. Задание элементов массивов
- •6.3. Векторные и матричные операции
- •6.4. Векторные и матричные функции
- •6.4.1. Формирование матриц
- •6.4.2. Определение размеров массивов и значений элементов
- •6.4.3. Сортировка векторов и матриц
- •6.4.4.Специальные характеристики матрицы
- •7. ПОСТРОЕНИЕ ГРАФИКОВ
- •7.1. Графические возможности
- •7.2. Создание графиков на плоскости
- •7.2.1. График в декартовых координатах (X-Y Plot)
- •7.2.2. График в полярной системе координат (Polar Plot)
- •7.3. Построение трёхмерных графиков
- •7.3.1. Создание трёхмерных графиков
- •7.3.2. Форматирование трехмерных поверхностей
- •7.3.3. Построение контурных графиков (Contour Plot)
- •7.3.4. Построение точечного графика (3D Scatter Plot)
- •7.3.5. Построение трёхмерной гистограммы
- •7.3.6. Векторное поле (Vector Field Plot)
- •7.4. Применение функций CreateMesh и CreateSpace
- •7.5. Импорт изображений
- •8. ДАННЫЕ ФАЙЛОВОГО ТИПА
- •9. СИМВОЛЬНЫЕ ВЫЧИСЛЕНИЯ
- •9.1. Организация символьных вычислений
- •9.2. Меню Symbolics
- •9.2.1. Обзор команд меню Symbolics
- •9.2.2. Операции с выделенными выражениями
- •9.2.3. Операции с выделенными переменными
- •9.2.4. Операции с выделенными матрицами
- •9.2.5. Операции преобразования
- •9.3. Система SmartMath
- •9.3.1 Операции символьного вывода
- •9.3.2.Состав директив
- •9.3.3. Вычисление пределов
- •9.3.4. Специальные функции
- •9.3.5. Большие символьные результаты
- •10. РЕШЕНИЕ УРАВНЕНИЙ И СИСТЕМ
- •10.1. Решение уравнения с одной неизвестной
- •10.2. Поиск всех корней полинома
- •10.3. Решение систем нелинейных уравнений и неравенств
- •10.4. Решение систем линейных уравнений
- •10.5. Символьное решение алгебраического уравнения
- •11. ОБРАБОТКА ДАННЫХ
- •11.1. Интерполяция
- •11.2. Регрессии
- •11.3. Сглаживание данных
- •12. ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ И СИСТЕМЫ
- •12.1. Методы решения
- •12.2. Пример использования функции rkfixed
- •12.3. Решение системы ОДУ первого порядка
- •13. ПРОГРАММНЫЕ БЛОКИ
- •13.1. Программирование в пакете MathCad
- •13.2. Программные операторы
- •ЗАДАНИЯ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
- •ОГЛАВЛЕНИЕ
ответ в виде десятичных чисел, в противном случае будет предпринята попытка найти точное решение.
Неравенства решаются точно таким же образом, за исключением того, что вместо жирного знака равенства (Ctrl+=) нужно использовать знаки неравенства >, <.
11.ОБРАБОТКА ДАННЫХ
11.1.Интерполяция
ВMathCad есть функции, реализующие два метода интерполяции: линейную и сплайновую. При кусочно-линейной интерполяции соседние точки данных соединяются отрезками прямых. Для малого числа узловых точек линейная интерполяция может оказаться слишком грубой. Гораздо лучшие результаты даёт сплайн-интерполяция. При использовании кубической сплайнинтерполяции на каждом промежутке функция представляется кубическим многочленом, проходящим через три смежные узловые точки. Коэффициенты кубического многочлена вычисляются так, чтобы обеспечить стыковку в узловых точках значений функций и её первых двух производных.
Для решения задачи интерполяции должны быть заданы векторы vx, vy, определяющие узловые точки, и значение х.
Функция linterp(vx,vy,x) возвращает оценку значения y в точке x, вычисленную методом линейной интерполяции.
Элементы вектора vx должны идти в порядке возрастания, они соответствуют значениям х. Вектор vy одного размера с vx, его элементы соответствуют значениям y. Аргумент x – это значение переменной х, в которой нужно вычислить значение функции y. Предполагается, что x лежит в интервале изменения элементов vx.
Функция interp(vs,vx,vy,x) возвращает получаемое в точке x значение по методу сплайнов. Вектор vs формируется одной из функций cspline(vx,vy), pspline(vx,vy) или lspline(vx,vy). Эти функции различаются ограничениями, накладываемыми на поведение сплайна на границах области. Вектор vs должен быть получен перед использованием функции interp.
Двумерная кубическая сплайн-интерполяция выполняется функцией interp(vs,Mxy,Mz,v).
Вэтом случае кубическими полиномами соединяются точки над узлами прямоугольной сетки, заданной матрицей Mxy. Массив
55
Mz содержит значения z, соответствующие узлам сетки, которая определена в Mxy. Вектор v содержит координаты x и y, для которых вычисляется значение z. Вектор vs есть результат, возвращаемый одной из функций cspline(Mxy,Mz), pspline(Mxy,Mz) или linsple(Mxy,Mz).
11.2. Регрессии
Широко распространённой задачей обработки данных является представление их совокупности некоторой функцией y(x). Задача регрессии заключается в получении таких параметров функции y(x), чтобы она приближала набор исходных данных с наименьшей среднеквадратичной погрешностью.
Наиболее простым и часто используемым методом является линейная регрессия, при которой функция y(x) имеет вид:
y(x) = ах + b.
Таким образом, построение линии регрессии сводится к нахождению прямой, наилучшим образом (в смысле наименьших квадратов) приближающей облако исходных данных, заданных векторами vx, vy.
Для проведения линейной регрессии имеются функции slope(vx,vy) и intercept(vx,vy). Функция slope возвращает параметр
а – тангенс угла наклона линии регрессии, а функция intercept возвращает параметр b – смещение по вертикали.
Кроме того, в последние версии системы MathCad введена функция linfit(vx,vy,F) для выполнения линейной регрессии общего вида. В этом случае исходная совокупность точек приближается линейной комбинацией заданных функций F1(x), F2(x), ..., Fn(x), записанных в символьной форме:
F(x, K1, K2, ..., Kn) = K1 F1(x) + K2 F2(x) + ..., + Kn Fn(x) .
Функция linfit(vx,vy,F) возвращает вектор коэффициентов К, при которых линейная комбинация функций из F, которая даёт наилучшую аппроксимацию исходных данных.
Для проведения одномерной и многомерной полиномиальной регрессии в MathCad используются функции regress и loess.
Эти функции возвращают вектор vs, запрашиваемый функцией interp. При вызове функции regress(vx,vy,k) задаётся степень аппроксимирующего полинома k, а результатом является
56
вектор vs, содержащий коэффициенты полинома порядка k, который наилучшим образом приближает данные из vx и vy.
Функция regress создаёт единственный приближающий полином, коэффициенты которого вычисляются по всей совокупности заданных точек. Иногда полезна функция loess(vx,vy,span), дающая локальные приближения отрезками полиномов второго порядка. Аргумент span>0 определяет, насколько большие наборы данных будут приближаться отдельными полиномами. Чем больше span, тем сильнее сказывается сглаживание данных. Рекомендуется задать начальное значение равным 0.75 .
Найденный тем или иным способом вектор vs используется в функции interp(vs,vx,vy,x), которая возвращает оценку значения y, соответствующую заданному x.
Для выполнения многомерной полиномиальной регрессии используются описанные функции в несколько иной форме: interp(vs,Mxy,vz,v), regress(Mxy,vz,k), loess(Mxy,vz,span). Отличие заключается в задании исходных данных: аргумент Mxy является матрицей размера 2 m, содержащей координаты точек (х, y); vz – это m-мерный вектор, состоящий из координат z, соответствующих m точкам, указанным в Mxy; v – вектор координат x и y точки, для которой находится z.
11.3.Сглаживание данных
ВMathCad имеется несколько функций для сглаживания данных различными методами. В названии этих функций присутствует слово smooth:
medsmooth(vy,n) возвращает вектор из m элементов, полученный сглаживанием данных из vy скользящей медианой; параметр n задаёт ширину окна сглаживания, n должно быть нечётным числом, меньшим m;
ksmooth(vx,vy,b) возвращает вектор ординат, вычисленных на основе распределения Гаусса; параметр b задаёт ширину окна сглаживания, b должно в несколько раз превышать интервал между точками по оси х;
supsmooth(vx,vy) возвращает вектор сглаженных ординат, вычисленных на основе использования процедуры линейного сглаживания методом наименьших квадратов по правилу k- ближайших соседей с адаптивным выбором k.
57