Файл: Курсовая работа по дисциплине Введение в информационные технологии.docx

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

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

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

Добавлен: 10.01.2024

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

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

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


.tb_k2q_s = Format(m2, "0.000000")

.tb_k3q_s = Format(m3, "0.000000")

.tb_k1q_tr = Format(t1, f_st)

.tb_k2q_tr = Format(t2, f_st)

.tb_k3q_tr = Format(t3, f_st)

.tb_kq_tt = Format(Sd, f_st)

.tb_q_ft = Format(Fd, f_st)

.tb_q_fr = Format(f, f_st)

If t1 > Sd Then

.tb_k1q_z = "çíà÷èì"

Else

.tb_k1q_z = "íå çíà÷èì"

End If

If t2 > Sd Then

.tb_k2q_z = "çíà÷èì"

Else

.tb_k2q_z = "íå çíà÷èì"

End If

If t3 > Sd Then

.tb_k3q_z = "çíà÷èì"

Else

.tb_k3q_z = "íå çíà÷èì"

End If

If f > Fd Then .tb_q_z = "çíà÷èìî" Else .tb_q_z = "íå çíà÷èìî"

End With

Case 3

st = "ýêñïîíåíöèàëüíîé àïïpîêñèìàöèè"

With UserForm1

.tb_k1e = Format(a1, f_st)

.tb_k2e = Format(a2, f_st)

.tb_kde = Format(R, "0.000000")

.tb_k1e_s = Format(m1, "0.000000")

.tb_k2e_s = Format(m2, "0.000000")

.tb_k1e_tr = Format(t1, f_st)

.tb_k2e_tr = Format(t2, f_st)

.tb_ke_tt = Format(Sd, f_st)

.tb_e_ft = Format(Fd, f_st)

.tb_e_fr = Format(f, f_st)

If t1 > Sd Then

.tb_k1e_z = "çíà÷èì"

Else

.tb_k1e_z = "íå çíà÷èì"

End If

If t2 > Sd Then

.tb_k2e_z = "çíà÷èì"

Else

.tb_k2e_z = "íå çíà÷èì"

End If

If f > Fd Then .tb_e_z = "çíà÷èìî" Else .tb_e_z = "íå çíà÷èìî"

End With

End Select

R1 = ActiveSheet.UsedRange.Row + _

ActiveSheet.UsedRange.Rows.Count + 1

Cells(R1, C1).Activate

If gr = 1 Then

ActiveCell = "N=" + Str(n) + " - ÷èñëî íàáëþäåíèé"

ActiveCell.Offset(1, 0).Activate

ActiveCell = "Òàáëè÷íûå çíà÷åíèÿ êðèòåðèåâ:"
ActiveCell.Offset(1, 0).Activate

ActiveCell = "Ôèøåðà Ñòüþäåíòà"

ActiveCell.Offset(1, 0).Activate

ActiveCell = Format(Ftab(1), "0.0000") + Space(8) + _

Format(Stab(1), "0.0000") + " - ïðè âû÷èñëåíèè äâóõ êîýôôèöèåíòîâ"

ActiveCell.Offset(1, 0).Activate

ActiveCell = Format(Ftab(2), "0.0000") + Space(8) + _

Format(Stab(2), "0.0000") + " - ïðè âû÷èñëåíèè òðåõ êîýôôèöèåíòîâ"

ActiveCell.Offset(1, 0).Activate

End If

str1 = sa1 + "=" + Format(a1, f_st) + " " + sa2 + "=" + Format(a2, f_st)

If gr = 2 Then

str1 = str1 + " " + sa3 + "=" + Format(a3, f_st)

End If

ActiveCell = str1 + " -êîýôôèöèåíòû " + st

ActiveCell.Offset(1, 0).Activate

If gr = 1 Then

ActiveCell = sk + Format(k, "0.000000") + _

" -êîýôôèöèåíò êîppåëÿöèè"

End If

ActiveCell.Offset(1, 0).Activate

ActiveCell = sR + Format(R, "0.000000") + _

" -êîýôôèöèåíò äåòåpìèíèpîâàííîñòè"

ActiveCell.Offset(1, 0).Activate

str1 = sm1 + Format(m1, "0.000000") + " " + sm2 + _

Format(m2, "0.000000")

If gr = 2 Then

str1 = str1 + " " + sm3 + Format(m3, f_st) + _

" -ñòàíäàpòíûå îøèáêè êîýôôèöèåíòîâ "

End If

ActiveCell = str1

ActiveCell.Offset(1, 0).Activate

ActiveCell = "Êpèòåpèè äëÿ ïpîâåpêè íóëåâûõ ãèïîòåç "

ActiveCell.Offset(1, 0).Activate

str1 = sf + Format(f, f_st) + " " + st1 + Format(t1, f_st) + " " + _

st2 + Format(t2, f_st)

If gr = 2 Then

str1 = str1 + " " + st3 + Format(t3, f_st)

End If

ActiveCell = str1

ActiveCell.Offset(1, 0).Activate

If f > Fd Then

ActiveCell = "Óðàâíåíèå" + st + "çíà÷èìî"

Else

ActiveCell = "Óðàâíåíèå" + st + "íå çíà÷èìî"

End If

ActiveCell.Offset(1, 0).Activate

If t1 > Sd Then

ActiveCell = "Êîýôôèöåíò" + sa1 + "çíà÷èìî"

Else

ActiveCell = "Êîýôôèöåíò" + sa1 + "íå çíà÷èìî"

End If

ActiveCell.Offset(1, 0).Activate

If t2 > Sd Then

ActiveCell = "Êîýôôèöåíò" + sa2 + "çíà÷èìî"

Else

ActiveCell = "Êîýôôèöåíò" + sa2 + "íå çíà÷èìî"

End If

ActiveCell.Offset(1, 0).Activate


If gr = 2 Then

If t3 > Sd Then

ActiveCell = "Êîýôôèöåíò" + sa3 + "çíà÷èìî"

Else

ActiveCell = "Êîýôôèöåíò" + sa3 + "íå çíà÷èìî"

End If

End If

ActiveCell.Offset(1, 0).Activate

End Sub

Public Sub graf()

Dim cell_1 As String, cell_2 As String

' äèàïàçîíà ñ äàííûìè

'çàïîìèíàåì íîìåð ïåðâîé ñòðîêè ñ âûâîäèìûìè äàííûìè

R1 = ActiveSheet.UsedRange.Row + _

ActiveSheet.UsedRange.Rows.Count + 1

For i = 1 To n

Cells(R1 + i - 1, 1) = x(i)

Cells(R1 + i - 1, 2) = a1L + a2L * x(i)

Next i

cell_1 = Cells(R1, 1).Address

cell_2 = Cells(R1 + n - 1, 2).Address

ActiveSheet.Shapes.AddChart.Select 'íîâàÿ äèàãðàììà

ActiveChart.ChartType = xlXYScatterSmoothNoMarkers 'xlXYScatter

ActiveChart.SetSourceData Source:=Range(cell_1 + ":" + cell_2)

ActiveChart.SeriesCollection.NewSeries

cell_1 = Cells(UR.Row + 1, UR.Column).Address

cell_2 = Cells(UR.Row + n - 1, UR.Column).Address

ActiveChart.SeriesCollection(2).XValues = Range(cell_1 + ":" + cell_2)

ActiveChart.SeriesCollection(2).Values = Range(Cells(UR.Row + 1, _

UR.Column + 1).Address + ":" + Cells(UR.Row + n - 1, UR.Column + _

1).Address)

ActiveChart.SeriesCollection(2).Select

ActiveChart.SeriesCollection(2).ChartType = xlXYScatter

ActiveChart.SetElement (msoElementChartTitleAboveChart)

Selection.Caption = "Ëèíåéíàÿ"

ActiveSheet.ChartObjects(1).Left = 430

For i = 1 To n

Cells(R1 + i - 1, 3) = a1sqr + a2sqr * x(i) + a3sqr * x(i) * x(i)

Next i

cell_1 = Cells(R1, 1).Address

cell_2 = Cells(R1 + n - 1, 3).Address

ActiveSheet.Shapes.AddChart.Select

ActiveChart.ChartType = xlXYScatterSmoothNoMarkers

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(1).XValues = Range(cell_1 + ":" + _

Cells(R1 + n - 1, 1).Address)
ActiveChart.SeriesCollection(1).Values = Range(Cells(R1, 3).Address _

+ ":" + cell_2)

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(2).XValues = Range(Cells(UR.Row + 1, _

UR.Column).Address + ":" + Cells(UR.Row + n - 1, _

UR.Column).Address)

ActiveChart.SeriesCollection(2).Values = Range(Cells(UR.Row + 1, _

UR.Column + 1).Address + ":" + Cells(UR.Row + n - 1, UR.Column + _

1).Address)

ActiveChart.SeriesCollection(2).Select

ActiveChart.SeriesCollection(2).ChartType = xlXYScatter

ActiveChart.SetElement (msoElementChartTitleAboveChart)

Selection.Caption = "Êâàäðàòè÷íàÿ"

ActiveSheet.ChartObjects(2).Left = 800

On Error Resume Next

ActiveChart.SeriesCollection(3).Delete

On Error GoTo 0

For i = 1 To n

Cells(R1 + i - 1, 4) = a1exp * Exp(a2exp * x(i))

Next i

cell_1 = Cells(R1, 1).Address

cell_2 = Cells(R1 + n - 1, 4).Address

ActiveSheet.Shapes.AddChart.Select

ActiveChart.ChartType = xlXYScatterSmoothNoMarkers

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(1).XValues = Range(cell_1 + ":" + _

Cells(R1 + n - 1, 1).Address)

ActiveChart.SeriesCollection(1).Values = Range(Cells(R1, 4).Address _

+ ":" + cell_2)

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(2).XValues = Range(Cells(UR.Row + 1, _

UR.Column).Address + ":" + Cells(UR.Row + n - 1, _

UR.Column).Address)

ActiveChart.SeriesCollection(2).Values = Range(Cells(UR.Row + 1, _

UR.Column + 1).Address + ":" + Cells(UR.Row + n - 1, UR.Column _

+ 1).Address)

ActiveChart.SeriesCollection(2).Select

ActiveChart.SeriesCollection(2).ChartType = xlXYScatter

ActiveChart.SetElement (msoElementChartTitleAboveChart)

Selection.Caption = "Ýêñïîíåíöèàëüíàÿ"

ActiveSheet.ChartObjects(3).Left = 1170

On Error Resume Next

ActiveChart.SeriesCollection(3).Delete

On Error GoTo 0

End Sub

'Ïðîãðàììíûé êîä ôîðìû

Private Sub Button2_Click() 'Êíîïêà ×èòàòü

Dim Inp_Data As String, Data1 As String, Data2 As String

R = 1

c = 1

FileName = TextBox1.Value


If FileName = "" Then

Dialog:

FileName = Application.GetOpenFilename _

(, , "Âûáåðèòå òåêñòîâûé ôàéë ñ äàííûìè")

End If

If FileName = "" Or VarType(FileName) = vbBoolean Then

Exit Sub

End If

On Error GoTo Dialog

Open FileName For Input As #1

On Error GoTo 0

TextBox1.Value = FileName

Worksheets("VBA").Cells.Clear

R = 0

Do While Not EOF(1)

Line Input #1, Inp_Data '×òåíèå ñòðîêè èç ôàéëà â ìàññèâ

If Inp_Data = "" Then Exit Do

pr1 = InStr(Trim(Inp_Data), " ")

Worksheets("VBA").Cells(R + 2, 1) = Val(Left(Trim(Inp_Data), _

pr1 - 1))

Worksheets("VBA").Cells(R + 2, 2) = Val(Trim(Mid(Trim(Inp_Data), _

pr1 + 1)))

R = R + 1

Loop

Close #1

Worksheets("VBA").Cells(1, 1) = "X"

Worksheets("VBA").Cells(1, 2) = "Y"

ReadList

End Sub

Private Sub Button3_Click()

Worksheets("VBA").Activate

UserForm1.Hide

End Sub

Private Sub CheckBox1_Click()

If CheckBox1.Value = False Then

TextBox1.Visible = False

Button2.Visible = False

Label3.Visible = False

Else

TextBox1.Visible = True

Button2.Visible = True

Label3.Visible = True

End If

End Sub

Private Sub CommandButton1_Click()

Dim Sx As Single, Sy As Single, Sx2 As Single, Sxy As Single, Sx3 _

As Single, Sx4 As Single, Sx2y As Single, Slny As Single, Sxlny As _

Single, Xsr As Single, Ysr As Single, lnYsr As Single, Sxysr As Single _

, Sx2sr As Single, Sy2sr As Single

If n = 0 Then

MsgBox "Èñõîäíûå äàííûå îòñóòñòâóþò"

Exit Sub

End If

Call Read_XY(x, y)

alfa = Val(TextBox2.Value)

Call Read_tabl(alfa)

On Error Resume Next

ActiveSheet.ChartObjects.Delete

On Error GoTo 0

'Óäàëåíèå ðåçóëüòàòîâ ðàñ÷åòîâ

If n > 0 Then

Range(Cells(UR.Row + n + 2, 1).Address + ":" + Cells(UR.Row + n _

+ 100, 4).Address).Clear

End If

ReDim lny(n)

Sx = 0

Sy = 0

Sx2 = 0

Sxy = 0

Sx3 = 0

Sx4 = 0

Sx2y = 0

Slny = 0

Sxlny = 0

For j = 1 To n

Sx = Sx + x(j)

Sy = Sy + y(j)

Sx2 = Sx2 + x(j) * x(j)

Sxy = Sxy + x(j) * y(j)

Sx3 = Sx3 + x(j) * x(j) * x(j)

Sx4 = Sx4 + (x(j)) ^ 4

Sx2y = Sx2y + x(j) * x(j) * y(j)

lny(j) = Log(y(j))

Slny = Slny + lny(j)

Sxlny = Sxlny + x(j) * lny(j)

Next j

Xsr = Sx / n

Ysr = Sy / n

lnYsr = Slny / n

Sxysr = 0

Sx2sr = 0

Sy2sr = 0

For j = 1 To n

Sxysr = Sxysr + (x(j) - Xsr) * (y(j) - Ysr)

Sx2sr = Sx2sr + (x(j) - Xsr) ^ 2

Sy2sr = Sy2sr + (y(j) - Ysr) ^ 2

Next j

Call L_Kram(n, Sx, Sx, Sx2, Sy, Sxy, a1L, a2L)

koef_cor = Sxysr / (Sqr(Sx2sr) * Sqr(Sy2sr))

ReDim YL(1 To n)

For j = 1 To n

YL(j) = a1L + a2L * x(j)

Next j

Call Koef_det(n, y, YL, Ysr, SostL, SregrL, SpolnL, R_det_L)

Call ZnachLine(n, SostL, R_det_L, Sx2, Sx2sr, a1L, a2L, Sa1L, Sa2L, _

Fline, ta1L, ta2L)

Call Sqr_Kram(n, Sx, Sx2, Sx, Sx2, Sx3, Sx2, Sx3, Sx4, Sy, Sxy, Sx2y, _

a1sqr, a2sqr, a3sqr, MD)

ReDim Ysqr(1 To n)

For j = 1 To n

Ysqr(j) = a1sqr + a2sqr * x(j) + a3sqr * x(j) * x(j)

Next j

Call Koef_det(n, y, Ysqr, Ysr, Sostsqr, Sregrsqr, Spolnsqr, R_det_sqr)

DSost = Sostsqr / (n - 3)

Sa1sqr = Sqr(DSost * (Sx2 * Sx4 - Sx3 * Sx3) / MD)

Sa2sqr = Sqr(DSost * (n * Sx4 - Sx2 * Sx2) / MD)

Sa3sqr = Sqr(DSost * (n * Sx2 - Sx * Sx) / MD)

Fsqr = R_det_sqr * (n - 3) / (2 * (1 - R_det_sqr))

ta1sqr = Abs(a1sqr) / Sa1sqr

ta2sqr = Abs(a2sqr) / Sa2sqr

ta3sqr = Abs(a3sqr) / Sa3sqr

Call L_Kram(n, Sx, Sx, Sx2, Slny, Sxlny, cexp, a2exp)

a1exp = Exp(cexp)

ReDim Yexp(1 To n)

ReDim lnYexp(1 To n)

For j = 1 To n

Yexp(j) = a1exp * Exp(a2exp * x(j))

lnYexp(j) = Log(Yexp(j))

Next j

Call Koef_det(n, lny, lnYexp, lnYsr, Sostexp, Sregrexp, Spolnexp, _

R_det_exp)

Call ZnachLine(n, Sostexp, R_det_exp, Sx2, Sx2sr, a1exp, a2exp, _

Sa1exp, Sa2exp, Fexp, ta1exp, ta2exp)


'Âûâîä ðåçóëüòàòîâ

gr = 1

Call Print_rez(gr, "a1L", "a2L", "", "koef_kor=", "R_det_L=", "Sa1L=", _

"Sa2L=", "", "FLine=", "ta1L=", "ta2L=", "", a1L, a2L, 0, koef_cor, _

R_det_L, Sa1L, Sa2L, 0, Fline, ta1L, ta2L, 0)

gr = 2

Call Print_rez(gr, "a1sqr", "a2sqr", "a3sqr", "", "R_det_sqr=", _

"Sa1sqr=", "Sa2sqr=", "Sa3sqr=", "Fsqr=", "ta1sqr=", "ta2sqr=", _

"ta3sqr=", a1sqr, a2sqr, a3sqr, 0, R_det_sqr, Sa1sqr, Sa2sqr, Sa3sqr, _

Fsqr, ta1sqr, ta2sqr, ta3sqr)

gr = 3

Call Print_rez(gr, "a1exp", "a2exp", "", "", "R_det_exp=", "Sa1exp=", _

"Sa2exp=", "", "Fexp=", "ta1exp=", "ta2exp=", "", a1exp, a2exp, 0, 0, _

R_det_exp, Sa1exp, Sa2exp, 0, Fexp, ta1exp, ta2exp, 0)

Call MinMax(x, n, Min, Max)

Xpr = Xsr + 0.1 * (Max - Min)

Ypr = a1L + a2L * Xpr

st1 = " ïðîãíîçíîé òî÷êå Xpr=" + Format(Xpr, f_st) + _

"ïðîãíîçíîå çíà÷åíèå Ypr=" + Format(Ypr, f_st)

ActiveCell = st1

tb_x = Format(Xpr, f_st)

tb_y_l = Format(Ypr, f_st)

tb_y_q = Format(a1sqr + a2sqr * Xpr + a3sqr * (Xpr) ^ 2, f_st)

tb_y_e = Format(a1exp * Exp(a2exp * Xpr), f_st)

Call graf

End Sub

Private Sub CommandButton2_Click()

Unload UserForm1

End Sub
Private Sub Label19_Click()
End Sub
Private Sub ListBox1_Change()
End Sub
Private Sub tb_y1_Change()
End Sub
Private Sub tb_yq_Change()
End Sub
Private Sub UserForm_Click()
End Sub

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


Рис. 13 Результат работы программы с выводом на лист Excel(Текст)


Рис. 14 Результат работы программы с выводом на лист Excel(Графики)



Рис. 15 Результат работы программы с выводом на UserForm

4)Расчёт аппроксимаций и построение графиков MathCAD


Решение и графическое представление результатов расчетов аппроксимации линейной, квадратичной, экспоненциальных функцией в MathCad приведено на рисунке 16,17,18 соответственно.



Рис.16. Аппроксимация линейной функцией и график результата в MathCad.



Рис.17. Аппроксимация квадратичной функцией и график результата в MathCad.



Рис.18. Аппроксимация эспоненциальной функцией и график результата в MathCad.

5)Расчёт аппроксимаций и построение графиков MatLab



Исходный код программы выглядит следующим образом для расчета аппроксимаций:

%%Изначальные данные

format shortG

Y=[0.02 0.05 0.10 0.2 0.25 0.30 0.35 0.40 0.45 0.50 0.52];

X=[10.0 23.3 36.65 58.9 65.2 74.5 79.2 84.9 86.5 88.1 88.5];

x=0:1:100;

n = 11;

%%Линейная аппроксимация

a=polyfit(X',Y',1)

Yl=a(1).*X+a(2);

y1 = polyval(a,x);

plot(x,y1,'b',X,Y,'o')

grid

title('Линейная аппроксимация')

legend('Линейная модель','Заданные точки','Location','NorthWest');

%%Квадратная аппроксимация

l=polyfit(X',Y',2)

Ykv=l(1).*X.^2+l(2).*X+l(3);

y2 = polyval(l,x);

plot(x,y2,'b',X,Y,'o')

grid

title('Квадратная аппроксимация')

legend('Квадратная модель','Заданные точки','Location','NorthWest');

%%Экспоненциальная аппроксимация

y_log=log(Y);

c=polyfit(X,y_log,1);

f=[exp(c(2)) c(1)]

p_log=polyval(c,x);

p=exp(p_log);

plot(x,p,'b',X,Y,'ro')

grid

title('Экспоненциальная аппроксимация')

legend('Экспоненциальная модель','Заданные точки','Location','NorthWest');
Решение и графическое представление результатов расчетов аппроксимации линейной, квадратичной, экспоненциальных функцией в MatLab приведено на рисунке 19,20,21 соответственно.



Рис.19. Аппроксимация линейной функцией и график результата в MatLab.



Рис.20. Аппроксимация квадратичной функцией и график результата в MatLab.


Рис.21. Аппроксимация эспоненциальной функцией и график результата в MatLab.

ЗАКЛЮЧЕНИЕ



В курсовой работе мы решили задачу проведение эксперимента установления зависимости давления взрыва(Y) от концентрации пыли(X), определили тип и параметры аналитической зависимости, аппроксимирующей результаты испытаний. Лучше всего результаты испытаний, аппроксимирует квадратичная функция: y = 8E-05x2 - 0,0021x + 0,0489 т.к коэффициент детерминированности квадратичной выше других.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК


1. Елисеева И.И. Общая теория статистики: Учебник для вузов (под ред. Елисеевой И.И.) изд. 5-е, перераб., доп. /Елисеева И.И., Юзбашев М.М. М.: Финансы и статистика, 2008. – 656.
2. Краинский, И. Word 2007 : популярный самоучитель : практическое руководство / И. Краинский. - Санкт-Петербург : Питер, 2008. - 240 с. - (Серия «Популярный самоучитель»). - ISBN 978-5-91180-678-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/1775932 (дата обращения: 06.10.2022).