Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инфроматика2курс.pdf
Скачиваний:
43
Добавлен:
29.03.2015
Размер:
797.15 Кб
Скачать

Методические указания по выполнению лабораторной работы

Тексты функций, реализующих методы интегрирования на VBA

Метод левых прямоугольников

Public Function LevPram(a As Double, b As Double, n As Integer) As Double Dim x As Double, S As Double, Y As Double, h As Double

Dim i As Integer If b < a Then

MsgBox "Значения [a,b] заданы не верно" Exit Function

End If

h = (b - a) / n: S = 0 For i = 0 To n - 1

x = a + i * h: Y = F(x): S = S + Y Next i

LevPram = S * h End Function

Метод правых прямоугольников

Public Function PravPram(a As Double, b As Double, n As Integer) As Double Dim x As Double, S As Double, Y As Double, h As Double

Dim i As Integer

If b < a Then

MsgBox "Значения [a,b] заданы не верно" Exit Function

End If

h = (b - a) / n: S = 0 For i = 1 To n

x = a + i * h: Y = F(x): S = S + Y Next i

PravPram = S * h End Function

Метод средних прямоугольников

Public Function SrednPram(a As Double, b As Double, n As Integer) As Double Dim x As Double, S As Double, Y As Double, h As Double

Dim i As Integer If b < a Then

MsgBox "Значения [a,b] заданы не верно"

15

Любимов Е.Б.

 

Методические указания по выполнению лабораторной работы

Exit Function End If

h = (b - a) / n: S = 0: x = a For i = 1 To n

x = x + h / 2: Y = F(x): S = S + Y: x = x + h / 2 Next i

SrednPram = S * h End Function

Метод трапеций

Function Strap(a As Double, b As Double, n As Integer) As Double Dim x As Double, S As Double, Y As Double, h As Double Dim i As Integer

If b < a Then

MsgBox "Значения [a,b] заданы не верно" Exit Function

End If

h = (b - a) / n: S = 0 For i = 1 To n - 1

x = a + i * h: Y = F(x): S = S + Y Next i

S = 2 * S + F(a) + F(b) Strap = S * h / 2

End Function

Метод трапеций

Function SSimps(a As Double, b As Double, n As Integer) As Double Dim x As Double, S As Double, Y As Double, h As Double Dim i As Integer

If b < a Then

MsgBox "Значения [a,b] заданы не верно" Exit Function

End If

If n / 2 <> Int(n / 2) Then

MsgBox "Значение n должно быть чётным" Exit Function

End If

h = (b - a) / n: S = 0 For i = 1 To n - 1 Step 2

16

Любимов Е.Б.