Лабораторная работа №3
Тема: «ИНТЕГРИРОВАНИЕ»
Цель работы: научиться применять формулы численного интегрирования для вычисления площадей под функционально или таблично заданными экспериментальными зависимостями.
Индивидуальный вариант №1
Радиус 1
Количество точек 7
Расчетные формулы
Уравнение границы четверти круга (для 10 точек):
Формулы прямоугольников:
Формула трапеций:
Формула Симпсона:
Пример программы
Const n = 14
Dim X(n), Y(n) As Variant
Private Sub CommandButton1_Click()
For i = 1 To n
X(i) = Worksheets(3).Cells(i + 2, 1).Value
Y(i) = Worksheets(3).Cells(i + 2, 2).Value
Worksheets(3).Cells(i + 2, 3).Value = X(i)
Worksheets(3).Cells(i + 2, 4).Value = Y(i)
Next i
s = 0
For i = 1 To n
s = s + Abs((X(i) - X(i - 1)) * Y(i))
Next i
For i = 1 To n
Worksheets(3).Cells(18, 4).Value = s
Next i
For i = 1 To n
yt = Worksheets(3).Cells(18, 2).Value
Pogr = Abs((yt - s) / yt)
Worksheets(3).Cells(19, 4).Value = Pogr
Next i
End Sub
Private Sub CommandButton2_Click()
For i = 1 To n
Worksheets(3).Cells(i + 2, 3).Value = ""
Worksheets(3).Cells(i + 2, 4).Value = ""
Worksheets(3).Cells(i + 4, 4).Value = ""
Worksheets(3).Cells(i + 5, 4).Value = ""
Next i
End Sub
Private Sub CommandButton3_Click()
For i = 1 To n
X(i) = Worksheets(3).Cells(i + 2, 1).Value
Y(i) = Worksheets(3).Cells(i + 2, 2).Value
Worksheets(3).Cells(i + 2, 5).Value = X(i)
Worksheets(3).Cells(i + 2, 6).Value = Y(i)
Next i
s = 0
For i = 1 To n
s = s + (Abs((X(i) - X(i - 1))) / 2) * (Y(i) + Y(i - 1))
Next i
For i = 1 To n
Worksheets(3).Cells(18, 6).Value = s
Next i
For i = 1 To n
yt = Worksheets(3).Cells(18, 2).Value
Pogr = Abs((yt - s) / yt)
Worksheets(3).Cells(19, 6).Value = Pogr
Next i
End Sub
Private Sub CommandButton4_Click()
For i = 1 To n
Worksheets(3).Cells(i + 2, 5).Value = ""
Worksheets(3).Cells(i + 2, 6).Value = ""
Worksheets(3).Cells(i + 4, 6).Value = ""
Worksheets(3).Cells(i + 5, 6).Value = ""
Next i
End Sub
Private Sub CommandButton5_Click()
For i = 1 To n
X(i) = Worksheets(3).Cells(i + 2, 1).Value
Y(i) = Worksheets(3).Cells(i + 2, 2).Value
Worksheets(3).Cells(i + 2, 7).Value = X(i)
Worksheets(3).Cells(i + 2, 8).Value = Y(i)
Next i
'площадь по ф-ле трапеций с шагом h
sh = 0
h = X(2) - X(1)
For i = 2 To n - 1
sh = sh + Abs(h * Y(i))
Next i
sh = sh + Y(1) * h / 2 + Y(n) * h / 2
'площадь по ф-ле трапеций с шагом 2h
s2h = 0
h = X(3) - X(1)
For i = 3 To n - 2 Step 2
s2h = s2h + Abs(h * Y(i))
Next i
s2h = s2h + Y(1) * h / 2 + Y(n) * h / 2
s = (4 * sh - s2h) / 3 'а это формула Симпсона
For i = 1 To n
Worksheets(3).Cells(18, 8).Value = s
Next i
For i = 1 To n
yt = Worksheets(3).Cells(18, 2).Value
Pogr = Abs((yt - s) / yt)
Worksheets(3).Cells(19, 8).Value = Pogr
Next i
End Sub
Private Sub CommandButton6_Click()
For i = 1 To n
Worksheets(3).Cells(i + 2, 7).Value = ""
Worksheets(3).Cells(i + 2, 8).Value = ""
Worksheets(3).Cells(i + 4, 8).Value = ""
Worksheets(3).Cells(i + 5, 8).Value = ""
Next i
End Sub
Часть А Взяв у преподавателя номер индивидуального задания, выполнила расчеты площадей по 3м формулам: прямоугольников, трапеций, Симпсона. Задала формулу погрешности.
Часть В
Количество точек в исходном ряде данных увеличила в 2 раза, повторила расчет и сделала вывод
Вывод:
Методы численного интегрирования можно использовать для нахождения площадей, каких – либо фигур, в данном случае для поиска площади сектора окружности, представляющего собой её четверть.
При небольшом диапазоне точек наиболее эффективным становится метод Симпсона (если заданная функция имеет относительно легко вычисляемое значение), потому что он имеет наименьшую погрешность вычислений. Наиболее неэффективная: формула прямоугольников.
Если функция задана несколько некорректно, то есть с потерей какого-либо количества точек и при относительно малом диапазоне, наиболее эффективной является формула трапеции, а наиболее неэффективной формула Симпсона. При задании функции некорректно, например количество точек превышает значение радиуса, а значит мы получаем ошибку при вычислениях: отрицательное число под знаком корня. В данном случае приходится идти на математические ухищрения (например, подкоренное выражение взять по модулю). В данном случае при высоком диапазоне данных наиболее эффективной является формула прямоугольников, а самой неэффективной: формула трапеций.