Лабораторная работа № 2

Метод наименьших квадратов

В случае аппроксимации полиномами

Цель работы: научиться аппроксимировать таблично заданные функции методом наименьших квадратов, произвести подгонку экспоненциальной кривой: Лабораторная работа № 2 - student2.ru

Постановка задачи:

1. Изучить теореточеские сведения.

2. Написать подпрограммы построения аппроксимирующей функции для таблично заданной функции.

3. Определить невязки аппроксимации.

4. Проверить вычисления с помощью встроенных функций.

5. Построить графики аппроксимирующих функций и заданной функции.

Теоретические сведения

Предположим, что заданы точки Лабораторная работа № 2 - student2.ru и требуется произвести подгонку экспоненциальной кривой:

(1) Лабораторная работа № 2 - student2.ru

Для процедуры нелинейного метода наименьших квадратов требуется найти минимум:

(2) Лабораторная работа № 2 - student2.ru

Частные производные Е(А,С) по А и С равны

(3) Лабораторная работа № 2 - student2.ru

и

(4) Лабораторная работа № 2 - student2.ru

Если положить частные производные в эти формулы равными нулю и затем упростить эти выражения, то можно получить нормальные уравнения

(5) Лабораторная работа № 2 - student2.ru

Полученные уравнения- это нелинейные уравнения с неизвестными Аи С, которые можно решить методом Ньютона. На это потребуется только время на вычисления и итерации, для которой нужны хорошие начальные значения для А и С. Во многих пакетах прикладных программ содержатся встроенные подпрограммы и минимизации функций от нескольких переменных, которые можно непосредственно использовать для минимизации функции Е(А,С). Например, симплекс-алгоритм Недлера-Мида можно непосредственно использовать для минимизации и обойтись без данных уравнений.

Пример:Используем МНК и найдем экспоненциальную подгонку y=CeAx по пяти точкам: (0;1,5), (1;2,5), (2;3,5), (3;5,0) и (4;7,5). Для этого минимизируем величину Е(А,С):

Е(А,С)=(C-1,5)2 +(СеА-2,5)2+(Се-3,5)2+(Се-5,0)2+(Се-7,5)2

Воспользуемся командой MATLAB fmins , чтобы найти приближения величин А и С, которые минимизируют Е(А,С) как М-файл в MATLAB.

function z=E(u)

A=u(1);

C=u(2);

z=(C-1,5).^2+(C.*exp(A)-2.5).^2+(C.*exp(2*A)-3.5).^2+… (C.*exp(3*A)-5.0).^2+(C.*exp(4*A)-7.5).^2;

Используя команду MATLAB Сommand Window fmins и начальные значения А=1,0 и С=1,0, найдем

>> fmins(‘E’,[1 1])

ans =

0.38357046980073 1.61089952247928

Такая экспоненциальная подгонка по пяти точкам имеет вид

у=1,6108995е0,3835705 (подгонка нелинейным МНК).

Степенная прогонка

В некоторых случаях функция имеет вид f(x)=AxM, где М- известная постоянная.

Теорема (степенная прогонка):предположим, что {(xk,yk)}Nk=1- N точек с различными абсциссами. Коэффициент А кривой, построенной методом наименьших квадратов, y=AxM, равен

(6) Лабораторная работа № 2 - student2.ru

Благодаря технике МНК видим, что минимум функции Е(А) равен

(7) Лабораторная работа № 2 - student2.ru

В данном случае достаточно решить уравнение E’(A)=0. Производная равна

(8) Лабораторная работа № 2 - student2.ru

Таким образом, коэффициент А является решением уравнения, которое приводит к равенству, приведенному выше.

Наши рекомендации