Россия, Тольятти, Тольяттинский филиал Самарского государственного педагогического университета, 1995 |
Статистическая обработка данных в системе MATLAB
В качестве примера рассмотрим простейшие вычисления:
Даже из таких простых примеров можно сделать некоторые выводы:
- для указания ввода данных используется символ
- данные вводятся с помощью простейшего строчного редактора;
- для блокировки результата вычислений некоторого выражения после него надо устанавливать знак (;) (точка с запятой);
- если не указана переменная для значений результата вычислений, то MATLAB назначает такую переменную с именем ans;
- знаком присвоения является привычный математикам знак равенства (=);
- встроенные функции (например cos) записывается строчными буквами и их аргументы указываются в круглых скобках cos(х);
- результат вычислений выводится в строках вывода (без знака );
- диалог происходит в стиле "задал вопрос – получил ответ".
Интерполяция и аппроксимация данных.
Под аппроксимацией подразумеваются описание некоторой, порой не заданной явно, зависимости или совокупности представляющих данных с помощью другой, обычно более простой или более единообразной зависимости. Данные могут быть заданны как координаты узловых точек занесенные в таблицу. График аппроксимации функции может не проходить через узловые точки, но приближать их с некоторой среднеквадратичной погрешностью. Это характерно для регрессии – реализации метода наименьших квадратов (МНК).
Основная задача интерполяции – оценить значение представляемой данными зависимости в промежутках между ее узловыми точками. Для этого используются подходящие функции, значения которых в узловых точках совпадают с координатами этих точек. Так при линейной интерполяции зависимости у(х) узловые точки просто соединяются друг с другом отрезками прямых и считается, что искомые промежуточные точки расположены на этих отрезках.
Полиноминальная регрессия
Наиболее известная аппроксимация – полиномиальная. В MATLAB функции аппроксимации определены полиномами по методу наименьших квадратов – полиномиальной регрессии.
Полиномиальную регрессию реализует функция:
- polyfit(x,y,n) – возвращает вектор коэффициентов полинома p(x) степени n, который с наименьшей погрешностью аппроксимирует функцию y(x) .
- [p,S] = polyfit(x,y,n) – возвращает коэффициенты полинома p и структуру S для использования вместе с функцией polyfval с целью оценивания или предсказания погрешности.
- [p,S] = polyfit(x,y,n,mu) – возвращает коэффициенты полинома p и структуру S для использования вместе с функцией polyfval с целью оценивания или предсказания погрешности, но так, что происходит центрирование и масштабирование x, xnorm=(x-mu(1))/mu(2) , где mu(1)=mean(x) и mu(2)=std(x) . Центрирование и масштабирование не только улучшают свойства степенного многочлена, получаемого при помощи polyval, но и значительно повышают качественные характеристики алгоритма аппроксимации.
Пример полиномиальной регрессии для функции cos(x) :
>>x=(-3:0.2:3)'; y=cos(x); p=polyfit(x,y,3) p = 0.0000 -0.2370 0.0000 0.7719 >> x=(-4:0.2:4)'; y=cos(x); >> f=polyval(p,x); >> plot(x,y,'o',x,f)
Рисунок 5.1. дает наглядное представление о точности полиномиальной аппроксимации. Исходные точки обозначены кружочками, в данном примере, рассматривается полином 3 степени, он обозначен сплошной линией.