Численное интегрирование функций
.docЧисленное интегрирование функций
Необходимо вычислить определенный интеграл от функции f(x) в диапазоне
[Xmin, Xmax].
Метод прямоугольников
Вычисляется массив значений функции f(x) от Xmin до Xmax с некоторым шагом h. Задается значение шага h.
Y(i) = Xmin +i*h , I = 0,1,2,……..n.
Количество точек n = (Xmax - Xmin )/h .
Интеграл вычисляется как:
Метод трапеций
Вычисляется массив значений функции f(x) от Xmin до Xmax с некоторым шагом h. Задается значение шага h.
Y(i) = Xmin +i*h , I = 0,1,2,……..n.
Количество точек n = (Xmax - Xmin )/h .
Интеграл вычисляется как:
Метод Симпсона
Вычисляется массив значений функции f(x) от Xmin до Xmax с некоторым шагом h. Задается значение шага h.
Y(i) = Xmin +i*h , I = 0,1,2,……..n.
Количество точек n = (Xmax - Xmin )/h .
Интеграл вычисляется как:
Программирование численного интегрирования Excel VBA
Тексты программ в Excel VBA
Private Sub CommandButton1_Click()
‘Вычисление таблицы значений функции F(x) = A*X^2 + B*X + C
Dim A As Single, B As Single, C As Single
Dim X As Single, Xmin As Single, Xmax As Single, dX As Single, F As Single
Dim Xq(10) As Single, nq As Integer, i As Integer
'Ввод параметров
A =Лист1.Cells(3, 2).Value
B = Лист1.Cells(4, 2).Value
C = Лист1.Cells(5, 2).Value
Xmin = Лист1.Cells(4, 5).Value
Xmax = Лист1.Cells(5, 5).Value
dX = Лист1.Cells(8, 5).Value
‘Вычисление таблицы значений функции A*X^2 + B*X + C
'i – номер строки в таблице
i = 12
For X = Xmin To Xmax Step dX
F = A * X ^ 2 + B * X + C
Лист1.Cells(i, 1).Value = X
Лист1.Cells(i, 2).Value = F
i = i + 1
Next X
MsgBox " Вычисление таблицы значений функции завершено"
End Sub
Private Sub CommandButton2_Click()
‘Вычисление интеграла методом прямоугольников
Dim A As Single, B As Single, C As Single
Dim X As Single, Xmin As Single, Xmax As Single, h As Single, F As Single
Dim Y() As Single
Dim i As Integer, n As Integer, S As Single, Integral As Single
'Ввод параметров
A = Лист1.Cells(3, 2).Value
B= Лист1.Cells(4, 2).Value
C = Лист1.Cells(5, 2).Value
Xmin = Лист1.Cells(4, 5).Value
Xmax = Лист1.Cells(5, 5).Value
h = Лист1.Cells(10, 5).Value
‘Количество точек n
n = (Xmax - Xmin) / h
Лист1.Cells(10, 7).Value = n
ReDim Y(n)
‘Вычисление массива значений функции
For i = 0 To n
X = Xmin + i * h
Y(i) = A * X ^ 2 + B * X + C
Next i
‘Вычисление интеграла
S = 0
For i = 0 To n - 1
S = S + Y(i)
Next i
Integral = S * h
Лист1.Cells(14, 6).Value = Integral
MsgBox " Вычисление интеграла методом прямоугольников pfdthityj "
End Sub
Private Sub CommandButton3_Click()
‘Вычисление интеграла методом трапеций
Dim A As Single, B As Single, C As Single
Dim X As Single, Xmin As Single, Xmax As Single, h As Single, F As Single
Dim Y() As Single
Dim i As Integer, n As Integer, S As Single, Integral As Single
'Ввод параметров
A = Лист1.Cells(3, 2).Value
B = Лист1.Cells(4, 2).Value
C = Лист1.Cells(5, 2).Value
Xmin = Лист1.Cells(4, 5).Value
Xmax = Лист1.Cells(5, 5).Value
h = Лист1.Cells(10, 5).Value
‘Количество точек n
n = (Xmax - Xmin) / h
ReDim Y(n)
‘Вычисление массива значений функции
For i = 0 To n
X = Xmin + i * h
Y(i) = A * X ^ 2 + B * X + C
Next i
‘Вычисление интеграла
S = 0
For i = 1 To n - 1
S = S + Y(i)
Next i
Integral = h * (Y(0) + Y(n) + 2 * S) / 2
Лист1.Cells(18, 6).Value = Integral
MsgBox " Вычисление интеграла методом трапеций завершено"
End Sub
Private Sub CommandButton4_Click()
‘Вычисление интеграла методом Симпсона
Dim A As Single, B As Single, C As Single
Dim X As Single, Xmin As Single, Xmax As Single, h As Single, F As Single
Dim Y() As Single
Dim i As Integer, n As Integer, S As Single, Integral As Single
'Ввод параметров
A = Лист1.Cells(3, 2).Value
B = Лист1.Cells(4, 2).Value
C = Лист1.Cells(5, 2).Value
Xmin =Лист.Cells(4, 5).Value
Xmax = Лист1.Cells(5, 5).Value
h = Лист1.Cells(10, 5).Value
‘Количество точек n
n = (Xmax - Xmin) / h
ReDim Y( n)
‘Вычисление массива значений функции
For i = 0 To n
X = Xmin + i * h
Y(i) = A * X ^ 2 + B * X + C
Next i
‘Вычисление интеграла
S1 = 0
For i = 1 To n - 1 Step 2
S1 = S1 + Y(i)
Next i
S2 = 0
For i = 2 To n - 2 Step 2
S2 = S2 + Y(i)
Next i
Integral = h * (Y(0) + Y(2 * n) + 4 * S1 + 2 * S2) / 3
Лист1.Cells(22, 6).Value = Integral
MsgBox " Вычисление интеграла методом Симпсона завершено"
End Sub