Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
matlab_manual.rtf
Скачиваний:
21
Добавлен:
30.08.2019
Размер:
17.64 Mб
Скачать

Plot(t,y,'-',t,y,'o'); grid on

Очевидно, полиномиальная аппроксимация оказалась не столь удачной. Здесь можно или по-высить порядок аппроксимирующего полинома, или попытаться найти какую-либо другую функциональную зависимость для получения лучшей подгонки.

Линейно-параметрическая регрессия1

Вместо полиномиальной функции, можно было-бы попробовать так называемую линейно-параметрическую функцию. В данном случае, рассмотрим экспоненциальную функцию

y = a0 + a1-t + a2t-t

Здесь также, неизвестные коэффициенты a0 , a1 и a2 могут быть найдены методом наимень-ших квадратов. Составим и решим систему совместных уравнений, сформировав регресси-онную матрицу X, и применив для определения коэффициентов оператор \ :

X = [ones(size(t)) exp(- t) t.*exp(- t)];

a = X\y

a =

1.3974

- 0.8988

0.4097

Значит, наша модель данных имеет вид

y = 1.39740.8988-t + 0.4097t-t

Оценим теперь, как и раньше, значения модели на равноотстоящих точках (с шагом 0.1) и на-несем эту кривую на график с исходными данными.

Как видно из данного графика, подгонка здесь намного лучше чем в случае полиномиальной функции второго порядка.

Множественная регрессия

Рассмотренные выше методы аппроксимации данных можно распространить и на случай бо-лее чем одной независимой переменной, за счет перехода к расширенной форме записи. До-пустим, мы измерили величину y для некоторых значений двух параметров x1 и x2 и полу-чили следующие результаты

x1 = [0.2 0.5 0.6 0.8 1.0 1.1]' ;

x2 = [0.1 0.3 0.4 0.9 1.1 1.4]' ;

y = [0.17 0.26 0.28 0.23 0.27 0.24]' ;

Множественную модель данных будем искать в виде

y = a0 + a1x1 + a2x2

Методы множественной регрессии решают задачу определения неизвестных коэффициентов a0 , a1 и a2 путем минимизации среднеквадратической ошибки приближения. Составим сов-местную систему уравнений, сформировав матрицу регрессии X и решив уравнения отно-сительно неизвестных коэффициентов, применяя оператор \ .

X = [ones(size(x1)) x1 x2];

a = X\y

a =

0.1018

0.4844

-0.2847

Следовательно, модель дающая минимальную среднеквадратическую ошибку аппроксима-ции имеет вид

y = 0.1018 + 0.4844x1 – 0.2847x2

Для проверки точности подгонки найдем максимальное значение абсолютного значения от-клонений экспериментальных и расчетных данных.

Y = X*a;

MaxErr = max(abs(Y - y))

MaxErr =

0.0038

Эта ошибка дает основание утверждать, что наша модель достаточно адекватно отражает ре-зультаты наблюдений.

Графический интерфейс подгонки кривых

MATLAB дает возможность осуществлять аппроксимацию данных наблюдений при помощи специального графического Интерфейса Подгонки Кривых (ИПК) (в английском оригинале - Basic Fitting interface). Используя данный интерфейс, вы можете легко и быстро решить множество задач подгонки кривых, получая при этом самую разнообразную информацию о результатах вашей подгонки. ИПК предоставляет следующие возможности:

  • Аппроксимирует данные используя сплайновый интерполянт, эрмитовый интерпо-лянт, или же полиномиальный интерполянт до 10 порядка включительно.

  • Осуществляет множество графических построений для заданных наборов данных.

  • Строит графики невязок (ошибок подгонки).

  • Анализирует численные результаты подгонки.

  • Осуществляет интерполяцию или экстраполяцию данных подгонки.

  • Аннотирует графики численными результатами подгонки и нормами ошибок аппроксимации.

  • Запоминает результаты подгонки и вычислений в рабочет пространстве MATLAB-а.

Основываясь на ваших конкретных задачах и приложениях, вы можете использовать ИПК, возможности, предоставляемыми командным окном, или же комбинировать эти две возмож-ности. Отметим, что ИПК предназначен только для работы с одномерными и двумерными данными.

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