Макрос в Excel
Option Explicit
‘Вычисление Гамма-функции по правилу трапеций
Function Gamma ( dblx As Double ) As Double
Dim dblT As Double ‘Переменная интегрирования
Dim dblTerm As Double ‘ Член суммы
Dim dblTerm1 As Double ‘Первая часть члена суммы
Dim dblTerm2 As Double ‘ Вторая часть члена суммы
Const tStart = 0 ‘Нижний предел интегрирования
Const tEnd = 20 ‘ Верхний предел интегрирования
Const Delt = 0.01 ‘Шаг интегрирования
Const CutOff = 0.000000001 ‘Точность вычисления
‘ Обнуляем переменную суммирования
Gamma = 0
‘Цикл интегрирования, за один цикл вычисляется один член суммы
For dblt = tStart To tEnd Step Delt
‘Вычисляем один член суммы по правилу трапеций
blTerm1 = Exp(-dblt)*dblT^(dblX - 1)
blTerm2 = Exp(-dblt - delT)*(dblT +DelT)^(dblX - 1)
blTerm = Delt*(dblTerm1 +dblTerm2)/2
‘Добавляем полученное значение к результату
Gamma = Gamma + dblTerm
‘Завершаем вычисления, если последний член меньше,
‘ чем первые девять от всей суммы
if dblTerm / Gamma < CutOff Then
‘Прерывание цикла, если точность вычисления ‘достигнута
Exit For
‘Конец оператора if
End if
‘Конец цикла
Next dblT
‘Конец функции
End Function
,
‘Небольшая процедура, используемая при отладке
Sub test()
Dim dblX As Double
Const Pi = 3.1415
‘Тестируемое значение
dblX =1.5
‘Выводим значение, результат и правильный результат
‘ в окно отладки
Debug Prim dblX, Gamma(dblX), Sqr(Pi)/2
Stop
End Sub