Разработка программного обеспечения для построения статистической модели методом наименьших квадратов

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,33 Мб
  • Опубликовано:
    2014-12-31
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программного обеспечения для построения статистической модели методом наименьших квадратов

ВВЕДЕНИЕ

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

Обработка экспериментально полученной зависимости состоит в проведении по зарегистрированным точкам теоретической кривой, рассчитанной для заданного набора численных значений параметров. Варьируя параметры, добиваются наилучшего совпадения теоретической кривой с экспериментальными данными. Достижению такого совпадения помогает обязательное требование: теоретическая кривая должна отражать все особенности поведения экспериментальной зависимости, а, тем более, не давать повода для сомнений в совпадении с ней. Полученный набор параметров расценивается как результат их одновременного измерения, выполненного на основе используемой модели.

В эксперименте часто проверяют линейную зависимость двух величин вида:

=а·x+b, (1)

где х, у - измеряемые величины, а, Ь - параметры зависимости. Даже если из модельного описания непосредственно не получается линейная зависимость величин, теоретическую зависимость стремятся преобразовать к линейной. Объясняется это тем, что линейная зависимость выделяется из других форм функциональной связи двух величин. Во-первых, в силу психологических причин восприятие человека обладает свойством выделять прямые линии, как встречающиеся в повседневной жизни, так и построенные в виде графиков. Визуально удается достаточно точно восстановить из графика всю прямую, даже в той области, где информация о ней частично отсутствует. Это означает, что проводимая «на глаз» прямая, которая проходит по точкам, содержащим экспериментальный разброс, оказывается удивительно близкой к оптимальной, построенной с помощью методов математической статистики. Собственно, возможности статистики применительно к линейной зависимости определяют второе обстоятельство ее частого использования. Дело в том, что параметры линейной зависимости и их погрешности могут быть надежно оценены на основе метода, называемого методом наименьших квадратов.

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

ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ

УГС 22000 - Автоматика и управление

Направление подготовки 220700 - Автоматизация технологических процессов и производств

Профиль подготовки Автоматизация технологических процессов и производств

Факультет Информационных технологий и управления

Кафедра Системного анализа

Учебная дисциплина ИНФОРМАТИКА

Тема: Разработка программного обеспечения для построения статистической модели методом наименьших квадратов.

Вариант № 10.

Исходные данные к работе (источники)

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

Влияющие факторы:

Скорость счета I радиоактивного элемента 64Cu.

Выходные параметры:

Время счета τ.

Уравнение зависимости скорости счета от времени.


Экспериментальные данные приведены в таблице:

, чимп./мин


1

5

2370

2

10

1810

3

15

1390

4

20

1060

5

25

809

6

35

475

7

45

276


По заданной экспериментальной выборке:

- найти значение коэффициентов регрессии и , используя метод наименьших квадратов;

найти расчетные значения функции ;

построить таблицу экспериментальных и расчетных значений;

построить графики функций и .

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

.

1. АНАЛИЗ МЕТОДОВ СТАТИСТИЧЕСКОЙ ОБРАБОТКИ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ

.1 Определение параметров линейной зависимости из графика

После нанесения на график экспериментальных точек по ним «на глаз» проводят прямую. Строят ее таким образом, чтобы точки в среднем одинаково располагались по обе стороны от прямой. На рис.1 это прямая 1-2. На ней выбирают две точки (1 и 2) максимально удаленные друг от друга.

Рис. 1.1 - Графическая обработка линейной зависимости

Их координаты х1, y1 и х2, y2 подставляют в (1) для получения двух уравнений с неизвестными а и b:

=ax1+b;=ax2+b,

из которых находят:

,  (2)

Для оценивания ∆а и ∆b строят две дополнительные прямые симметричные относительно прямой 1-2, чтобы экспериментальные точки, в основном, располагались между ними.

Если на графике имеются точки, которые отстоят от основной прямой 1-2 более, чем на утроенное среднее расстояние точек до прямой (это хорошо заметно уже при рассматривании графика - на рис.1 такой точкой является точка А), то их отбрасывают и не используют при построении дополнительных прямых. Соответствующие измерения, скорее всего, содержат промахи.

Дополнительные прямые определяют «коридор погрешностей» эксперимента, внутри которого находится исследуемая линейная зависимость. Предельные случаи хода этой зависимости получатся, если провести прямые через противоположные углы «коридора» (прямые 4-5 и 6-7). Тем же способом, что и для основной прямой 1-2, находят параметры предельных прямых ai, bi и а2, b2. Оценки погрешностей:

,

Может оказаться, что теоретическую зависимость между измеряемыми величинами предполагают линейной, а экспериментальные точки явно не ложатся на прямую. Проведение по ним прямой, как это сделано на рис 2, неправомерно. Расхождение между теоретической н экспериментальной зависимостями свидетельствует о наличии систематических погрешностей, которые должны быть выявлены и учтены при обработке результатов. Иначе экспериментатору остается только констатировать расхождение модели с экспериментом.

Рнс. 1.2 - Пример необоснованной интерпретации экспериментальной зависимости как линейной

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

1.2 Метод парных точек

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

После нанесения на график экспериментальных точек из них выбирают пары, в которых точки отстоят друг от друга примерно на одинаковое расстояние. Желательно, чтобы это расстояние было максимально возможным. Через каждую пару проводят прямую, а затем согласно (2) вычисляют угловые коэффициенты всех прямых. Из получившегося набора коэффициентов по правилам обработки данных прямых измерении определяют среднее значение коэффициента и его погрешность. Их принимают за результат измерения искомого параметра зависимости (1).

Например, конкретной обработка данных эксперимента по измерению сопротивления R участка электрической цепи. Даны измеренные значения тока I и соответствующие им значения падения напряжения U.

Теоретическое описание исследуемой зависимости дает закон Ома:

= R·I,

где сопротивление R является угловым коэффициентом линейной зависимости, проходящей через начало координат. Значит, для его определения можно воспользоваться методом парных точек. Проставляют экспериментальные точки на график (рис 3) и нумеруют их по порядку от 1 до 8. Выбирают пары точек 1-5, 2-6, 3-7, 4-8 и заносят их координаты в табл. 1, которую используют для проведения необходимых вычислений.

Рис. 1.3 - Зависимость падения напряжения от тока в цепи

Таблица 1.1 - Обработка данных методом парных точек


Вычисляют среднее значение сопротивления:

.

Далее переходят к вычислению дисперсии:

.

Для n и доверительной вероятности α находят табличный коэффициент Стьюдента, и домножением на него дисперсии получают . Окончательный результат:

.

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

1.3 Описание метода наименьших квадратов

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

Пусть имеется установка, работающая по принципу «черного ящика». На входе в данную установку мы можем установить вектор входных параметров xi, а на выходе из установки измерить вектор выходных параметров yi, где i=1..n. Число n представляет собой число опытов (рис. 4).

Рис. 1.4 - Изображение исследуемого объекта.

Существование зависимости между двумя наборами величин xi, и yi, где i=1..n можно определить с помощью коэффициента парной корреляции rxy, численная величина которого вычисляется по формуле:

 (3)

Коэффициент парной корреляции находится в пределах -1≤ rxy ≤+1, то есть  или . Чем ближе коэффициент парной корреляции находится к единице, тем сильнее зависимость yi=f(xi). При равенстве коэффициента парной корреляции нулю зависимость отсутствует. По числовому значению коэффициента парной корреляции можно сделать предположение о виде зависимости.

Если коэффициент парной корреляции по абсолютной величине равен единице, то существует линейная зависимость yi=a·xi+b (рис. 5).

Рис. 1.5 - Вид линейной зависимости

Если коэффициент парной корреляции положительный, то с увеличением аргумента, увеличивается значение функции (рис. 6).

Рис. 1.6 - С увеличением аргумента увеличивается значение функции

При отрицательном коэффициенте парной корреляции с увеличением аргумента, уменьшается значение функции (рис. 7).

программный комплекс скриншот еxcel

Рис. 1.7 - С увеличением аргумента уменьшается значение функции

В случае существования зависимости между входными и выходными параметрами объекта исследования ищется уравнение регрессии. Для поиска уравнения регрессии используется метод наименьших квадратов.

Суть метода наименьших квадратов заключается в следующем. Предполагается, что зависимость между величинами является линейной: yi=a·xi+b и сумма квадратов отклонений расчетных значений от экспериментальных - должна быть минимальной.

Расчетное значение запишем в следующем виде:

 (4)

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

 (5)

В выражение (5) подставим уравнение регрессии (4) и получим:

 (6)

Известно, что экстремум функции достигается тогда, когда первая производная равна нулю. В нашем случае имеются два неизвестных: a и b. По данным коэффициентам возьмем две частные производные:

 (7)

Разделим оба уравнение системы (5) на -2. В результате, раскрыв скобки, получим систему из двух линейных уравнений с двумя неизвестными a и b:

;

 (8)

Данная система может быть решена с помощью метода Крамера. Главный определитель системы ∆ равен:


Коэффициенты при неизвестном a и b заменяем столбцом свободных членов, получаем определители:

и


Вычисляем коэффициенты по правилу Крамера:

 (9)

Таким образом, получены коэффициенты уравнения регрессии ypi=a·xi+b.

Уравнение регрессии (4) может адекватно описывать процесс только в интервале экспериментальных значений, с помощью которых вычислялись коэффициенты уравнения регрессии:

.

Для оценки адекватности модели, на практике могут быть использованы следующие оценки: корреляционное отношение η и средняя относительная ошибка ε:

, (10)

где  - среднее значение выходного параметра.

 (11)

В настоящее время существует ряд нелинейных зависимостей, которые могут быть приведены к линейному виду yi=a·xi+b. Операция приведения нелинейной зависимости к линейному виду называется линеаризацией.

Вариант 10. Определить начальную скорость счета I0 и период полураспада T1/2 радиоактивного элемента по зависимости скорости счета от времени:

,  (12)

Приведем нелинейное уравнение (12) к линейному виду. Прологарифмируем обе части уравнения:


,

в результате получим уравнение yi=b+a·xi или yi=a·xi+b.

Таким образом, для того, чтобы найти предэкспоненциальный множитель - начальную скорость счета I0 и период полураспада T1/2 радиоактивного элемента, необходимо проделать следующие действия:

1. yi=ln(Ii), xi=τi;

. ,  (13)

Кроме этого, следует вычислить среднеквадратические ошибки a и b.

Находим дисперсию:

 (14)

Далее находим дисперсию параметра a:

 (15)

После этого находим дисперсию параметра b:

 (16)

Согласно ГОСТ Р 8.736 доверительная вероятность P=0,95. При такой вероятности P и количестве измерений n=7 количество степеней свободы f=6, значит коэффициент Стьюдента (таблица) равен t=2,44691184879, тогда домножив дисперсии параметров a и b на коэффициент Стьюдента найдем абсолютные ошибки для a и b.

a=a±σa·t=b±σb·t

. I0=eb, T1/2=0,693/а (17)

4. .

Следует отметить, что погрешность метода наименьших квадратов в полтора раза меньше, чем у метода парных точек.

2. ПРАКТИЧЕСКАЯ ЧАСТЬ

.1 Блок-схема программного комплекса

Для программы Microsoft Visual Studio:


Рис. 2.1

Для программы Microsoft Excel:

Рис. 2.2

2.2 Инструкция пользователя программного комплекса

Для программы Microsoft Visual Studio:

Вводим количество экспериментальных данных n.

Вводим экспериментальные данные τ и I.

Нажимаем кнопку построить график.

Получаем таблицу расчетных данных, искомые a, b, и , а также построенные графики функций I(τ) и Iрi(τ).

Для программы Microsoft Excel:

Записываем экспериментальные τ и I данные в таблицу

Строим график функции I(τ) и линию тренда

Рис. 2.3

Создаем расчетные ячейки относительно экспериментальных данных, а именно, присваиваем xi=τi, yi=Ln(Ii)

Делаем вспомогательные расчеты: xi· xi; xi·yi и yi· yi

Вычисляем суммы всех расчетных данных:

, , , ,

Получаем следующую таблицу:

τ, ч

I, имп./мин.

х, ч

y

х*х

х*y

y*y

1

5

2370

5

7,77

25

38,85

60,38

2

10

1810

10

7,50

100

75,01

56,27

3

15

1390

7,24

225

108,56

52,38

4

20

1060

20

6,97

400

139,32

48,53

5

25

809

25

6,70

625

167,39

44,83

6

35

475

35

6,16

1225

215,72

37,99

7

45

276

45

5,62

2025

252,92

31,59

сумма



155

47,95

4625

997,77

331,96


Находим по формулам (13) a и b

Находим дисперсии σ2, ,  по формулам (14), (15),(16)

Находим абсолютные ошибки для a и b

Находим значение коэффициентов регрессии и  по формулам (17)

Строим график функции Iрi(τ)

Рис. 2.4

2.3 Скриншоты рабочей программы

Скриншоты из программы Microsoft Visual Studio

Рис. 2.5

Рис. 2.6

Рис. 2.7

Рис. 2.8

Скриншоты из программы Microsoft Excel

Рис. 2.9

Рис. 2.10

Рис. 2.11

Рис. 2.12

2.4 Программный код

Class Form1

'n = CSng(InputBox("Введите число n = "))= CSng(TextBox6.Text)x(n)I(n)Y(n).Col = 1 'первый столбец.Row = 0 'шапка

AxMSFlexGrid1.Text = "час" 'заголовок в табл

'ввод τj As Integer = 1 To n(j) = CSng(InputBox("Введите число t(" & j & ")"))

''''''''''''''''' TextBox1.Text = TextBox1.Text + CStr(x(j)) + vbCrLf.Col = 1.Row = j ' - 1.Text = CStr(x(j))

'номера строк-----------------------.Row = j.Col = 0.Text = CStr(j).Col = 2 '2й столбец.Row = 0 ' шапка.Text = "имп./мин" 'заголовок табл

'ввод Ij As Integer = 1 To n(j) = CSng(InputBox("Введите число I(" & j & ")"))

'''''''''''''''''''''''''' TextBox2.Text = TextBox2.Text + CStr(I(j)) + vbCrLf

'AxMSFlexGrid1.Col = 2.Row = j ' - 1.Text = CStr(I(j))(j) = Math.Log(I(j))()SubSub myFunction()= 0= 0= 0= 0= 0.Row = 0.Col = 3.Text = "x" 'S1.Col = 4.Text = "y" 'S2.Col = 5.Text = "x*y" 'S3.Col = 6.Text = "x^2" 'S4.Col = 7.Text = "y^2" 'S5j As Integer = 1 To n.Row = j.Col = 3= x(j) + S1.Text = CStr(Math.Round(x(j), 2)).Col = 4= S2 + Y(j).Text = CStr(Math.Round(Y(j), 2)).Col = 5= S3 + x(j) * Y(j).Text = CStr(Math.Round(x(j) * Y(j), 2)).Col = 6= S4 + x(j) ^ 2.Text = CStr(Math.Round(x(j) ^ 2, 2)).Col = 7= S5 + Y(j) ^ 2.Text = CStr(Math.Round(Y(j) ^ 2, 2)).Row = n + 1.Col = 0.Text = "сумма".Col = 3.Text = CStr(Math.Round((S1), 2)) 'округляем до второго числа.Col = 4.Text = CStr(Math.Round((S2), 2)).Col = 5.Text = CStr(Math.Round((S3), 2)).Col = 6.Text = CStr(Math.Round((S4), 2)).Col = 7.Text = CStr(Math.Round((S5), 2))

'-----------------------формулы----------------------= 0= 0= (n * S3 - S1 * S2) / (n * S4 - S1 ^ 2)= (S4 * S2 - S1 * S3) / (n * S4 - S1 ^ 2)

' --------------------------------------------------.Text = CStr(a) ' вывод a.Text = CStr(b) 'вывод bf(n).Text = "" 'ОЧИСТИТЬj As Integer = 1 To n(j) = a * x(j) + b.Text = TextBox3.Text + CStr(f(j)) + vbCrLf

'расчет дисперсии= (1 / (n * (n - 2))) * (n * S5 - S2 ^ 2 - ((n * S3 - S1 * S2) ^ 2) / (n * S4 - S1 ^ 2)) ' Math.Sqrt корень

'вывод сигма ^2.Text = CStr(sigma)

'---------------------------дисперсия параметра a и b-----------------

sigmaA = (n * sigma) / (n * S4 - S1 ^ 2)= ((1 / n) * S4 * sigmaA).Text = CStr(sigmaA).Text = CStr(sigmaB)

'---------------------------------------------------------= Math.Sqrt(sigmaA) * CSng(TextBox11.Text)= Math.Sqrt(sigmaB) * CSng(TextBox11.Text).Text = CStr(a) + " +/- " + CStr(absalutA).Text = CStr(b) + " +/- " + CStr(absalutB)= Math.Exp(b)_2 = 0.693 / a.Text = CStr(I0).Text = CStr(T1_2)SubSub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox6.TextChangedTextBox6.Text <> "" Then.Rows = CInt(TextBox6.Text) + 2 '+1тк верхняя строка серая +1 для суммIfSubSub AxMSFlexGrid1_DblClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AxMSFlexGrid1.DblClickSubSub TextBox7_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox7.TextChangedSubSub AxMSFlexGrid1_ClickEvent(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AxMSFlexGrid1.ClickEvent

TextBox7.Text = AxMSFlexGrid1.Text 'окно для редактирования данных табл= AxMSFlexGrid1.Row 'номер строки= AxMSFlexGrid1.Col ' номер столбцаTextBox7.Text <> "" And (ColI = 1 Or ColI = 2) Then 'если первый или 2й столбец то окошко редактирования и кнопка активны

TextBox7.Enabled = True.Enabled = True: TextBox7.Enabled = False.Enabled = FalseIf

' строка состояния.Text = "строка=" + CStr(RowI) + " " + "столбец=" + CStr(ColI)SubSub Button4_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

'редактирование таблицыTextBox7.Text <> "" And (ColI = 1 Or ColI = 2) Then.Row = RowI.Col = ColIColI = 1 Then '1й столбец x(RowI) = CSng(TextBox7.Text).Text = TextBox7.TextIfColI = 2 Then ' второй столбец I(RowI) = CSng(TextBox7.Text).Text = TextBox7.TextIf() 'процедура расчета: TextBox7.Text = ""IfSubSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

'--------------------------------------------------------.Series.Clear().Series.Add("(Ipi;τ)").Series.Add("Ipi(τ)").ChartAreas("ChartArea1").AxisX.Title = "τ, ч.".ChartAreas("ChartArea1").AxisY.Title = "Ipi, имп./мин.".Series("Ipi(τ)").ChartType = DataVisualization.Charting.SeriesChartType.Spline.Series("(Ipi;τ)").ChartType = DataVisualization.Charting.SeriesChartType.FastPoint.Series("(Ipi;τ)").Color = Color.Red.Series("Ipi(τ)").Color = Color.Blue.Series("(Ipi;τ)").BorderWidth = 3.Series("Ipi(τ)").BorderWidth = 2j As Integer = 1 To n.Series("(Ipi;τ)").Points.AddXY(x(j), Y(j)).Series("Ipi(τ)").Points.AddXY(x(j), f(j))

Next

'----------------------------------------------------------------

'---------------------ЭКСПЕРЕМЕНТАЛЬНЫЕ ДАННЫЕ.Series.Clear()

Chart2.Series.Add("(I;τ)")

'Chart2.Series.Add("f(x)").ChartAreas("ChartArea1").AxisX.Title = "τ, ч.".ChartAreas("ChartArea1").AxisY.Title = "I, имп./мин." ', f(x)"

'Chart2.Series("f(x)").ChartType = DataVisualization.Charting.SeriesChartType.Spline.Series("(I;τ)").ChartType = DataVisualization.Charting.SeriesChartType.FastPoint.Series("(I;τ)").Color = Color.Red

'Chart2.Series("f(x)").Color = Color.Blue.Series("(I;τ)").BorderWidth = 3

' Chart2.Series("f(x)").BorderWidth = 2j As Integer = 1 To n.Series("(I;τ)").Points.AddXY(x(j), I(j))

' Chart2.Series("f(x)").Points.AddXY(x(j), f(j))SubClass

ВЫВОДЫ

В процессе работы над курсовой работой проведен анализ методов статистической обработки экспериментальных данных. Разработано программное обеспечение для построения статистической модели методом наименьших квадратов в программах Microsoft Visual Studio и Microsoft Excel. Совпадение результатов двух программ доказывает правильность написания программного обеспечения.

ЛИТЕРАТУРА

1. ГОСТ Р 8.736-2011 «Государственная система обеспечения единства измерений. Измерения прямые многократные. Методы обработки результатов измерений. Основные положения».

. Агапьев Б.Д., Белов В.Н., Кесаманлы Ф.П., Козловский В.В., Марков С.И. Обработка экспериментальных данных. Учеб. пособие. - СПб.: АОЗТ «Констрой». - 84 с.

3. Симонович, С.В. Информатика. Базовый курс: Учебник для вузов / С.В. Симонович.- СПб.: Питер, 2011. - 640 с. <http://ibooks.ru/reading.php?productid=23132>

. Информатика: учебник под редакцией В.В. Трофимова. Электронные текстовые данные. - М: Юрайт, 2012. - 911 с. (ЭБ)

. Шапорев, С.Д. Информатика. Теоретический курс и практические занятия / С.Д. Шапорев. - СПб.: БХВ, 2008. - 469 с. <http://ibooks.ru/reading.php?productid=18483>

Похожие работы на - Разработка программного обеспечения для построения статистической модели методом наименьших квадратов

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!