Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MathCad_2000.pdf
Скачиваний:
26
Добавлен:
17.02.2016
Размер:
838.59 Кб
Скачать

ответ в виде десятичных чисел, в противном случае будет предпринята попытка найти точное решение.

Неравенства решаются точно таким же образом, за исключением того, что вместо жирного знака равенства (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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]