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

Sub aprox()
Dim x() As Single, y() As Single, eps() As Single, yNew() As Single
Dim i As Integer, j As Integer, h As Integer, m As Integer
m = 20
n = InputBox("Введіть кількість відрізків", "Кількість відрізків")
ReDim x(n) As Single
ReDim y(n) As Single
ReDim yNew(n) As Single
ReDim eps(m) As Single
mes = "Апроксимація функції за МНК:"
mes = mes & vbNewLine & vbNewLine
    For i = 1 To n
        x(i) = InputBox("Введіть " & i & "-e значення x", "Значення х")
    Next i
    For j = 1 To n
        y(j) = InputBox("Введіть " & j & "-e значення y", "Значення у")
    Next j
    For j = 1 To n
        For h = 1 To n
            If j = h Then
                yNew(h) = y(j)
            End If
        Next h
    Next j
xAr = (x(1) + x(n)) / 2
xGeom = (x(1) * x(n)) ^ 0.5
xGarm = 2 * x(1) * x(n) / (x(1) + x(n))
yAr = (y(1) + y(n)) / 2
yGeom = (y(1) * y(n)) ^ 0.5
yGarm = 2 * y(1) * y(n) / (y(1) + y(n))
minimum = 100
minimum2 = 100
minimum3 = 100
    For i = 1 To n
        j = i
            If xAr = x(i) Then
                yzAr = y(j)
            ElseIf Abs(xAr - x(i)) < minimum Then
                minimum = Abs(xAr - x(i))
                yzAr = y(j) + (y(j + 1) - y(j)) / (x(i + 1) - x(i)) * (xGeom - x(i))
            End If
            
            If xGeom = x(i) Then
                yzGeom = y(j)
            ElseIf Abs(xGeom - x(i)) < minimum2 Then
                yzGeom = y(j) + (y(j + 1) - y(j)) / (x(i + 1) - x(i)) * (xGeom - x(i))
                minimum2 = Abs(xGeom - x(i))
            End If
            
            If xGarm = x(i) Then
                yzGarm = y(j)
            ElseIf Abs(xGarm - x(i)) < minimum3 Then
                minimum3 = Abs(xGarm - x(i))
                yzGarm = y(j) + (y(j + 1) - y(j)) / (x(i + 1) - x(i)) * (xGarm - x(i))
            End If
    Next i
eps(1) = Abs(yzAr - yAr)
eps(2) = Abs(yzAr - yGeom)
eps(3) = Abs(yzAr - yGarm)
eps(4) = Abs(yzGeom - yAr)
eps(5) = Abs(yzGeom - yGeom)
eps(6) = Abs(yzGarm - yAr)
eps(7) = Abs(yzGarm - yGarm)
epsMin = eps(1)
    For m = 2 To 7
        If eps(m) < epsMin Then
            epsMin = eps(m)
        End If
    Next m
    If epsMin = eps(1) Then
        Text = "Данна залежність є лінійною"
            For j = 1 To n
                For i = 1 To n
                    If j = i Then
                        y(j) = y(j)
                        x(i) = x(i)
                    End If
                Next i
            Next j
    ElseIf epsMin = eps(2) Then
        Text = "Дана залежність є показниковою"
            For j = 1 To n
                For i = 1 To n
                    If j = i Then
                        y(j) = Log(y(j)) / Log(10)
                        x(i) = x(i)
                    End If
                Next i
            Next j
    ElseIf epsMin = eps(3) Then
        Text = "Дана залежність є дробово-раціональною"
            For j = 1 To n
                For i = 1 To n
                    If j = i Then
                        x(i) = x(i)
                        y(j) = 1 / y(j)
                    End If
                Next i
            Next j
    ElseIf epsMin = eps(4) Then
        Text = "Дана залежність є логарифмічною"
            For j = 1 To n
                For i = 1 To n
                    If j = i Then
                        x(i) = Log(x(i))
                        y(j) = y(j)
                    End If
                Next i
            Next j
    ElseIf epsMin = eps(5) Then
        Text = "Дана залежність є степеневою"
            For j = 1 To n
                For i = 1 To n
                    If j = i Then
                        y(j) = Log(y(j)) / Log(10)
                        x(i) = Log(x(i)) / Log(10)
                    End If
                Next i
            Next j
    ElseIf epsMin = eps(6) Then
        Text = "Дана залежність є гіперболічною"
            For j = 1 To n
                For i = 1 To n
                    If j = i Then
                        x(i) = 1 / x(i)
                        y(j) = y(j)
                    End If
                Next i
            Next j
    ElseIf epsMin = eps(7) Then
        Text = "Дана залежність є добово-раціональною"
            For j = 1 To n
                For i = 1 To n
                    If j = i Then
                        y(j) = 1 / y(j)
                        x(i) = 1 / x(i)
                    End If
                Next i
            Next j
    End If
mes = mes & Text & vbNewLine & vbNewLine & "y(задане)    " & "y(апроксимоване)" & vbNewLine
sumX2 = 0
sumX = 0
    For i = 1 To n
        sumX = sumX + x(i)
        sumX2 = sumX2 + x(i) ^ 2
    Next i
sumY = o
    For j = 1 To n
        sumY = sumY + y(j)
    Next j
summ = o
    For i = 1 To n
        For j = 1 To n
            If i = j Then
                summ = summ + x(i) * y(j)
            End If
        Next j
    Next i
del = n * sumX2 - (sumX * sumX)
del1 = sumY * sumX2 - (summ * sumX)
del2 = n * summ - (sumX * sumY)
b0 = del1 / del
b1 = del2 / del
    For j = 1 To n
        For i = 1 To n
            If j = i Then
                y(j) = b0 + b1 * x(i)
            End If
        Next i
    Next j
    If epsMin = eps(1) Then
        For j = 1 To n
            For i = 1 To n
                If j = i Then
                    y(j) = y(j)
                    x(i) = x(i)
                End If
            Next i
        Next j
    ElseIf epsMin = eps(2) Then
        For j = 1 To n
            For i = 1 To n
                If j = i Then
                    y(j) = Exp(y(j) * Log(10))
                    x(i) = x(i)
                End If
            Next i
        Next j
    ElseIf epsMin = eps(3) Then
        For j = 1 To n
            For i = 1 To n
                If j = i Then
                    x(i) = x(i)
                    y(j) = 1 / y(j)
                End If
            Next i
        Next j
    ElseIf epsMin = eps(4) Then
        For j = 1 To n
            For i = 1 To n
                If j = i Then
                    x(i) = Exp(x(i))
                    y(j) = y(j)
                End If
            Next i
        Next j
    ElseIf epsMin = eps(5) Then
        For j = 1 To n
            For i = 1 To n
                If j = i Then
                    y(j) = Exp(y(j) * Log(10))
                    x(i) = Exp(x(i) * Log(10))
                End If
            Next i
        Next j
    ElseIf epsMin = eps(6) Then
        For j = 1 To n
            For i = 1 To n
                If j = i Then
                    x(i) = 1 / x(i)
                    y(j) = y(j)
                End If
            Next i
        Next j
    ElseIf epsMin = eps(7) Then
        For j = 1 To n
            For i = 1 To n
                If j = i Then
                    y(j) = 1 / y(j)
                    x(i) = 1 / x(i)
                End If
            Next i
        Next j
    End If
    For h = 1 To n
        For j = 1 To n
            If h = j Then
                vseEps = vseEps + (yNew(h) - y(j)) ^ 2
                mes = mes & yNew(h) & "             " & y(j) & vbNewLine
            End If
        Next j
    Next h
poh = (vseEps / (n - 1)) ^ 0.5
mes = mes & vbNewLine & vbNewLine & "Середньоквадратична похибка: " & poh
MsgBox mes
End Sub


Подборка по базе: основные статистические показатели (характеристики) данных агрон, При измерении сопротивления обмотки якоря методом амперметра и в, Визуализация данных.ти ЭБС 63 вопроса.docx, Курсовая по информатике на тему _Спроектированная база данных ма, Тема 3.1 Понятия сводки и группировки статистических данных.pdf, АОУ. Лабораторная работа 3. Определение настроек регулятора мето, Положение о персональных данных.docx, Практическая работа №5_ Анализ данных о результатах оценочных пр, 3.13 Измерение сопротивление методом моста Уитстона..docx, Инструкция по выгрузке и загрузке данных.docx


Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Санкт-Петербургский горный университет»


КУРСОВАЯ РАБОТА

По дисциплине

: ________Информатика__________________________

(наименование учебной дисциплины согласно учебному плану)

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

Тема:

Аппроксимация данных методом наименьших квадратов

Автор: студент гр.

ЭРБ-16 _ _____________ /Акульшин Д.А./

(шифр группы) (подпись) (Ф.И.О.)

ОЦЕНКА: ___________
Дата: _______________
ПРОВЕРИЛ:
Руководитель проекта

доцент _____________ / Ильин А.Е./

(должность) (подпись) (Ф.И.О.)
Санкт-Петербург

2017 г.

Министерство Образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего образования

Санкт-Петербургский горный Университет

УТВЕРЖДАЮ

Заведующий кафедрой

Доцент Маховиков А.Б.

___________/________/

«___»__________2017 г.

Кафедра информатики и компьютерных технологий

КУРСОВАЯ РАБОТА

По дисциплине

Информатика

_________________________________________________________________________

(наименование учебной дисциплины согласно учебному плану)

ЗАДАНИЕ

Студенту группы

ЭРБ-16 Акульшин Д.А.

(шифр группы) (Ф.И.О.)

1. Тема работы:

Аппроксимация функции методом наименьших квадратов
2. Исходные данные к проекту: Вариант №1
3. Содержание пояснительной записки: Пояснительная записка включает в себя задание на выполнение работы, расчётные формулы, расчёты с помощью электронных таблиц MicrosoftExcel, расчёты с использованием пакетов MathCAD, программу расчёта (на языке VBA), графическое решение, заключение, библиографический список
4. Перечень графического материала: таблицы и графики.

5. Срок сдачи законченного проекта:

02.05.2017
Руководитель проекта доцент ________________ / Ильин А.Е. /

(должность) (подпись) (Ф.И.О.)

Дата выдачи задания:

15.02.2017.

Аннотация

Пояснительная записка представляет собой отчет о выполнении курсовой работы. В ней рассматриваются вопросы по нахождению эмпирических формул методом наименьших квадратов (МНК) посредством возможностей пакетов Microsoft Excel, а также рассматривается решение данной задачи в программе MathCAD и VBA. В работе получены уравнения различных видов с помощью аппроксимации линейной, квадратичной и экспоненциальной зависимостей. По окончании работы сделан вывод, каким методом задача решена лучше всего.

Страниц 34, таблиц 10, рисунков 12.
Abstract

The explanatory note represents the report on performance of term paper performance. In it questions of empirical formulas by a method of the least squares (МNK) by means of possibilities of package Microsoft Excel are considered, and also the decision of the given problem in MathCAD and VBA is considered. In work the equations of various kinds by means of approximation linear, square-law and exponential dependences are received. Upon termination of work the conclusion is drawn, the problem is solved by what method is better.

Pages 34, tables 10, figures 124.

Оглавление

Введение 5

1.Постановка задачи 6

2. Математические методы и средства решения 7

2.1. Построение эмпирических формул методом наименьших квадратов 7

2.2. Линейная зависимость 10

2.3. Квадратичная зависимость 10

2.4. Линеаризация экспоненциальной зависимости 11

2.5. Элементы теории корреляции 11

2.6. Коэффициент детерминированности 14

3.Исходные данные 15

4.Аппроксимация функции с помощью Excel 16

4.1.Линейная аппроксимация 17

4.2.Квадратичная аппроксимация 18

4.3.Экспоненциальная аппроксимация 19

4.4.Коэффициент корреляции. Коэффициенты детерминированности 20

4.5.Графический способ в Excel 22

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

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

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

5. Аппроксимация функции с помощью MathCAD 27

5.1. Исходные данные 27

5.2. Линейная аппроксимация 28

5.3. Полиномиальная регрессия 29

5.4. Экспоненциальная регрессия 30

6. Программа для аппроксимации функций методом наименьших квадратов на языке VBA 32

Выводы 37

Рекомендательный библиографический список 38

0 / 0 / 0

Регистрация: 31.10.2017

Сообщений: 7

1

Макрос. Аппроксимация

31.10.2017, 16:16. Показов 5178. Ответов 14


Студворк — интернет-сервис помощи студентам

Буду очень рад помощи) Есть следующий рад данных в виде таблицы exel
Х: 241,85; 261,15; 270,85; 281,15; 292,15; 299,15; 308,05; 321,55; 336,65; 351,55
У: 0; 0,6989; 1; 1,3010; 1,6020; 1,7781; 2; 2,3010; 2,6020; 2,8808
Как можно при помощи макроса сделать аппроксимацию вида: y=A/(x+C)+B

Миниатюры

Макрос. Аппроксимация
 



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

31.10.2017, 16:16

14

oh my god

1454 / 793 / 161

Регистрация: 05.01.2016

Сообщений: 2,307

Записей в блоге: 8

31.10.2017, 16:20

2

Вы знаете что такое аппроксимация ?



0



0 / 0 / 0

Регистрация: 31.10.2017

Сообщений: 7

31.10.2017, 16:29

 [ТС]

3

да, обобщение данных при помощи заданной функции



0



31 / 28 / 1

Регистрация: 06.01.2017

Сообщений: 297

31.10.2017, 16:47

4

Прежде чем строить аппроксимацию надо задать критерий аппроксимации, т.е. чем одна аппроксимация лучше другой.
В данном случае — чем один набор коэффициентов A, B, C лучше другого.

Традиционно в качестве критерия выступает сумма квадратов разностей, оптимальной аппроксимацией считается та, у которой эта сумма наименьшая, почему и называется «метод наименьших квадратов».

Но строить эти разности можно по разному.

Скорее всего, Вам надо сделать напрямую:



0



6169 / 934 / 309

Регистрация: 25.02.2011

Сообщений: 1,359

Записей в блоге: 1

31.10.2017, 16:59

5

Обязательно нужно решать через VBA?
можно задействовать «поиск решения» для поиска коэффициентов используя МНК

Полином очень хорошо описывает указанный набор данных



0



15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

31.10.2017, 17:00

6

Цитата
Сообщение от nik_art
Посмотреть сообщение

Есть следующий рад данных в виде таблицы exel

Так приложите файл Eхcel, а не картинку.



0



0 / 0 / 0

Регистрация: 31.10.2017

Сообщений: 7

31.10.2017, 17:27

 [ТС]

7

Цитата
Сообщение от MU-GK
Посмотреть сообщение

Скорее всего, Вам надо сделать напрямую:

Если бы вопрос был в линейной аппроксимации все было бы на много проще, но увы мне нужна именно такая функция

Добавлено через 15 секунд

Цитата
Сообщение от MU-GK
Посмотреть сообщение

Скорее всего, Вам надо сделать напрямую:

Если бы вопрос был в линейной аппроксимации все было бы на много проще, но увы мне нужна именно такая функция

Добавлено через 55 секунд

Цитата
Сообщение от m-ch
Посмотреть сообщение

Обязательно нужно решать через VBA?
можно задействовать «поиск решения» для поиска коэффициентов используя МНК
Полином очень хорошо описывает указанный набор данных

А можно пожалуйста поподробнее?



0



oh my god

1454 / 793 / 161

Регистрация: 05.01.2016

Сообщений: 2,307

Записей в блоге: 8

31.10.2017, 17:30

8

Цитата
Сообщение от nik_art
Посмотреть сообщение

А можно пожалуйста поподробнее?

Это надстройка в excel

Миниатюры

Макрос. Аппроксимация
 



1



31 / 28 / 1

Регистрация: 06.01.2017

Сообщений: 297

31.10.2017, 17:33

9

Причем тут линейная аппроксимация?

Говоря «напрямую» я имел в виду, что разности надо строить напрямую:

dY(i) = Y(i) — (A/(X(i)+C) + B)

Но можно и не напрямую, сначала проведя преобразования, сведя Вашу зависимость к линейной:

y*(x+c)= a + b*(x+c)
x*y = a+b*c+b*x-c*y

Или
Z = A+B*x+C*y
где

Z = x*y
A = a + b*c
B = b
C = -c



1



6169 / 934 / 309

Регистрация: 25.02.2011

Сообщений: 1,359

Записей в блоге: 1

31.10.2017, 17:37

10

поиск решения по вашим данным нашел следующие коэффициенты:
A: -2023,25099599718
B: 8,86941820361647
C: -13,6971883429513

Y = -2023,25099599718/(X-13,6971883429513)+8,86941820361647

Если взять модель полинома третей степени, то уравнение аппроксимирующей кривой будет следующим:
Y = 3,24253265095781E-07*X^3 — 0,000381444750175124*X^2 + 0,165983315589849*X — 22,416131839632
при этом коэффициент детерминированности близок к единице, R2 = 0,999980657329668



1



oh my god

1454 / 793 / 161

Регистрация: 05.01.2016

Сообщений: 2,307

Записей в блоге: 8

31.10.2017, 17:38

11

Ну вот, перепишите то что на картинке, задайте целевые ячейки как в преведенных уравнениях
и сверьтесь с ответами m-ch, наверное так



0



0 / 0 / 0

Регистрация: 31.10.2017

Сообщений: 7

31.10.2017, 19:34

 [ТС]

12

Цитата
Сообщение от m-ch
Посмотреть сообщение

поиск решения по вашим данным нашел следующие коэффициенты:
A: -2023,25099599718
B: 8,86941820361647
C: -13,6971883429513

Вот в matcad такие же коэффициенты получились (вот только matcad как оказалось не общедоступная среда, поэтому потребовали сделать в exel). Но в exele я понимаю как подобрать решение для одной ячейки, А как это сделать для всего диапазона?



0



0 / 0 / 0

Регистрация: 31.10.2017

Сообщений: 7

31.10.2017, 19:35

 [ТС]

13

Цитата
Сообщение от m-ch
Посмотреть сообщение

поиск решения по вашим данным нашел следующие коэффициенты:
A: -2023,25099599718
B: 8,86941820361647
C: -13,6971883429513

Вот в matcad такие же коэффициенты получились (вот только matcad как оказалось не общедоступная среда, поэтому потребовали сделать в exel). Но в exele я понимаю как подобрать решение для одной ячейки, А как это сделать для всего диапазона?



0



15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

31.10.2017, 20:05

14

Лучший ответ Сообщение было отмечено nik_art как решение

Решение

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



1



0 / 0 / 0

Регистрация: 31.10.2017

Сообщений: 7

31.10.2017, 20:50

 [ТС]

15

Огромное спасибо



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

31.10.2017, 20:50

Помогаю со студенческими работами здесь

Макрос делает копию листа и сохраняет в новую книгу, но макрос в новой не работает
Есть макрос в книге. Он копирует текущий лист, создает новую книгу и копирует в новую книгу лист. …

Макрос, чтобы другой макрос распихал сам по N файлам
Может эта тема уже тут звучала, да поиск не помог… Просто проблема в том, что макрос постоянно…

Макрос, запускающий макрос из другого закрытого файла
Здравствуйте.
Использую Office 2007.
Поискал на форуме, не нашел ответа.
Опишу подробно…

Сделать макрос в Word, вводишь строку и макрос произвольно меняет шрифт, цвет и размер для каждого слова из этого активного вордовского документа.
Началось VBA — лекций нет, только практика. Препод категоричеки отказывается что-нить объяснять,…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

15


Метод наименьших квадратов (МНК) основан на минимизации суммы квадратов отклонений выбранной функции от исследуемых данных. В этой статье аппроксимируем имеющиеся данные с помощью линейной функции

y

=

a

x

+

b

.


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

(англ.

Ordinary

Least

Squares

,

OLS

) является одним из базовых методов регрессионного анализа в части оценки неизвестных параметров

регрессионных моделей

по выборочным данным.

Рассмотрим приближение функциями, зависящими только от одной переменной:

  • Линейная: y=ax+b (эта статья)
  • Логарифмическая

    : y=a*Ln(x)+b

  • Степенная

    : y=a*x

    m

  • Экспоненциальная

    : y=a*EXP(b*x)+с

  • Квадратичная

    : y=ax

    2

    +bx+c


Примечание

: Случаи приближения полиномом с 3-й до 6-й степени рассмотрены в этой статье. Приближение тригонометрическим полиномом рассмотрено здесь.

Линейная зависимость

Нас интересует связь 2-х переменных

х

и

y

. Имеется предположение, что

y

зависит от

х

по линейному закону

y

=

ax

+

b

. Чтобы определить параметры этой взаимосвязи исследователь провел наблюдения: для каждого значения х

i

произведено измерение y

i

(см.

файл примера

). Соответственно, пусть имеется 20 пар значений (х

i

; y

i

).

Для наглядности рекомендуется построить диаграмму рассеяния.


Примечание:

Если шаг изменения по

х

постоянен, то для построения

диаграммы рассеяния

можно использовать

тип График

, если нет, то необходимо использовать тип диаграммы

Точечная

.

Из диаграммы очевидно, что связь между переменными близка к линейной. Чтобы понять какая из множества прямых линий наиболее «правильно» описывает зависимость между переменными, необходимо определить критерий, по которому будут сравниваться линии.

В качестве такого критерия используем выражение:

где

ŷ

i

=

a

*

x

i

+

b

;

n – число пар значений (в нашем случае n=20)

Вышеуказанное выражение представляет собой сумму квадратов расстояний между наблюденными значениями y

i

и ŷ

i

и часто обозначается как SSE (

Sum

of

Squared

Errors

(

Residuals

), сумма квадратов ошибок (остатков)

)

.


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

заключается в подборе такой линии

ŷ

=

ax

+

b

, для которой вышеуказанное выражение принимает минимальное значение.


Примечание:

Любая линия в двухмерном пространстве однозначно определяется значениями 2-х параметров:

a

(наклон) и

b

(сдвиг).

Считается, что чем меньше сумма квадратов расстояний, тем соответствующая линия лучше аппроксимирует имеющиеся данные и может быть в дальнейшем использована для прогнозирования значений y от переменной х. Понятно, что даже если в действительности никакой взаимосвязи между переменными нет или связь нелинейная, то МНК все равно подберет «наилучшую» линию. Таким образом, МНК ничего не говорит о наличии реальной взаимосвязи переменных, метод просто позволяет подобрать такие параметры функции

a

и

b

, для которых вышеуказанное выражение минимально.

Проделав не очень сложные математические операции (подробнее см.

статью про квадратичную зависимость

), можно вычислить параметры

a

и

b

:

Как видно из формулы, параметр

a

представляет собой отношение ковариации и

дисперсии

, поэтому в MS EXCEL для вычисления параметра

а

можно использовать следующие формулы (см.

файл примера лист Линейная

):

=

КОВАР(B26:B45;C26:C45)/ ДИСП.Г(B26:B45)

или

=

КОВАРИАЦИЯ.В(B26:B45;C26:C45)/ДИСП.В(B26:B45)

Также для вычисления параметра

а

можно использовать формулу =

НАКЛОН(C26:C45;B26:B45)

. Для параметра

b

используйте формулу =

ОТРЕЗОК(C26:C45;B26:B45)

.

И наконец, функция

ЛИНЕЙН()

позволяет вычислить сразу оба параметра. Для ввода формулы

ЛИНЕЙН(C26:C45;B26:B45)

необходимо выделить в строке 2 ячейки и нажать

CTRL

+

SHIFT

+

ENTER

(см. статью про

формулы массива, возвращающими несколько значений

). В левой ячейке будет возвращено значение

а

, в правой –

b

.


Примечание

: Чтобы не связываться с вводом

формул массива

потребуется дополнительно использовать функцию

ИНДЕКС()

. Формула =

ИНДЕКС(ЛИНЕЙН(C26:C45;B26:B45);1)

или просто =

ЛИНЕЙН(C26:C45;B26:B45)

вернет параметр, отвечающий за наклон линии, т.е.

а

. Формула =

ИНДЕКС(ЛИНЕЙН(C26:C45;B26:B45);2)

вернет параметр, отвечающий за пересечение линии с осью Y, т.е.

b

.

Вычислив параметры, на

диаграмме рассеяния

можно построить соответствующую линию.

Инструмент диаграммы Линия тренда

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

Линия тренда

. Для этого выделите диаграмму, в меню выберите

вкладку Макет

, в

группе Анализ

нажмите

Линия тренда

, затем

Линейное приближение

.

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


Примечание

: Для того, чтобы параметры совпадали необходимо, чтобы тип у диаграммы был

Точечная, а не График

. Дело в том, что при построении диаграммы

График

значения по оси Х не могут быть заданы пользователем (пользователь может указать только подписи, которые не влияют на расположение точек). Вместо значений Х используется последовательность 1; 2; 3; … (для нумерации категорий). Поэтому, если строить

линию тренда

на диаграмме типа

График

, то вместо фактических значений Х будут использованы значения этой последовательности, что приведет к неверному результату (если, конечно, фактические значения Х не совпадают с последовательностью 1; 2; 3; …).


СОВЕТ

: Подробнее о построении диаграмм см. статьи

Основы построения диаграмм

и

Основные типы диаграмм

.

4.1.
Использование встроенных функций

Вычисление
коэффициентов
регрессии

осуществляется с помощью функции

ЛИНЕЙН(Значения_y;
Значения_x;
Конст;
статистика),

где

Значения_y
— массив значений y,

Значения_x
необязательный массив значений x,
если массив х
опущен, то предполагается, что это массив
{1;2;3;…} такого же размера, как и Значения_y,

Конст
логическое значение, которое указывает,
требуется ли, чтобы константа b
была равна 0. Если Конст
имеет значение ИСТИНА
или опущено, то b
вычисляется обычным образом. Если
аргумент Конст
имеет значение ЛОЖЬ, то b
полагается равным 0 и значения a
подбираются так, чтобы выполнялось
соотношение y=ax.

Статистика
логическое значение, которое указывает,
требуется ли вернуть дополнительную
статистику по регрессии. Если аргумент
Статистика
имеет значение ИСТИНА,
то функция ЛИНЕЙН
возвращает дополнительную регрессионную
статистику. Если аргумент Статистика
имеет значение ЛОЖЬ
или опущен, то функция ЛИНЕЙН
возвращает только коэффициент a
и постоянную b.

Необходимо
помнить, что результатом функций ЛИНЕЙН()
является
множество значений – массив.

Для
расчета коэффициента
корреляции

используется функция

КОРРЕЛ(Массив1;Массив2),

возвращающая
значения коэффициента корреляции, где
Массив1
— массив значений y,
Массив2
— массив значений x.
Массив1
и Массив2
должны быть одной размерности.

ПРИМЕР
1
. Зависимость
y(x)
представлена в таблице. Построить линию
регрессии

и вычислить коэффициент
корреляции
.

y

0

0.5

1

1.5

2

2.5

3

3.5

4

x

1

2.39

2.81

3.25

3.75

4.11

4.45

4.85

5.25

Введем
таблицу значений в лист MS
Excel
и построим точечный график. Рабочий
лист примет вид изображенный на рис. 2.

Рис. 2

Для
того чтобы рассчитать значения
коэффициентов регрессии а
и b
выделим
ячейки A7:B7,
обратимся к мастеру функций и в категории
Статистические
выберем функцию ЛИНЕЙН.
Заполним появившееся диалоговое окно
так, как показано на рис. 3 и нажмем ОK.

Рис. 3

В
результате вычисленное значение появится
только в ячейке A6
(рис.4). Для того чтобы значение появилось
и в ячейке B6
необходимо войти в режим редактирования
(клавиша F2),
а затем нажать комбинацию клавиш
CTRL+SHIFT+ENTER.

Для
расчета значения коэффициента корреляции
в ячейку С6
была введена следующая формула:

С7=КОРРЕЛ(B3:J3;B2:J2).

Рис. 4

Зная
коэффициенты
регрессии а
и b
вычислим значения функции y=ax+b
для заданных x.
Для этого
введем формулу

B5=$A$7*B2+$B$7

и
скопируем ее в диапазон С5:J5
(рис. 5).

Рис. 5

Изобразим
линию регрессии на диаграмме. Выделим
экспериментальные точки на графике,
щелкнем правой кнопкой мыши и выберем
команду Исходные
данные
. В
появившемся диалоговом окне (рис. 5)
выберем вкладку Ряд
и щелкнем по кнопке Добавить.
Заполним поля ввода, так как показано
на рис. 6 и нажмем кнопку ОК.
К графику экспериментальных данных
будет добавлена линия регрессии. По
умолчанию ее график будет изображен в
виде точек, не соединенных сглаживающими
линиями.

Рис.
6

Чтобы
изменить вид линии регрессии, выполним
следующие действия. Щелкнем правой
кнопкой мыши по точкам, изображающим
график линии, выберем команду Тип
диаграммы
и
установим вид точечной диаграммы, так
как показано на рис. 7.

Рис.
7

Тип
линии, ее цвет и толщину можно изменить
следующим образом. Выделить линию на
диаграмме, нажать правую кнопку мыши и
в контекстном меню выбрать команду
Формат рядов
данных…

Далее сделать установки, например, так
как показано на рис. 8.

Рис. 8

В
результате всех преобразований получим
график экспериментальных данных и линию
регрессии в одной графической области
(рис. 9).

Рис. 9

4.2.
Использование линии тренда.

Построение
различных аппроксимирующих зависимостей
в MS
Excel
реализовано в виде свойства диаграммы
линия
тренда
.

ПРИМЕР
2
. В результате
эксперимента была определена некоторая
табличная зависимость.

0.15

0.16

0.17

0.18

0.19

0.20

4.4817

4.4930

5.4739

6.0496

6.6859

7.3891

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

Решение
задачи можно разбить на следующие этапы:
ввод исходных данных, построение
точечного графика и добавление к этому
графику линии тренда.

Рассмотрим
этот процесс подробно. Введем исходные
данные в рабочий лист и построим график
экспериментальных данных. Далее выделим
экспериментальные точки на графике,
щелкнем правой кнопкой мыши и воспользуемся
командой Добавить
линию
тренда
(рис.
10).

Рис. 10

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

На
первой вкладке (рис. 11) этого окна
указывается вид аппроксимирующей
зависимости.

На
второй (рис. 12) определяются параметры
построения:

  • название
    аппроксимирующей зависимости;

  • прогноз
    вперед (назад) на n
    единиц (этот параметр определяет, на
    какое количество единиц вперед (назад)
    необходимо продлить линию тренда);

  • показывать
    ли точку пересечения кривой с прямой
    y=const;

  • показывать
    аппроксимирующую функцию на диаграмме
    или нет (параметр показывать уравнение
    на диаграмме);

  • помещать
    ли на диаграмму величину среднеквадратичного
    отклонения или нет (параметр поместить
    на диаграмму величину достоверности
    аппроксимации).

Рис. 11

Рис. 12

Выберем
в качестве аппроксимирующей зависимости
полином второй степени (рис. 11) и выведем
уравнение, описывающее этот полином на
график (рис. 12). Полученная диаграмма
представлена на рис. 13.

Рис.
13

Аналогично
с помощью линии
тренда
можно
подобрать параметры таких зависимостей
как

  • линейная
    y=ax+b,

  • логарифмическая
    y=aln(x)+b,

  • экспоненциальная
    y=aeb,

  • степенная
    y=axb,

  • полиномиальная
    y=ax2+bx+c,
    y=ax3+bx2+cx+d
    и так далее, до полинома 6-й степени
    включительно,

  • линейная
    фильтрация.

4.3.
Использование решающего блока

Значительный
интерес представляет реализация в MS
Excel
подбора параметров методом наименьших
квадратов с использованием решающего
блока. Эта методика позволяет подобрать
параметры функции любого вида. Рассмотрим
эту возможность на примере следующей
задачи.

ПРИМЕР
3
. В результате
эксперимента получена зависимость z(t)
представленная в таблице

0,66

0,9

1,17

1,47

1,7

1,74

2,08

2,63

3,12

38,9

68,8

64,4

66,5

64,95

59,36

82,6

90,63

113,5

Подобрать
коэффициенты зависимости Z(t)=At4+Bt3+Ct2+Dt+K
методом наименьших квадратов.

Эта
задача эквивалентна задаче нахождения
минимума функции пяти переменных

(10).

Рассмотрим
процесс решения задачи оптимизации
(рис. 14).

Рис. 14

Пусть
значения А,
В,
С,
D
и К
хранятся в ячейках A7:E7.
Рассчитаем теоретические значения
функции Z(t)=At4+Bt3+Ct2+Dt+K
для заданных t
(B2:J2).
Для этого в ячейку B4
введем значение функции в первой точке
(ячейка B2):

B4=$A$7*B2^4+$B$7*B2^3+$C$7*B2^2+$D$7*B2+$E$7.

Скопируем
эту формулу в диапазон С4:J4
и получим ожидаемое значение функции
в точках, абсциссы которых хранится в
ячейках B2:J2.

В
ячейку B5
введем формулу, вычисляющую квадрат
разности между экспериментальными и
расчетными точками:

B5=(B4-B3)^2,

и
скопируем ее в диапазон С5:J5.
В ячейке F7
будем хранить суммарную квадратичную
ошибку (10). Для этого введем формулу:

F7
=
СУММ(B5:J5).

Воспользуемся
командой СервисПоиск
решения

и решим задачу оптимизации без ограничений.
Заполним соответствующим образом поля
ввода в диалоговом окне, показанном на
рис. 14 и нажмем кнопку Выполнить.
Если решение будет найдено, то появится
окно, изображенное на рис. 15.

Результатом
работы решающего блока будет вывод в
ячейки A7:E7
значений
параметров

функции Z(t)=At4+Bt3+Ct2+Dt+K.
В ячейках B4:J4
получим ожидаемые
значение функции

в исходных точках. В ячейке F7
будет храниться суммарная
квадратичная ошибка
.

Изобразить
экспериментальные точки и подобранную
линию в одной графической области можно,
если выделить диапазон B2:J4,
вызвать
Мастер
диаграмм
,
а затем отформатировать внешний вид
полученных графиков.

Рис.
17 отображает рабочий лист MS
Excel
после проведенных вычислений.

Рис.
15

Рис. 16

Рис. 17

5.
СПИСОК ЛИТЕРАТУРЫ

1.
Алексеев Е.Р., Чеснокова О.В., Решение
задач вычислительной математики в
пакетах Mathcad12,
MATLAB7,
Maple9.
– НТ Пресс, 2006.–596с. :ил. –(Самоучитель)

2.
Алексеев Е.Р., Чеснокова О.В., Е.А. Рудченко,

Scilab,
решение инженерных и математических
задач. –М., БИНОМ, 2008.–260с.

3.
Березин И.С., Жидков Н.П., Методы
вычислений.–М.:Наука, 1966.–632с.

4.
Гарнаев А.Ю., Использование MS
EXCEL
и VBA
в экономике и финансах. – СПб.: БХВ —
Петербург, 1999.–332с.

5.
Демидович Б.П., Марон И А., Шувалова В.З.,
Численные методы анализа.–М.:Наука,
1967.–368с.

6.
Корн Г., Корн Т., Справочник по математике
для научных работников и инженеров.–М.,
1970, 720с.

7.
Алексеев
Е.Р., Чеснокова О.В. Методические указания
к выполнению лабораторных работ в MS
EXCEL.
Для студентов всех специальностей.
Донецк,
ДонНТУ, 2004. 112 с.

25

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Понравилась статья? Поделить с друзьями:
  • Метки на странице word
  • Метод наивного прогноза в excel
  • Метки на линейке word
  • Метод монте карло расчет в excel
  • Метки на карте excel