Курсовая работа (т): Аппроксимация функций методом наименьших квадратов

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

.

Коэффициент детерминированности определяется по формуле:

 (11)

Чем меньше остаточная сумма квадратов по сравнению с общей суммой квадратов, тем больше значение коэффициента детерминированности , который показывает, насколько хорошо уравнение, полученное с помощью регрессионного анализа, объясняет взаимосвязи между переменными. Если он равен 1, то имеет место полная корреляция с моделью, т.е. нет различия между фактическим и оценочным значениями y. В противоположном случае, если коэффициент детерминированности равен 0, то уравнение регрессии неудачно для предсказания значений y.

3. Расчет аппроксимаций в табличном процессоре Excel


Для проведения расчетов, данные целесообразно расположить в виде таблицы 3, используя средства табличного процессора Microsoft Excel.

Расчет данных.

Таблица 3


Поясним, как таблица 3 составляется.

Шаг 1. В ячейки B2:B16 заносим значения.

Шаг 2. В ячейки C2:C16 заносим значения.

Шаг 3. В ячейку D2 вводим формулу =B2^2.

Шаг 4. В ячейки D3:D16 эта формула копируется.

Шаг 5. В ячейку E2 вводим формулу =B2*C2.

Шаг 6. В ячейки E3:E16 эта формула копируется.

Шаг 7. В ячейку F2 вводим формулу =B2^3.

Шаг 8. В ячейки F3:F16 эта формула копируется.

Шаг 9. В ячейку G2 вводим формулу =B2^4.

Шаг 10. В ячейки G3:G16 эта формула копируется.

Шаг 11. В ячейку H2 вводим формулу =B2^2*C2.

Шаг 12. В ячейки H3:H16 эта формула копируется.

Шаг 13. В ячейку I2 вводим формулу =LN(C2).

Шаг 14. В ячейки I3:I16 эта формула копируется.

Шаг 15. В ячейку J2 вводим формулу =B2*LN(C2).

Шаг 16. В ячейки J3:J16 эта формула копируется.

Последующие шаги делаем с помощью автосуммирования .

Шаг 17. В ячейку B17 вводим формулу =СУММ(B2:B16).

Шаг 18. В ячейку C17 вводим формулу =СУММ(C2:C16).

Шаг 19. В ячейку D17 вводим формулу =СУММ(D2:D16).

Шаг 20. В ячейку E17 вводим формулу =СУММ(E2:E16).

Шаг 21. В ячейку F17 вводим формулу =СУММ(F2:F16).

Шаг 22. В ячейку G17 вводим формулу =СУММ(G2:G16).

Шаг 24. В ячейку I17 вводим формулу =СУММ(I2:I16).

Шаг 25. В ячейку J17 вводим формулу =СУММ(J2:J16).

Аппроксимируем функцию  линейной функцией .

Используя итоговые суммы таблицы 3, расположенные в ячейках B17,C17,D17 и E17, запишем систему в виде:


решив которую, получим  и .

Таким образом, линейная аппроксимация имеет вид

.

Решение системы проводили, пользуясь средствами Microsoft Excel. Результаты представлены в таблице 4.

Результаты коэффициентов линейной аппроксимации.

Таблица 4


В таблице 4 в ячейках A24:B25 записана формула {=МОБР(A20:B21)}.

В ячейках E24:E25 записана формула {=МУМНОЖ(A24:B25,C20:C21)}.

Далее аппроксимируем функцию  квадратичной функцией

.

Используя итоговые суммы таблицы 3, расположенные в ячейках B17, C17, D17, E17, F17, G17 и H17 запишем систему в виде


решив которую, получим, a1=4,5846265, a2=0,2044012, a3=0,696981.

Таким образом, квадратичная аппроксимация имеет вид


Решение системы проводили, пользуясь средствами Microsoft Excel. Результаты представлены в таблице 5.

Результаты коэффициентов квадратичной аппроксимации.

Таблица 5


В таблице 5 в ячейках A33:C35 записана формула {=МОБР(A28:C30)}.

В ячейках F33:F35 записана формула {=МУМНОЖ(A33:C35,D28:D30)}.

Теперь аппроксимируем функцию  экспоненциальной функцией . Для определения коэффициентов  и  прологарифмируем значения  и используя итоговые суммы таблицы 3, расположенные в ячейках A16, C16, H16 и I16 получим систему


где c=ln(a1)

Решив систему, найдем , .

После потенцирования получим .

Таким образом, экспоненциальная аппроксимация имеет вид

.

Решение системы проводили, пользуясь средствами Microsoft Excel. Результаты представлены в таблице 6.

Результаты коэффициентов экспоненциальной аппроксимации.

Таблица 6.


В таблице 6 в ячейках A42:B43 записана формула {=МОБР(A38:B39)}.

В ячейках F42:E43 записана формула {=МУМНОЖ(A42:B43,C38:C39)}.

В ячейке E41 записана формула =EXP(F41).

Вычислим среднее арифметическое  и  по формулам:


Результаты расчета  и  средствами Microsoft Excel представлены в

таблице 7.

Вычисление средних значений X и Y.

Таблица 7

В ячейке B44 записана формула =B17/15.

В ячейке B45 записана формула =C17/15.

Для того, чтобы рассчитать коэффициент корреляции и коэффициент детерминированности данные целесообразно расположить в виде таблицы 8, которая является продолжением таблицы 3.

Вычисление остаточных сумм

Таблица 8


Поясним, как таблица 8 составляется.

Ячейки B1:B16 и C1:C16 уже заполнены (см. табл. 2).

Далее делаем следующие шаги.

Шаг 1. В ячейку K2 вводим формулу =(B2-$B$46)*(C2-$B$47).

Шаг 2. В ячейки K3:K16 эта формула копируется.

Шаг 3. В ячейку L2 вводим формулу =(B2-$B$46)^2.

Шаг 4. В ячейки L3:L16 эта формула копируется.

Шаг 5. В ячейку M2 вводим формулу =(C2-$B$47)^2.

Шаг 6. В ячейки M3:M16 эта формула копируется.

Шаг 7. В ячейку N2 вводим формулу =($F$24+$F$25*B2-C2)^2.

Шаг 8. В ячейки N3:N16 эта формула копируется.

Шаг 9. В ячейку O2 вводим формулу =($F$33+$F$34*B2+$F$35*B2^2-C2)^2.

Шаг 10. В ячейки O3:N16 эта формула копируется.

Шаг 11. В ячейку P2 вводим формулу =($F$41*EXP($F$43*B2)-C2)^2.

Шаг 12. В ячейки P3:P16 эта формула копируется.

Последующие шаги делаем с помощью автосуммирования .

Шаг 13. В ячейку K17 вводим формулу =СУММ(K2:K16).

Шаг 14-18. Аналогично, шагу 13 для ячеек L17, M17, N17, O17P17.


(только для линейной аппроксимации) и коэффициента детерминированности по формуле:

.

Результаты расчетов средствами Microsoft Excel представлены в таблице 9.

Результаты расчета.

Таблица 9


В таблице 9 в ячейке E50 записана формула =K17/КОРЕНЬ(L17*M17).

В ячейке E51 записана формула =1-N17/M17.

В ячейке E53 записана формула =1-O17/M17.

В ячейке E55 записана формула =1-P17/M17.

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

4. Построение графиков в Excel


Исследуем характер зависимости в три этапа:

1 Построим график зависимости.

2 Построим линию тренда.

3 Получим числовые характеристики коэффициентов этого уравнения.

Рис 2. График линейной аппроксимации.

Рис 3. График квадратичной аппроксимации.

Рис 4. График экспоненциальной аппроксимации.

Полученное при построении линии тренда значение коэффициента детерминированности для экспоненциальной зависимости  не совпадает с истинным значением (это значение было сосчитано вручную выше) поскольку при вычислении коэффициента детерминированности с помощью функции ЛИНЕЙН используются не истинные значения , а преобразованные значения  с дальнейшей линеаризацией.

5. Использование функции ЛИНЕЙН

.1 Назначение функции ЛИНЕЙН

Рассмотрим назначение функции ЛИНЕЙН.

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

Функция возвращает массив, который описывает полученную прямую. Уравнение для прямой линии имеет следующий вид:

y=m1*x1 + m2*x2 + …b или y=m*x + b

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

Функция ЛИНЕЙН возвращает массив {mn; mn-1; ….; m1; b}. ЛИНЕЙН может также возвращать дополнительную регрессионную статистику.

.2 Получение числовых характеристик зависимости


Для построения числовых характеристик создаем табличную формулу, которая будет занимать 5 строк и 2 столбца (см. таблицу 10).В этот интервал вводим функцию ЛИНЕЙН. Для этого была выполнена следующая последовательность действий:

1.      Выделяем область A58:B62.

2.      Вызываем Мастера функций.

.        Выбираем функцию ЛИНЕЙН.

.        Определяем аргументы функции:

·          В качестве изв_знач_x указываем B2:B16.

·        В качестве изв_знач_y указываем C2:C16.

·        Третье поле константа оставляем пустым.

·        В четвертом поле стат набираем истина.

5.      Нажимаем кнопку Закончить.

6.      Устанавливаем курсор в строку формул.

.        Нажимаем комбинацию клавиш Ctrl + Shift + Enter, чтобы обеспечить ввод табличной формулы.

Результатом выполнения данных действий является таблица 10.

Таблица 10

Поясним назначение некоторых величин, расположенных в таблице 10.

Величины расположенные в ячейках A58 и B58 характеризуют соответственно наклон и сдвиг.

А58 - коэффициент детерминированности.

А59 - F - наблюдаемое значение.

B60 - число степеней свободы.

A61 - регрессионная сумма квадратов.

B62 - остаточная сумма квадратов.

6. Блок-схема


Далее проверим свои вычисления с помощью программы написанной на языке Turbo Pascal, а для этого составим блок-схему:

Рис 5. Блок-схема.

6.1 Программа на языке Turbo Pascal


program kursovik;crt;mas_1=array[1..15] of real;_2=array[1..3,1..3] of real;_3=array[1..2,1..2] of real;f,f1:text;,_apprLIN,_apprLIN,_apprEXP,_apprEXP:mas_3;,_apprKVAD,_apprKVAD,_apprKVAD:mas_2;,Y:mas_1;,j:byte;LIN,A2LIN,,A1EXP,A2EXP,KVAD,A2KVAD,A3KVAD,_lin, {коэффициент корреляции }

deter_lin, {коэф. детерминированности

линейной аппроксимации}_kvad, {коэф. детерминированности

квадратичной аппроксимации}_exp, {коэф. детерминированности

экспоненциальная аппроксимация}

x2, {сумма квадратов х}

x3, {сумма кубов х}

x4, {сумма четвертых степеней х}

xy, {сумма произведений х на у}

x2y, {сумма произведений квадрата х на у}

lny, {сумма логарифмов у }

xlny, {сумма произведений х на логарифм у}

xsum, {сумма х}

ysum, {сумма у}

xsr, {среднее значение х}

ysr, {среднее значение у}

S1, {(x_i-x)*(y_i-y)}

S2, {(x_i-x)^2}

LIN, {лин}

KVAD, {квадрат}

EXPON:real; {экспоненц}

{ функция возведения в целую степень }

function stepen(chislo:real;pokazat:integer):real;

var result:real;

istep:byte;

begin

result:=1;

for istep:=1 to pokazat do

result:=result*chislo;

stepen:=result;

end;

{ функция, возращающая значение опредилителя 2-ого порядка}

function det_2(mat:mas_3): real;

var result:real;

begin

result:=mat[1,1]*mat[2,2]-mat[1,2]*mat[2,1];

det_2:=result;

end;

{ функция, возращающая значение опредилителя 3-его порядка}

function det_3(mat:mas_2):real;

var M_d:mas_3; {минор элемента ij}

k_det3,i0_det3,j0_det3,j_det3:byte;

result:real;

result:=0;

for j_det3:=1 to 3 do

begin

for i0_det3:=1 to 2 do

begin

k_det3:=0;

for j0_det3:=1 to 2 do

begin

if j_det3=j0_det3 then k_det3:=1;

M_d[i0_det3,j0_det3]:=mat[i0_det3+1,j0_det3+k_det3];

end;

end;

result:=stepen(-1,1+j_det3)*det_2(M_d)*mat[1,j_det3]+result;

end;

det_3:=result;;

{{{{{{ОСНОВНАЯ ПРОГРАММА}

begin

{ чтение исходных данных из файла }

assign(f,'parametr.txt');

reset(f);

readln(f);

for i:=1 to 15 do readln(f,x[i],y[i]);

close(f);

{ вычисление необходимых в расчетах параметров}

xsum:=0;ysum:=0;x2:=0;x3:=0;x4:=0;xy:=0;x2y:=0;

for i:=1 to 15 do

begin

x2:=x2+((X[i])*(X[i])); {сумма квадратов х}

x3:=x3+((X[i])*(X[i])*(X[i])); {сумма кубов х}

x4:=x4+((X[i])*(X[i])*(X[i])*(X[i])); {сумма четвертых степеней х}

xy:=xy+X[i]*Y[i]; {сумма произведений х на у}

x2y:=x2y+((X[i])*(X[i])*Y[i]); {сумма произведений квадрата х на у}

lny:=lny+ln(Y[i]); {сумма логарифмов у }

xlny:=xlny+X[i]*ln(Y[i]); {сумма произведений х на логарифм у}

xsum:=xsum+X[i];

ysum:=ysum+Y[i];

end;

xsr:=xsum/15; {среднее значение х}

ysr:=ysum/15; {среднее значение у}

{ВЫЧИСЛЕНИЕ КОЭФФИЦИЕНТОВ ПРОИЗВОДИТЬСЯ ПО ФОРМУЛЕ КРАМЕРА}

{ЛИНЕЙНАЯ АППРОКСИМАЦИЯ}

apprLIN[1,1]:=15; {матрица коэффициентов}

apprLIN[1,2]:=xsum;

apprLIN[2,1]:=xsum;

apprLIN[2,2]:=x2;

A1_apprLIN[1,1]:=ysum;

A1_apprLIN[2,1]:=xy;

A2_apprLIN:=apprLIN;

A2_apprLIN[1,2]:=ysum;

A2_apprLIN[2,2]:=xy;

A1LIN:=det_2(A1_apprLIN)/det_2(apprLIN);

A2LIN:=det_2(A2_apprLIN)/det_2(apprLIN);

{КВАДРАТИЧНАЯ АППРОКСИМАЦИЯ}

apprKVAD[1,1]:=15; {матрица коэффициентов}

apprKVAD[1,2]:=xsum;

apprKVAD[1,3]:=x2;

apprKVAD[2,1]:=xsum;

apprKVAD[2,2]:=x2;

apprKVAD[2,3]:=x3;

apprKVAD[3,1]:=x2;

apprKVAD[3,2]:=x3;

apprKVAD[3,3]:=x4;

A1_apprKVAD:=apprKVAD;

A1_apprKVAD[1,1]:=ysum;

A1_apprKVAD[2,1]:=xy;

A1_apprKVAD[3,1]:=x2y;

A2_apprKVAD:=apprKVAD;

A2_apprKVAD[1,2]:=ysum;

A2_apprKVAD[2,2]:=xy;

A2_apprKVAD[3,2]:=x2y;

A3_apprKVAD:=apprKVAD;

A3_apprKVAD[1,3]:=ysum;

A3_apprKVAD[2,3]:=xy;

A3_apprKVAD[3,3]:=x2y;

A1KVAD:=det_3(A1_apprKVAD)/det_3(apprKVAD);

A2KVAD:=det_3(A2_apprKVAD)/det_3(apprKVAD);

A3KVAD:=det_3(A3_apprKVAD)/det_3(apprKVAD);

{ЭКСПОНЕНЦИАЛЬНАЯ АППРОКСИМАЦИЯ}

{матрица коэффициентов совпадает с матрицей коэффициентов

при линейной аппроксимации}

Источник: https://www.bibliofond.ru/detail.aspx?id=792096