Файл: Аппроксимация функции методом наименьших квадратов.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.12.2023
Просмотров: 103
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Федеральное государственное бюджетное образовательное учреждение высшего образования
Расчёт с помощью таблиц, выполненных средствами Microsoft Excel.
Программа расчета на языке программирования VBA.
Результаты расчёта на языке программирования VBA.
Результаты, полученные с помощью функции ЛИНЕЙН.
y = 14,258x-36,992 (15)
Решение системы (11) проводим, пользуясь средствами Microsoft Excel. Результаты представлены в таблице 3.
Таблица 3.
25 | 177,13 | 1600,69 | | | ||
177,13 | 1689,517 | 17536,43 | | | ||
| | | | | ||
Обратная матрица | | a1= | -36,9917 | |||
0,155531186 | -0,01631 | | a2= | 14,25779 | ||
-0,016305988 | 0,002301 | | | |
В таблице 3 в ячейках A32:B33 записана формула {=МОБР(А28:В29)}.
В ячейках Е32:Е33 записана формула {=МУМНОЖ(А32:В33),(C28:С29)}.
Далее аппроксимируем функцию квадратичной функцией . Для определения коэффициентов a1, a2 и a3 воспользуемся системой (5). Используя итоговые суммы таблицы 2, расположенные в ячейках A26, B26, C26 , D26, E26, F26, G26 запишем систему (5) в виде
(16)
решив которую, получим a1 = -1,39325, a2 = 0,70294 и a3 = 0,894344
Таким образом, квадратичная аппроксимация имеет вид
y =0,8943x^2+0,7029x-1,3933 (17)
Решение системы (16) проводим, пользуясь средствами Microsoft Excel. Результаты представлены в таблице 4.
Таблица 4.
25 | 177,13 | 1689,517 | 1600,69 | | |
177,13 | 1689,517 | 18556,16 | 17536,43 | | |
1689,5167 | 18556,16 | 219852,7 | 207313,9 | | |
| | | | | |
Обратная матрица | | | | | |
0,425826829 | -0,11923 | 0,006791 | | a1= | -1,39325 |
-0,119226748 | 0,041491 | -0,00259 | | a2= | 0,70294 |
0,006790678 | -0,00259 | 0,000171 | | a3= | 0,894344 |
В таблице 4 в ячейках А41:С43 записана формула {=МОБР(А35:С37)}.
В ячейках F41:F43 записана формула {=МУМНОЖ(А41:C43),(D36:D38)}.
Теперь аппроксимируем функцию экспоненциальной функцией . Для определения коэффициентов и прологарифмируем значения и, используя итоговые суммы таблицы 2, расположенные в ячейках A26, C26, H26 и I26, получим систему
(18)
где .
Решив систему (18), получим c = 0,847159 и a2 = 0,354642.
После потенцирования получим a1 = 2,33301.
Таким образом, экспоненциальная аппроксимация имеет вид
y = 2,333e0,3546x (19)
Решение системы (18) проводим, пользуясь средствами Microsoft Excel. Результаты представлены в таблице 5.
Таблица 5.
25 | 177,13 | 83,99674 | | | ||
177,13 | 1689,517 | 749,2311 | | | ||
| | | | | ||
Обратная матрица | | c | 0,847159 | |||
0,155531186 | -0,01631 | | a2 | 0,354642 | ||
-0,016305988 | 0,002301 | | a1 | 2,33301 |
В таблице 5 в ячейках А50:A51 записана формула {=МОБР(А46:B47)}.
В ячейках Е49:Е50 записана формула {=МУМНОЖ(A50:B51;C46:C47)}
В ячейке Е51 записана формула=EXP(E49).
Вычислим среднее арифметическое и по формулам:
; .
Результаты расчета и средствами Microsoft Excel представлены в таблице 6.
Таблица 6.
Хср.= | 7,0852 |
Yср.= | 64,0276 |
В ячейке В54 записана формула=А26/25.
В ячейке В55 записана формула=В26/25
Для того, чтобы рассчитать коэффициент корреляции и коэффициент детерминированности данные целесообразно расположить в виде таблицы 7, которая является продолжением таблицы 2.
0,77 | 0,56 | 400,8106 | 39,88175 | 4028,136 | 706,1335 | 0,777451 | 6,277881 |
1,45 | 2,08 | 349,0871 | 31,75548 | 3837,505 | 338,4819 | 0,329052 | 3,318276 |
1,76 | 3,04 | 324,7712 | 28,35776 | 3719,487 | 223,1428 | 0,181269 | 1,729278 |
2,23 | 2,76 | 297,4665 | 23,57297 | 3753,719 | 63,31073 | 3,466255 | 5,687874 |
2,65 | 3,65 | 267,7867 | 19,671 | 3645,455 | 8,171216 | 9,610439 | 5,388325 |
2,76 | 7,06 | 246,3963 | 18,70736 | 3245,307 | 22,09167 | 0,089771 | 0,724502 |
3,45 | 14,98 | 178,2978 | 13,21468 | 2405,667 | 7,74122 | 10,91098 | 49,7001 |
3,89 | 15,98 | 153,5217 | 10,2093 | 2308,572 | 6,205685 | 1,222152 | 45,03236 |
4,87 | 23,22 | 90,397 | 4,907111 | 1665,26 | 85,0776 | 0,000447 | 101,9759 |
5,04 | 26,12 | 77,52862 | 4,182843 | 1436,986 | 76,52008 | 1,569158 | 148,4227 |
5,54 | 28,76 | 54,4955 | 2,387643 | 1243,804 | 175,2041 | 1,41584 | 146,8673 |
5,81 | 30,76 | 42,42284 | 1,626135 | 1106,733 | 227,5895 | 4,496107 | 154,9193 |
6,98 | 45,76 | 1,921752 | 0,011067 | 333,7052 | 281,1551 | 1,758483 | 325,0346 |
7,34 | 50,87 | -3,35256 | 0,064923 | 173,1224 | 281,9204 | 1,165666 | 374,8982 |
7,86 | 60,45 | -2,77192 | 0,600315 | 12,79922 | 213,877 | 1,136173 | 509,0236 |
8,12 | 65,87 | 1,906516 | 1,070811 | 3,394438 | 166,7083 | 6,694268 | 591,5519 |
8,87 | 77,85 | 24,67022 | 3,185511 | 191,0587 | 135,1382 | 6,990427 | 558,928 |
9,45 | 86,09 | 52,17316 | 5,592279 | 486,7495 | 135,8253 | 0,947297 | 380,3205 |
10,87 | 101,65 | 142,3933 | 14,32471 | 1415,445 | 267,0109 | 105,4862 | 72,76785 |
11,23 | 124,37 | 250,1072 | 17,17937 | 3641,205 | 1,554329 | 25,81543 | 0,663738 |
11,89 | 130,75 | 320,5878 | 23,0861 | 4451,879 | 3,180557 | 7,022657 | 753,4505 |
12,56 | 149,56 | 468,2728 | 29,97344 | 7315,791 | 55,85876 | 1,078067 | 2608,183 |
13,43 | 172,45 | 687,9184 | 40,25649 | 11755,42 | 322,5471 | 9,575656 | 10139,49 |
13,55 | 175,51 | 720,7114 | 41,79364 | 12428,33 | 372,8245 | 10,07792 | 11992,48 |
14,76 | 200,54 | 1047,705 | 58,90256 | 18635,64 | 733,6916 | 10,77045 | 56274,61 |
177,13 | 1600,69 | 6195,225 | 434,5152 | 93241,16 | 4910,962 | 222,5877 | 85251,45 |
x | y | (x-xср)*(y-yср) | (x-xср)^2 | (y-yср)^2 | линейн. | квадр. | экспон. |
Таблица 7.
Пояснение к таблице 7.
Ячейки А1:А26 и В1:В26 уже заполнены .
Далее делаем следующие шаги.
Шаг 1.В ячейку J1 вводим формулу=(A1-$B$54)*(B1-$B$55).
Шаг 2.В ячейки J2:J25 эта формула копируется.
Шаг 3.В ячейку K1 вводим формулу=(A1-$B$54)^2.
Шаг 4.В ячейки k2:K25 эта формула копируется.
Шаг 5.В ячейку L1 вводим формулу=(B1-$B$55)^2.
Шаг 6.В ячейки L2:L25 эта формула копируется.
Шаг 7.В ячейку M1 вводим формулу=($F$32+$F$33*A1-B1)^2.
Шаг 8.В ячейки M2:M25 эта формула копируется.
Шаг 9.В ячейку N1 вводим формулу=($F$41+$F$42*A1+$F$43*A1^2-B1)^2.
Шаг 10.В ячейки N2:N25 эта формула копируется.
Шаг 11.В ячейку O1 вводим формулу=($F$51*EXP($F$50*A1)-B1)^2.
Шаг 12.В ячейки O2:O25 эта формула копируется.
Последующие шаги делаем с помощью авто суммирования .
Шаг 13.В ячейку J26 вводим формулу =CУММ(J1:J25).
Шаг 14.В ячейку K26 вводим формулу =CУММ(K1:K25).
Шаг 15.В ячейку L26 вводим формулу =CУММ(L1:L25).
Шаг 16.В ячейку M26 вводим формулу =CУММ(M1:M25).
Шаг 17.В ячейку N26 вводим формулу =CУММ(N1:N25).
Шаг 18.В ячейку O26 вводим формулу =CУММ(O1:O25).
Теперь проведем расчеты коэффициента корреляции по формуле (8) (только для линейной аппроксимации) и коэффициента детерминированности по формуле (10). Результаты расчетов средствами Microsoft Excel представлены в таблице 8.
Коэффициент корреляции | 0,973309 |
Коэффициент детерминированности (линейная аппроксимация) | 0,947331 |
Коэффициент детерминированности (квадратичная аппроксимация) | 0,997613 |
Коэффициент детерминированности (экспоненциальная аппроксимация) | 0,085689 |
Таблица 8.
В ячейке B57 записана формула=J26/(K26*L26) ^ (1/2).
В ячейке B58 записана формула=1-M26/L26.
В ячейке B59 записана формула=1-N26/L26.
В ячейке B60 записана формула=1-O26/L26.
Анализ результатов расчетов показывает, что квадратичная аппроксимация наилучшим образом описывает экспериментальные данные.
Схема алгоритма.
Начало
Ввод данных
Промежуточные расчёты (согл. таблице 2)
Аппроксимируем функцию y=f(x) линейной функцией (находим коэффициенты а1 и а2)
Аппроксимируем функцию y=f(x) квадратичной функцией (находим коэффициенты а1, а2 и а3)
Аппроксимируем функцию y=f(x) экспоненциальной функцией (находим коэффициенты а1 и а2)
Находим среднее арифметическое и
Промежуточные расчёты (согл. таблице 7)
Находим коэффициент корреляции r
(для линейной аппроксимации)
Находим коэффициент детерминированности r2
для линейной, квадратичной и экспоненциальной аппроксимации
Вывод результатов
Конец
Рис.1. Схема алгоритма для программы расчёта.
Программа расчета на языке программирования VBA.
Sub prog()
For i = 1 To 25
Cells(i, 23) = Cells(i, 1) ^ 2
Cells(i, 24) = Cells(i, 1) * Cells(i, 2)
Cells(i, 25) = Cells(i, 1) ^ 3
Cells(i, 26) = Cells(i, 1) ^ 4
Cells(i, 27) = Cells(i, 1) ^ 2 * Cells(i, 2)
Cells(i, 28) = Log(Cells(i, 2))
Cells(i, 29) = Log(Cells(i, 2)) * Cells(i, 1)
Cells(i, 30) = (summirovanie(1) / 25 - Cells(i, 1)) * (summirovanie(2) / 25 - Cells(i, 2))
Cells(i, 31) = (Cells(i, 1) - summirovanie(1) / 25) ^ 2
Cells(i, 32) = (Cells(i, 2) - summirovanie(2) / 25) ^ 2
Next
Dim y3(1, 0) As Variant
y1 = krameffor2(25, summirovanie(1), summirovanie(1), summirovanie(23), summirovanie(2), summirovanie(24))
с = krameffor2(25, summirovanie(1), summirovanie(1), summirovanie(23), summirovanie(28), summirovanie(29))
y3(0, 0) = exp(с(0, 0))
y3(1, 0) = с(1, 0)
y2 = krameffor3(25, summirovanie(1), summirovanie(23), summirovanie(1), summirovanie(23), summirovanie(25), summirovanie(23), summirovanie(25), summirovanie(26), summirovanie(2), summirovanie(24), summirovanie(27))
For i = 1 To 25
Cells(i, 33) = (y1(0, 0) + y1(1, 0) * Cells(i, 1) - Cells(i, 2)) ^ 2
Cells(i, 34) = (y2(0, 0) + y2(1, 0) * Cells(i, 1) + y2(2, 0) * Cells(i, 1) ^ 2 - Cells(i, 2)) ^ 2
Cells(i, 35) = (y3(0, 0) * exp(y3(1, 0) * Cells(i, 1)) - Cells(i, 2)) ^ 2
Next
koef1 = summirovanie(30) / (summirovanie(31) * summirovanie(32)) ^ (1 / 2)
koef2 = 1 - summirovanie(33) / summirovanie(32)
koef3 = 1 - summirovanie(34) / summirovanie(32)
koef4 = 1 - summirovanie(35) / summirovanie(32)