Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
99
Добавлен:
17.04.2013
Размер:
135.17 Кб
Скачать

Лабораторная работа N5

Обработка экспериментальных данных методом наименьших квадратов

Краткие теоретические сведения.

Для начала рассмотрим линейную регрессию от одной переменной. Пусть имеются результаты измерений двух величин и , предполагается, что они связаны линейной зависимостью

. (1)

При этом ошибка измерения является некоторой случайной величиной, а ее среднее значение равно нулю. Так как результаты не ложатся на прямую, то необходимо построить наилучшую прямую проходящую наиболее близко к каждой из этих точек. Это типичная задача обработки измерений.

Для нахождения неизвестных коэффициентов используют метод наименьших квадратов, а именно минимизируют функционал вида

. (2)

Необходимым условием минимума будет выполнение условий

. (3)

В результате получим

, (4)

где средние значения и определяются по формулам

. (5)

Формулы (4) позволяют построить график прямой, называемой регрессией на , которая дает представление о зависимости. В дополнение к ней обычно строят и регрессию на , модель которой аналогична (1), только в качестве независимой переменной используют . Таким образом, получают две пересекающиеся в точке прямые, при этом большинство результатов измерений лежит именно между ними. Более того, во многих случаях удается линеаризовать исходную зависимость и рассматривать ее относительно некоторых новых переменных, которые образуют линейную связь. Например, для функции берут новые переменные и получают зависимость вида .

В общем случае, если регрессия на отличается от линейной, рассматривают линейную по параметрам регрессионную модель вида

, (6)

где – известные функции, а неизвестные параметры. Пусть имеется наблюдений , которые являются результатом реализации случайной величины

, (7)

здесь – случайные независимые друг относительно друга и распределенные по нормальному закону ошибки наблюдений. Необходимо отметить, что система уравнений относительно неизвестных является типичной пере- или недоопределенной задачей и должна решаться методом наименьших квадратов.

По методу наименьших квадратов в качестве оценок принимают значения , дающие минимум функции

. (8)

Из необходимых условий минимума следует, что оценки являются решениями алгебраической системы уравнений

(9)

Данную систему уравнений часто называется нормальной системой. В матричных обозначениях она имеет вид

, (10)

где -вектор наблюдений, -вектор оценок параметров,

– регрессионная -матрица.

При условии, что матрица – невырожденная, решение (9) можно записать в виде

. (11)

Часто в качестве функций принимают степенные функции, т.е. . В этом случае регрессионная матрица имеет вид

. (12)

Уравнение для нахождения неизвестного вектора параметров будет иметь вид

. (13)

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

Проведем обработку экспериментальных данных (26 измерений) представленных на рисунке 1 «звездочками». Из рисунка видно, что зависимость переменных друг от друга является нелинейной. Очевидно, что интерполяционную кривую строить не имеет смысла. Аппроксимируем наши данные полиномом третьей степени, т.е. представим нашу кривую в виде

.

Основная задача определить коэффициенты . Для расчетов необходимо задать массивы данных и , построим программу, используя соотношение (13). Экспериментальные точки и регрессионная кривая представлены на рисунке 1.

Рисунок 1. Экспериментальные данные и регрессионная кривая

Вариант N7.

x= [-2.5:0.1:2.5]

0.0333 -0.0774 0.0338 -0.2088 -0.0374 0.0677 0.0097 -0.0358 0.0176 -0.0631 0.0372 -0.0289 -0.1075 0.0745 0.0676 -0.0631 0.2454 0.2056 0.1450 0.4802 0.5871 0.7197 0.7737 0.7906 1.1080 1.1836 1.2484 1.1971 1.1137 1.2746 1.3382 1.2780 1.0081 1.1523 1.0753 0.9715 1.0488 1.0237 0.8803 0.4492 0.5088 0.4462 0.3265 0.2189 0.0912 0.2584 0.0867 -0.0094 0.1568 0.2356

-0.0008

Текст программы.

x=[-2.5:0.1:2.5]

y=[0.0333, -0.0774, 0.0338, -0.2088, -0.0374, 0.0677, 0.0097, -0.0358, 0.0176, -0.0631, 0.0372, -0.0289, -0.1075, 0.0745, 0.0676, -0.0631, 0.2454, 0.2056, 0.1450, 0.4802, 0.5871, 0.7197, 0.7737, 0.7906, 1.1080, 1.1836, 1.2484, 1.1971, 1.1137, 1.2746, 1.3382, 1.2780, 1.0081, 1.1523, 1.0753, 0.9715, 1.0488, 1.0237, 0.8803, 0.4492, 0.5088, 0.4462, 0.3265, 0.2189, 0.0912, 0.2584, 0.0867, -0.0094, 0.1568, 0.2356, -0.0008 ]

A=[51,sum(x),sum(x.^2),sum(x.^3),sum(x.^4);sum(x),sum(x.^2),sum(x.^3),sum(x.^4),sum(x.^5);sum(x.^2),sum(x.^3),sum(x.^4),sum(x.^5),sum(x.^6);sum(x.^3),sum(x.^4),sum(x.^5),sum(x.^6),sum(x.^7);sum(x.^4),sum(x.^5),sum(x.^6),sum(x.^7),sum(x.^8)]

sum(x.*y);

sum(x.^2.*y)

sum(x.^3.*y)

sum(x.^4.*y)

C=[sum(y);

sum(x.*y);

sum(x.^2.*y);

sum(x.^3.*y);

sum(x.^4.*y);

]

for j=1:1:5

for i=1:1:5

if (j<i),

K=A(i,j)/A(j,j)

A(i,:)=A(i,:)-K*A(j,:)

C(i,1)=C(i,1)-K*C(j,1)

end

end

end

for i=5:-1:1

b(i,1)=C(i,1)/A(i,i)

for j=i:1:5

if (j>i),

b(i,1)=b(i,1)-A(i,j)*b(j,1)/A(i,i)

end

end

end

f=b(1,1)+b(2,1)*x+b(3,1)*x.^2+b(4,1)*x.^3+b(5,1)*x.^4

b1=sum((x-sum(x)/51).*(y-sum(y)/51))/sum((x-sum(x)/51).^2)

b0=(sum(y)/51)-b1*sum(x)/51

y1=b0+b1*x

plot(x,y,'*',x,f);grid

osibka=sum(abs(y-f))/51

После выполнения программы получим:

osibka = 0.1432

Соседние файлы в папке Лаба 5