Визуализация результатов статистической обработки экспериментальных данных
Разработка программы для визуализации результатов статистической обработки экспериментальных данных. График, визуализирующей зависимость температуры физического объекта от времени, регистрируемой датчиками на протяжении фиксированного промежутка времени.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 18.09.2014 |
Размер файла | 1,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
ГОУВПО
Уфимский государственный авиационный технический университет
Кафедра Информатики
Тема курсовой работы:
«Визуализация результатов статистической обработки экспериментальных данных»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по «Информатика»
Уфа 2012 г
Размещено на http://www.allbest.ru
Оглавление
Введение
Теоретическая часть
Создание формы приложения
Пример работы с программой
Визуализация и аппроксимация данных в электронной таблице
Вывод
Код программы
Введение
Целью настоящей работы является разработка программы для визуализации результатов статистической обработки экспериментальных данных.В ходе работы должен быть построен график визуализирующей зависимость температуры физического объекта от времени, регистрируемой тремя датчика на протяжении фиксированного промежутка времени. Исходные данные передаются на обработку из одного файла. Результаты исследования должны сохраняться в текстовом файле. Так же была создана электронная таблица, которая визуализирует данные и аппроксимирует их полиномиальной функцией 3-го порядка.
программа визуализация статистическая данный
Теоретическая часть
Аппроксимация - научный метод, состоящий в замене одних объектов другими. В том или ином смысле близкимик исходным. Но более простыми. Под аппроксимацией в математике обычно подразумевают описание некоторой, чаще не явно заданной, зависимости или совокупности представяющих ее данных с помощью другой, более простой или более единообразной зависимости. Часто данные представляются в виде отдельных точек, координаты которых задаются таблицей данных. Эти точки называются узловыми. В этом случае аппроксимацие является процесс подбора эмпе\ирической формулы. Значение которой возможно мало отличались бы от опытных дынных. Построенная функция может не проходить через заданные точки.
Полиномиальная функция испльзуется для описания экспериментальных данных, попеременно возрастающих и убывающих. Степень полинома определяется количеством экстремумов кривой. При этом высшая степень полинома не означает лучшего приближения к экспериментальным данным.
Создание формы приложения
Для создания приложения средствами Visual Basic открываем среду разработки Microsoft Visual Basic 6.0, перед нами появляется диалоговое окно «Новый проект», выбираем вкладку Новый -> Standard .exe. (Рисунок 1):
Рисунок 1.
При щелчке на кнопке Oткрыть загружается базовая форма, служащая начальной точкой для всех операций с программой, форма Form1. Присвоим свойству Caption формы Form1 значение “ Программа”.
После этого на новой форме располагаем нужные нам элементы для решения задачи и создания приложения. Интерфейс формы показан на рис.2,значение свойств, отличающихся от стандартных в таблице 1.
Рисунок 2. Главная форма
Создадим меню для приложения. Для этого в меню Tools выполним команду Menu Editor. В появившемся диалоговом окне напишем названия пунктов меню и названия процедур, которые будут запускаться при выполнении команд меню. Редактор меню с введёнными именами представлен на рисунке (рис. 3).
Рисунок 3. Меню главной формы
В приложении имеются, кроме вышеописанной формы, ещё три формы, которые создаются с помощью меню Project, команды Add Form; frmViborfile (служит для выбора и открытия нужного файла), frmObr (служит для обработки данных), frmGrafick (в ней показан график зависимости температуры от времени), frmAbout( в ней рассказывается о программе и её авторе) Формы показаны ниже на Рис. 4, 5, 6,7:
Рисунок 4. frmViborfile
Рисунок 5. frmObr
Рисунок 6. frmGrafick
Рисунок 7. frmAbout
Пример работы программы
Открытие файлов:
В контекстном меню, во вкладке «Файл», находится раздел «Открыть», выбираем этот раздел.
Рисунок 8. Файл>Открыть
Открывается окно «Обзор».
Рисунок 9. Окно «Обзор» в работе
Первым делом, выбираем нужный нам диск, потом находим каталог хранения нужного файла, затем выбираем этот файл и нажимаем на кнопку «Открыть».
Вывод массивов:
Рисунок 10.
Обработка массивов:
В контекстном меню, во вкладке «Данные», наводим на раздел «Обработать».
Рисунок 11. Данные>Обработать
Открывается окно «Обработка данных», на котором содержится максимальное и минимальное значение показаний каждого датчика и моменты времени, в которое было зафиксировано данное показание; Максимальное отклонение от среднего; количество показаний, значения которых отклоняются от среднего на 8% .
Рисунок 12. Обработанные данные
Сохранение отсортированных данных:
На форме обработки данных, выбираем сохранить. Файл записывается туда же откуда был считан первоначальный файл и ему автоматически присваивается название data1.txt
Работа с графиками
Построим график изменения температуры физического объекта в зависимости от времени. Для этого в контекстном меню, во вкладке «Данные», выбираем раздел «Показать график».
Рисунок 12. Данные>Показать график
Строятся графики:
Рисунок 13. График
Завершение работы с программой
Открываем окно «Файл» , выбираем пункт «Выйти»
Рисунок 14. Файл>Выйти
После этого появляется диалоговое окно «Выход?»
Рисунок 15. Диалоговое окно
Выбираем да и программа заканчивает свою работу
Выводы
Среда разработки Visual Basic 6.0 позволяет эффективно и быстро обрабатывать и визуализировать результаты.
Созданное программное обеспечение позволяет проводить обработку данных, формируя файлы с результатами обработки.
Программа позволяет выполнять визуализацию исходных данных.
Визуализация данных из файла data1.txt
Microsoft Office - Excel позволяет импортировать данные из файла.(Рис.16)
Рисунок.16 Импортирование данных.
Результаты визуализации данных из файла data1.txt представлены ниже.
Рисунок17. Визуализация средних арифметических показаний датчиков в каждый момент времени
Рисунок18. Визуализация минимальных показаний датчиков в каждый момент времени
Аппроксимация данных в MSExel
Импортируем данные из файла data.txt в электронную таблицу. Затем на панели инструментов выбираем пункт «Вставка» >»График»
Рисунок19. Вставка>График
После чего на получившихся графиках правой кнопкой мыши вызываем контекстное меню, выбираем «Добавить линию тренда»
Рисунок20. Добавить линию тренда
Выбираем параметры линии тренда Полиномиальная 3-го порядка
Рисунок21. Параметры линии тренда
Так для каждого графика и получаем аппроксимация экспериментальных данных полиномиальной функцией 3-го порядка.
Рисунок22. Результат аппроксимации
Программный код
Public Pokaz1() As String
Public Pokaz2() As String
Public Pokaz3() As String
frmGlavnaya
Private Sub Exit_Click()
If MsgBox("Уверенны?", vbYesNo, "Выход?") = vbYes Then
Unload Me
Set frmGlavnaya = Nothing
Else
Cancel = 1
End If
End Sub
Private Sub file_open_Click()
frmViborfile.Show
End Sub
Private Sub graf_Click()
frmGrafick.Show
End Sub
Private Sub obr_Click()
frmObr.Show
End Sub
Private Sub prog_Click()
frmAbout.Show
End Sub
frmViborfile
Private Sub DirList_change()
FilList.Path = DirList.Path
End Sub
Private Sub DrvList_Change()
On Error GoTo DriveHandler
DirList.Path = DrvList.Drive
Exit Sub
DriveHandler:
DrvList.Drive = DirList.Path
Exit Sub
End Sub
Private Sub Open_Click()
Dim arr() As String
Dim FileNo As Integer, c As Integer, i As Integer
c = 0
FileNo = FreeFile
Open FilList.Path + "\" + FilList.FileName For Input As #FileNo
Do Until EOF(FileNo)
c = c + 1 'определяем размерность массива'
ReDim Preserve arr(c)
Line Input #FileNo, arr(c) 'считываем файл в массив'
Loop
Pokaz1 = Split(arr(1), ",") 'записываем 1 датчик'
For i = 0 To UBound(Pokaz1)
frmGlavnaya.Pokaz1.Print Pokaz1(i)
Next i
Pokaz2 = Split(arr(2), ",") 'записываем 2 датчик'
For i = 0 To UBound(Pokaz2)
frmGlavnaya.Pokaz2.Print Pokaz2(i)
Next i
Pokaz3 = Split(arr(3), ",")
For i = 0 To UBound(Pokaz3)
frmGlavnaya.Pokaz3.Print Pokaz3(i) 'записываем 3 датчик'
Next i
frmViborfile.Hide
End Sub
Private Sub Otmena_Click()
frmViborfile.Hide
End Sub
frmObr
For i = 0 To UBound(Pokaz3)
If Pokaz3(i) < min3 Then
min3 = Pokaz3(i)
End If
If Pokaz3(i) > max3 Then
max3 = Pokaz3(i)
End If
Next i 'нашли min3 и max3'
If max1 > max2 Then 'ищем обсалютный максимум'
ObsMax = max1
Else
ObsMax = max2
End If
If ObsMax < max3 Then
ObsMax = max3 'нашли обсалютный максимум'
End If
If min1 < min2 Then 'обсалютный минимум'
ObsMin = min1
Else
ObsMin = min2
End If
If ObsMin > min3 Then
ObsMin = min3 'нашли его'
End If
If Abs(ObsMax - srArif) > Abs(ObsMin - srArif) Then 'ищем max отклонение'
MaxOtkl = Abs(ObsMax - srArif)
Else
MaxOtkl = Abs(ObsMin - srArif)
frmObr.List2.AddItem Format(MaxOtkl, "##.## C") 'нашли максимальное отклонение от среднего'
End If
Dim s As Integer
Procent = srArif / 100 * 8 'нашли 8 процентов от средней температуры'
s = 0 'счетчик'
For i = 0 To UBound(Pokaz1)
TempProcent = Int(srArif) - Pokaz1(i) 'считаем'
If Abs(Int(TempProcent)) = Int(Procent) Then '.......'
s = s + 1
End If
Next i
For i = 0 To UBound(Pokaz2) 'считаем для второго датчика'
TempProcent = Int(srArif) - Pokaz2(i)
If Abs(Int(TempProcent)) = Int(Procent) Then
s = s + 1
End If
Next i
For i = 0 To UBound(Pokaz3)
TempProcent = Int(srArif) - Pokaz3(i) 'и для третьего'
If Abs(Int(TempProcent)) = Int(Procent) Then
s = s + 1
End If
Next i
frmObr.List3.AddItem s 'и вывели'
End Sub
Private Sub saveFile_Click()
Dim MyFile As Integer
MyFile = FreeFile
p = App.Path & "\" & "Data1" & ".txt"
Open p For Output As #MyFile
Do
For i = 0 To UBound(Pokaz1)
k = i
s = Val((Pokaz1(k)) + Val(Pokaz2(k)) + Val(Pokaz3(k))) / 3
k = k - 1
Print #MyFile, (Format(s, "#.##")) 'выгружаем среднюю температуру'
Next i
Loop Until k >= 0
For i = 0 To UBound(Pokaz1)
If Pokaz1(i) > Pokaz2(i) Then
A = Pokaz2(i)
Else
A = Pokaz1(i)
End If
If A > Pokaz3(i) Then
B = Pokaz3(i)
Else
B = A
End If
Print #MyFile, (Format(B, " ##")) 'выгружаем минимумы'
Next i
If MsgBox("Данные записаны", vbYes, " ") = vbYes Then
Unload Me
End If
End Sub
Private Sub Find1_Click()
Dim max1 As Integer, min1 As Integer
Dim i As Integer
k1 = 0: min1 = Pokaz1(0)
k2 = 0: max1 = Pokaz1(0)
For i = 0 To UBound(Pokaz1)
If Pokaz1(i) < min1 Then
k1 = i: min1 = Pokaz1(i) 'определяем минимум и номер элемента'
End If
If Pokaz1(i) > max1 Then
k2 = i: max1 = Pokaz1(i) 'определяем максимум и номер элемента'
End If
Next i
frmObr.max1.AddItem max1
frmObr.min1.AddItem min1
Dim MinMax1 As Integer, HourMax1 As Integer
Dim TempMin As Integer, TempHour As Integer
Dim Temp As String
MinMax1 = 7 'начальное значение минуты'
HourMax1 = 10 'начальное значение часы'
Temp = 18 * k2 / 60 'колдунство'
Temp = Temp + " " + "," 'добавляем пробел'
TempTime = Split(Temp, ",") 'разделяем на часы и минуты'
For i = 0 To UBound(TempTime)
TempHour = TempTime(0) 'записываем часы - 0 элемент'
If TempTime(1) = "" Then 'если 1 элементы - пробел'
TempMin = 0 'значит минут нет'
Else 'иначе'
TempMin = TempTime(1) 'минуты это 1 элемент'
End If
Next i
HourMax1 = HourMax1 + TempHour 'записываем часы'
MinMax1 = MinMax1 + 6 * TempMin 'записываем минуты'
If MinMax1 > 60 Then 'Цикл на случай'
HourMax1 = HourMax1 + 1 'если минут больше'
MinMaz1 = MinMax1 - 60 'чем 60'
End If
frmObr.HourMax1.AddItem HourMax1 'выводим часы'
frmObr.MinMax1.AddItem MinMax1 'выводим минуты'
Dim MinMin1 As Integer, HourMin1 As Integer
MinMin1 = 7 'ну и для минимума'
HourMin1 = 10 'и остальных 2 датчиков'
Temp = 18 * k1 / 60 'тоже самое'
Temp = Temp + " " + ","
TempTime = Split(Temp, ",")
For i = 0 To UBound(TempTime)
TempHour = TempTime(0)
If TempTime(1) = "" Then
TempMin = 0
Else
TempMin = TempTime(1)
End If
Next i
HourMin1 = HourMin1 + TempHour
MinMin1 = MinMin1 + 6 * TempMin
If MinMin1 > 60 Then
HourMin1 = HourMin1 + 1
MinMin1 = MinMin1 - 60
End If
frmObr.HourMin1.AddItem HourMin1
frmObr.MinMin1.AddItem MinMin1
End Sub
Private Sub find2_Click()
Dim max2 As Integer, min2 As Integer
k1 = 0: min2 = Pokaz2(0)
k2 = 0: max2 = Pokaz2(0)
For i = 0 To UBound(Pokaz2)
If Pokaz2(i) < min2 Then
k1 = i: min2 = Pokaz2(i)
End If
If Pokaz2(i) > max2 Then
k2 = i: max2 = Pokaz2(i)
End If
Next i
frmObr.max2.AddItem max2
frmObr.min2.AddItem min2
Dim MinMax2 As Integer, HourMax2 As Integer
Dim Temp As String
MinMax2 = 7
HourMax2 = 10
Temp = 18 * k2 / 60
Temp = Temp + " " + ","
TempTime = Split(Temp, ",")
For i = 0 To UBound(TempTime)
TempHour = TempTime(0)
If TempTime(1) = "" Then
TempMin = 0
Else
TempMin = TempTime(1)
End If
Next i
HourMax2 = HourMax2 + TempHour
MinMax2 = MinMax2 + 6 * TempMin
If MinMax2 > 60 Then
HourMax2 = HourMax2 + 1
MinMax2 = MinMax2 - 60
End If
frmObr.HourMax2.AddItem HourMax2
frmObr.MinMax2.AddItem MinMax2
Dim MinMin2 As Integer, HourMin2 As Integer
MinMin2 = 7
HourMin2 = 10
Temp = 18 * k1 / 60
Temp = Temp + " " + ","
TempTime = Split(Temp, ",")
For i = 0 To UBound(TempTime)
TempHour = TempTime(0)
If TempTime(1) = "" Then
TempMin = 0
Else
TempMin = TempTime(1)
End If
Next i
HourMin2 = HourMin2 + TempHour
MinMin2 = MinMin2 + 6 * TempMin
If MinMin2 > 60 Then
HourMin2 = HourMin2 + 1
MinMin2 = MinMin2 - 60
End If
frmObr.HourMin2.AddItem HourMin2
frmObr.MinMin2.AddItem MinMin2
End Sub
Private Sub find3_Click()
Dim max3 As Integer, min3 As Integer
k1 = 0: min3 = Pokaz3(0)
k2 = 0: max3 = Pokaz3(0)
For i = 0 To UBound(Pokaz3)
If Pokaz3(i) < min3 Then
k1 = i: min3 = Pokaz3(i)
End If
If Pokaz3(i) > max3 Then
k2 = i: max3 = Pokaz3(i)
End If
Next i
frmObr.max3.AddItem max3
frmObr.min3.AddItem min3
Dim MinMax3 As Integer, HourMax3 As Integer
Dim Temp As String
MinMax3 = 7
HourMax3 = 10
Temp = 18 * k2 / 60
Temp = Temp + " " + ","
TempTime = Split(Temp, ",")
For i = 0 To UBound(TempTime)
TempHour = TempTime(0)
If TempTime(1) = "" Then
TempMin = 0
Else
TempMin = TempTime(1)
End If
Next i
HourMax3 = HourMax3 + TempHour
MinMax3 = MinMax3 + 6 * TempMin
If MinMax3 > 60 Then
HourMax3 = HourMax3 + 1
MinMax3 = MinMax3 - 60
End If
frmObr.HourMax3.AddItem HourMax3
frmObr.MinMax3.AddItem MinMax3
Dim MinMin3 As Integer, HourMin3 As Integer
MinMin3 = 7
HourMin3 = 10
Temp = 18 * k1 / 60
Temp = Temp + " " + ","
TempTime = Split(Temp, ",")
For i = 0 To UBound(TempTime)
TempHour = TempTime(0)
If TempTime(1) = "" Then
TempMin = 0
Else
TempMin = TempTime(1)
End If
Next i
HourMin3 = HourMin3 + TempHour
MinMin3 = MinMin3 + 6 * TempMin
If MinMin3 > 60 Then
HourMin3 = HourMin3 + 1
MinMin3 = MinMin3 - 60
End If
frmObr.HourMin3.AddItem HourMin3
frmObr.MinMin3.AddItem MinMin3
End Sub
frmGrafick
Private Sub Command1_Click()
Picture1.Cls
Picture1.Scale (-3, 62)-(90, -8)
Picture1.Line (0, 0)-(80, 0)
Picture1.Line (80, 0)-(78, 2)
Picture1.Line (80, 0)-(78, -2)
For d = 0 To 75 Step 5
Picture1.PSet (d, 0)
Picture1.Print d
Next d
Picture1.Line (0, 0)-(0, 52)
Picture1.Line (0, 52)-(2, 50)
Picture1.Line (0, 52)-(-2, 50)
For d = 0 To 50 Step 5
Picture1.PSet (0, d)
Picture1.Print d
Next d
For Y = 5 To 80 Step 5
Picture1.Line (Y, 0)-(Y, 80), &H8000000B
Next Y
For X = 5 To 50 Step 5
Picture1.Line (0, X)-(80, X), &H8000000B
Next X
t = 0
For i = 0 To 13
Picture1.Line (t, Pokaz1(i))-(t + 5, Pokaz1(i + 1)), &HFF0000
t = t + 5
Next i
t = 0
For i = 0 To 13
Picture1.Line (t, Pokaz2(i))-(t + 5, Pokaz2(i + 1)), &H8E682
t = t + 5
Next i
t = 0
For i = 0 To 13
Picture1.Line (t, Pokaz3(i))-(t + 5, Pokaz3(i + 1)), &H1508E6
t = t + 5
Next i
End Sub
Размещено на Allbest.ru
Подобные документы
Система компьютерной обработки данных для сбора, систематизации, статистической обработки, анализа результатов учебного процесса за четверть, полугодие, год. Модуль обработки данных о качестве обучения, итогов успеваемости и данных о движении учащихся.
реферат [22,5 K], добавлен 05.02.2011Математическая статистика. Выборочная функция распределения. Использование инструментов Мастера функций и Пакета анализа Excel при статистической обработке данных. Анализ однородности выборки. Корреляционный, регрессионный анализ экспериментальных данных.
курсовая работа [473,6 K], добавлен 22.12.2015Разработка вычислительной системы обработки данных в реальном времени, состоящей из устройства ввода и ПЭВМ. Назначение данной разработки и основные требования к ее качеству и функциональности. Этапы создания данной системы и анализ результатов.
курсовая работа [223,5 K], добавлен 05.01.2010Освоение методов манипуляции параметрами SVG изображений при помощи JavaScript и возможности по анимации в современных браузерах. Интерфейс и структура модуля визуализации данных. Определение аномальных данных и их определение, реализованные типы.
курсовая работа [1,7 M], добавлен 20.05.2014Составление программы на языке Pascal для обработки результатов соревнований по фигурному катанию, проводившихся по трем видам многоборья. Генератор случайных чисел. Блок-схема программы. Ввод данных, выбор пользователя, оформление результатов вычислений.
курсовая работа [471,8 K], добавлен 21.12.2012Обзор существующих решений на основе открытых данных. Технологии обработки данных и методы их визуализации. Социальные сети для извлечения данных. Ограничение географической локации. Выбор набора и формат хранения открытых данных, архитектура системы.
курсовая работа [129,5 K], добавлен 09.06.2017Обработка экспериментальных данных с помощью программных продуктов. Редактирование и оформление электронных табличных расчётов. Метод наименьших квадратов: применение в качестве критерия близости суммы квадратов отклонений заданных и расчетных значений.
курсовая работа [275,5 K], добавлен 07.03.2011Реализация приложения, которое выполняет считывание, обработку, визуализацию и аппроксимацию экспериментальных данных полиномиальной функции. Блок схема алгоритма аппроксимации методом наименьших квадратов. Разработка интерфейса и листинга программы.
курсовая работа [1,1 M], добавлен 07.07.2013Иcпoльзoвaние мoдeлиpoвaния для oцeнки функциoниpoвaния peaльныx cиcтeм, иccлeдoвaние peжимов paбoты вычиcлитeльныx cиcтeм. Системы обработки данных: реального времени и оперативной обработки. Однопрограммные и мультипрограммные режимы обработки данных.
лабораторная работа [21,6 K], добавлен 27.11.2009База данных как основа автоматизации. Разработка, описание и реализация программного обеспечения "Точность и правильность методов и результатов измерений для центральной заводской лаборатории ОАО "Акрилат". Листинг, исходные коды программы и базы данных.
дипломная работа [1,0 M], добавлен 23.06.2012