Файл: Информационные процессы в переработке нефти и газа.doc

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 03.12.2023

Просмотров: 105

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Представление результатов в виде графиков


Построение линии тренда

Методика проведения данных работ подробно изложена в работе [2]. Результаты представлены на рис. 7-9.



Рисунок 7 - Исходные точки и линия тренда для линейной аппроксимации.



Рисунок 8 -. Исходные точки и линия тренда для квадратичной аппроксимации.



Рисунок 9 - Исходные точки и линия тренда для экспоненциальной аппроксимации.

Сравнивая данные результаты с результатами, полученными вручную ранее с использованием основных расчётных формул, видим, что они полностью совпадают. Это указывает на то, что вычисления верны.
    1. Получения числовых характеристик с использованием функции ЛИНЕЙН И ЛГРФПРИБЛ


Методика этих функции подробно изложена в работе [2]. Результаты расчётов представлены на рис. 10-12.

ЛИНЕЙН

 

27,2338

-27387,1153

0,4853

538,1744

0,9927

111,2072

3149,1371

23

38945535,6098

284442,1500

Рисунок 10 - Фрагмент рабочего листа MS Excel использования функции ЛИНЕЙН

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

ЛИНЕЙН

 

 

0,0021

22,672

-24885,789

0,0117

25,815

14163,910

0,9928

113,626

#Н/Д

1508,263

22

#Н/Д

38945938,869

284038,890

#Н/Д


Рисунок 11 - Фрагмент рабочего листа MS Excel использования функции ЛИНЕЙН

Для квадратичной аппроксимации


ЛГРФПРИБЛ




1,01332

0,00102

0,00077

0,85066

0,9283

0,175778164

297,72435

23

9,19908

0,71065

Рисунок 12 -. Фрагмент рабочего стола MS Excel использование функции ЛГРФПРИБЛ

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

Сравнивая результаты, полученные с помощью функции ЛИНЕЙН и ЛГРФПРИБЛ, с результатами полученными вручную с использованием основных расчётов формул, можно видеть , что они полностью совпадают. Это указывает на то, что вычисления верны.

Лучше всего результаты испытаний, аппроксимирует квадратичная функция (24): y = 0,0021x2 + 22,672x - 24886 т.к коэффициент детерминировнности квадратичной аппроксимации выше и равен R2 = 0,993. Значения числовых характеристик вычислялись разными способами и все результаты совпали, что свидетельствует об их правильности.
    1. 1   2   3   4   5   6   7   8   9   10

Аппроксимация с помощью MathCAD


Вводим исходные данные(рис.13)



Рисунок 13 - Фрагмент листа MathCAD с исходными данными

Линейная регрессия

Линейная регрессия в системе MathCAD выполняется по векторам аргумента Х и отсчетов Y функциями: intercept(X,Y) – вычисляет параметр a1 , смещение линии регрессии по вертикали; slope(X,Y) – вычисляет параметр a2 , угловой коэффициент линии регрессии. Полученные значения коэффициентов используем в уравнении регрессии

Функция corr(Y,y(x)) - вычисляет коэффициент корреляции Пирсона. Чем он ближе к 1, тем точнее обрабатываемые данные соответствуют линейной зависимости.

Вычислив параметры линейной регрессии, строим графики исходной функции y и функции линейной регрессии f(x)



Рисунок 14 - Фрагмент листа MathCAD с найденными коэффициентами для системы уравнений и графиком зависимости линии тренда для линейной аппроксимации

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

Одномерная полиномиальная регрессия с произвольной степенью n полинома и с произвольными координатами отсчетов в MathCAD выполняется функцией regress(X,Y,n), которая вычисляет вектор S, в составе которого находятся коэффициенты ai полинома n-й степени. Значения коэффициентов ai могут быть извлечены из вектора S функцией submatrix(S, 3, length(S)-1, 0, 0). Полученные значения коэффициентов используем в уравнении регрессии/ Вычислив параметры квадратичной регрессии, строим графики исходной функции y и функции квадратичной регрессии f(x)



Рисунок 15 - Фрагмент листа MathCAD с найденными коэффициентами для системы уравнений и графиком зависимости линии тренда для квадратичной аппроксимации



Рисунок 16 - Фрагмент листа MathCAD с найденными коэффициентами для системы уравнений и графиком зависимости линии тренда для экспоненциальной аппроксимации


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

    1. Аппроксимация с помощью VBA


Код программы:

Public Sub MHK()

Dim x(1 To 25) As Single, y(1 To 25) As Single, yt(1 To 25), yt1(1 To 25), yt2(1 To 25) As Single

Dim Sx1, Sx2, Sx3, Sx4 As Single

Dim Sy, Sxy, Sx2y As Single

Dim x1, x2, x3, x4 As Single

Dim y1, y2, sxr, yxr, lny1, slny, sxlny, sxsrysr As Single

Dim n As Integer

Dim i As Integer

Dim a1 As Single, a2 As Single

Dim coef_cor As Single

Dim coef_det As Single

Dim coef_det2 As Single

Dim coef_det3 As Single

n = 25

' вводим исходные данные в вектора x и y

For i = 1 To n

x(i) = Range("B" & 2 + i)

y(i) = Range("a" & 2 + i)

xsr = xsr + x(i)

ysr = xsr + y(i)

Next i

xsr = xsr / 25

ysr = ysr / 25
' определяем коэф СЛАУ

Sx1 = 0

Sx2 = 0

Sx3 = 0

Sx4 = 0

Sy1 = 0

Sxy = 0

Sx2y = 0

For i = 1 To n

x1 = x(i)

y1 = y(i)

lny1 = Log(y1)

x2 = x1 * x1

x3 = x2 * x1

x4 = x3 * x1

Sx1 = Sx1 + x1

Sx2 = Sx2 + x2

Sx3 = Sx3 + x3

Sx4 = Sx4 + x4

Sy1 = Sy1 + y1

Sxy = Sxy + x1 * y1

Sx2y = Sx2y + x2 * y1

slny = slny + lny1

sxlny = sxlny + x1 * lny1

sxsrysr = sxsrysr + ((x1 - xsr) * (y1 - ysr))

Nexti

'решаем СЛАУ методом Крамера

Call kram2(25, Sx1, Sx1, Sx2, Sy1, Sxy, a1, a2)

MsgBox "Линейная аппроксимация:" & "a1= " & a1 & "a2= " & a2

'вычисляем среднее значение для x и y

xsr = Sx1 / n

ysr = Sy1 / n

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

Sxy_mean = 0

Sx2_mean = 0

Sy2_mean = 0

For i = 1 To n

Sxy_mean = Sxy_mean + (x(i) - xsr) * (y(i) - ysr)

Sx2_mean = Sx2_mean + (x(i) - xsr) ^ 2

Sy2_mean = Sy2_mean + (y(i) - ysr) ^ 2

Next i

coef_cor = Sxy_mean / Sqr(Sx2_mean) / Sqr(Sy2_mean)

MsgBox "коэффициент корреляции =" & coef_cor

'вычисляем вектор теоретических значений yt

For i = 1 To n

yt(i) = line(x(i), a1, a2)

Next i

coef_det = r2(n, ysr, y, yt)

MsgBox "коэффициент детерминированности линейный=" & coef_det

Call kram3(25, Sx1, Sx2, Sx1, Sx2, Sx3, Sx2, Sx3, Sx4, Sy1, Sxy, Sx2y, a1, a2, a3)

MsgBox "Квадратичная аппроксимация:" & "a1= " & a1 & "a2= " & a2 & "a3= " & a3

For i = 1 To n

yt1(i) = kvad(x(i), a1, a2, a3)

Next i

coef_det2 = r2(n, ysr, y, yt1)

MsgBox "коэффициент детерминированности кавдратичный=" & coef_det2

Call kram4(25, Sx1, Sx1, Sx2, slny, sxlny, a1, a2)

MsgBox "Экспоненциальная аппроксимация:" & "a1= " & a1 & "a2= " & a2

For i = 1 To n

yt2(i) = expon(x(i), a1, a2)

Next i

coef_det3 = r2(n, ysr, y, yt2)


MsgBox "коэффициент детерминированности экспоненциальный=" & coef_det3
End Sub

Public Sub kram2(a11, a12, a21, a22, b1, b2, x1, x2)

Dim d, d1, d2 As Single

d = a11 * a22 - a21 * a12

d1 = b1 * a22 - b2 * a12

d2 = a11 * b2 - a21 * b1

x1 = d1 / d

x2 = d2 / d
End Sub

Public Sub kram3(a11, a12, a13, a21, a22, a23, a31, a32, a33, b1, b2, b3, x1, x2, x3)

Dim d, d1, d2, d3 As Single

d = a11 * a22 * a33 + a12 * a23 * a31 + a13 * a21 * a32 - a13 * a22 * a31 - a12 * a21 * a33 - a11 * a23 * a32

d1 = b1 * a22 * a33 + b2 * a23 * a31 + b3 * a21 * a32 - b3 * a22 * a31 - b2 * a21 * a33 - b1 * a23 * a32

d2 = a11 * b2 * a33 + a12 * b3 * a31 + a13 * b1 * a32 - a13 * b2 * a31 - a12 * b1 * a33 - a11 * b3 * a32

d3 = a11 * a22 * b3 + a12 * a23 * b1 + a13 * a21 * b2 - a13 * a22 * b1 - a12 * a21 * b3 - a11 * a23 * b2

x1 = d1 / d

x2 = d2 / d

x3 = d3 / d

End Sub

Public Sub kram4(a11, a12, a21, a22, b1, b2, x1, x2)

Dim d, d1, d2 As Single

d = a11 * a22 - a21 * a12

d1 = b1 * a22 - b2 * a12

d2 = a11 * b2 - a21 * b1

x1 = exp(d1 / d)

x2 = d2 / d
End Sub

Public Function line(x, b, a) As Single

line = a * x + b

End Function

Public Function kvad(x, b, a1, a2) As Single

kvad = a2 * x * x + a1 * x + b

End Function

Public Function expon(x, a1, a2) As Single

expon = a1 * e ^ (a2 * x)

End Function

Public Function r2(n, ysr, y, yt) As Single

sost = 0

sfact = 0

For i = 1 To n

sost = sost + (y(i) - yt(i)) ^ 2

sfact = sfact + (yt(i) - ysr) ^ 2

Next i

r2 = 1 - sost / (sost + sfact)

EndFunction

Результат работы программы представлен на рисунках 17-19



Рисунок 17 – Результат работы программы (Линейная аппроксимация)



Рисунок 18 – Результат работы программы (Квадратичная аппроксимация)



Рисунок 19 – Результат работы программы (Экспоненциальная аппроксимация)
  1. 1   2   3   4   5   6   7   8   9   10