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

Пусть вещественная функция у = Дх) задана таблично в точках Хц ..., Хд, своими значениями у* = Дх,), i = 1, ..., П, тогда скалярное произведение можно определить по формуле:

С учетом (2.20) условие наилучшего среднеквадратичного приближения приобретет следующий вид:

Подставим в (2.21) представление для аппроксимирующей функции в виде (2.16) с числом членов п < N. Далее следум стандартно, приравнивая к нулю производные по коэффициентам а и ..., й„, получаем уравнения для поиска этих коэффициентов, которые, в свою очередь, могут быть решены обычным образом. Данный способ нахождения аппроксимирующей функции называется методом наименьших квадратов.

Метод наименьших квадратов широко используется для обработки экспериментальных данных, в которых значения некоторых функций измерены с заметной погрешностью. В этом случае все р,, i = 1, ..., п связывают с точностью данных, т. е. чем выше точность отдельного значения, тем выше вес и, наоборот. В итоге аппроксимирующая кривая будет проходить ближе к более точным значениям измеряемой функции. При п * N среднеквадратичная аппроксимация близка к интерполяции, при п заметно меньше N аппроксимирующая кривая будет заметным образом сглаживать данные.

С помощью MATLAB освоим процедуру метода наименьших квадратов. В листинге 2.6 приведен соответствующий код программы, который строит полином степени п -1, обеспечивающий наилучшее среднеквадратичное приближение аппроксимируемой функции, заданной набором точек на плоскости (xi,yi).....(xN,yN).

Листинг 2.6

%Метод наименьших квадратов % % % % % % % % % % % % % % % % % % % % % % % % % % % %очищаем рабочую область clear all;

%определяем число точек N

N = 11;

%определяем множество аргументов %аппроксимируемой функции в виде %равномерной сетки for i =1: N

х( i ) =( i - 1. 0) / ( N-1); end

%моделируем значения аппроксимируемой %функции с помощью датчика случайных %чисел, распределенных по нормальному %закону со средним 0 и ст. откл. 1

у=[ 1;

for i =1:I ength(x) у =[ у г andnj; end

%веса скалярного произведения ( 2. 2 0)

%выберем равными единице

г о =0nеs( si zе(х) ) ;

Уоопределим число неизвестных Уокоэффициентов П представления ( 2. 16)

П=3;

Уостроим методом наименьших квадратов,

Уоаппроксимирующий полином степени П - 1

sp=spap2(1, п,х,у, г о);

Уорисуем аппроксимирующий полином на Уофоне значений аппроксимируемой функции f П рI t ( S р) ;

hoi d on;

pi ot(х, у, 1 *' );

При работе с кодом листинга 2.6 необходимо запустить программу и убедиться, что с ростом числа аппроксимирующих коэффициентов п от 1 до N, сглаживание данных при малых п заменяется интерполяцией при п « N. На рис. 2.6, а приведен первый случай, а на рис. 2.6, 6 - второй.

Аппроксимирующая кривая

Рис. 2.6. Аппроксимирующая кривая: а - парабола (п = 3, N = 11); б - полином степени 10 (п = 11, N = 11)

Построим теперь наилучшее среднеквадратичное приближение с помощью сплайна. В листинге 2.7 приведен соответствующий код программы MATLAB, который генерирует график с дискретным набором аппроксимируемой функции и сплайном того или иного порядка.

Листинг 2.7

%Метод наименьших квадратов при %аппроксимации функции с помощью сплайна % % % % % % % % % % % % % % % % % % % % % % % % % % % %очищаем рабочую область clear all;

%задаем область аппроксимации

а =0. О; b =1. О;

%определяем множество аргументов %аппроксимируемой функции

х=а: 0. 1: Ь;

“/смоделируем значения аппроксимируемой %функции с помощью датчика случайных %чисел, распределенных по нормальному %закону со средним 0 и ст. откл. 1 У=[ 1;

for i =1:Iengt h(х) у =[ у г a n d п ] ; end

%веса скалярного произведения (2.20)

%выберем равными единице

г о =0nеs( si zе(х));

%определим порядок сплайна %П=4 - кубический сплайн

п =1;

%задаем узлы стыковки соседних сплайнов

хк =[ 0. 2 5 0. 5 ];

%строим методом наименьших квадратов,

%аппроксимирующий сплайн

sp=spap2(augknt([a b хк], п),п,х,у, г о);

%рисуем аппроксимирующий полином на %фоне значений аппроксимируемой функции

f n р I t (s р) ; hoi d on; р I о t (х, у, ' *' );

На рис. 2.7 приведены разные варианты работы кода программы листинга 2.7. На рис. 2.7, а приведена аппроксимация искомой функции тремя сплайнами 1-го порядка (n = 1, полиномы нулевой степени), на рис. 2.7, б - 2-го порядка (п =2, полиномы первой степени), на рис. 2.7, в и г - соответственно третьего и 4-го порядков (п = 3, 4, полиномы второй и третьей степени).

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >