|
Текст подпрограммы и версий ( Фортран ) qs82r.zip qs82d.zip |
Тексты тестовых примеров ( Фортран ) tqs82r.zip tqs82d.zip |
|
Текст подпрограммы и версий ( Си ) qs82r_c.zip qs82d_c.zip |
Тексты тестовых примеров ( Си ) tqs82r_c.zip tqs82d_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) qs82r_p.zip qs82e_p.zip |
Тексты тестовых примеров ( Паскаль ) tqs82r_p.zip tqs82e_p.zip |
Вычисление определенного N - кратного (2 ≤ N ≤ 15) интеграла по прямоугольному параллелепипеду методом Гаусса.
QS82R вычисляет N - кратный интеграл по квадратурной формуле
b1 b2 bN
∫ ∫ ... ∫ f (x1, x2, ... , xN) dx1 dx2 ... dxN ≈
a1 a2 aN
N k1 k2 kN
≈ ( ∏ ( bi - ai )/2 ) ∑ ∑ ... ∑ cn1 cn2 ... cnN *
i=1 n1=1 n2=1 nN=1
* f ( ( b1 - a1 )/2 xn1 + ( a1 + b1 )/2 , ( b2 - a2 )/2 xn2 + ( a2 + b2 )/2 ,
... , ( bN - aN )/2 xnN + ( aN + bN )/2 ) ,
где 2 ≤ ki ≤ 128, а xni и cni ( ni = 1, 2, ..., ki ) соответственно узлы и веса квадратурной формулы Гаусса для отрезка [-1, 1].
Я.М.Жилейкин, А.Г.Симакин. Набор стандартных программ приближенного вычисления многократных интегралов с помощью квадратурных формул Гаусса. Сб. "Численный анализ на ФОРТРАНе", вып. 19, Изд-во МГУ, 1977.
SUBROUTINE QS82R (RINT, N, A, B, F, NP, X, W)
Параметры
| RINT - | вещественная переменная, содержащая вычисленное значение интеграла; |
| N - | заданная кратность интегрирования (тип: целый); |
| A, B - | вещественные векторы длины N, задающие соответвенно нижние и верхние пределы интегрирования; |
| F - | имя вещественной подпрограммы - функции, вычисляющей подинтегральную функцию f (x); |
| NP - | целый вектоp длины N, задающий число узлов интегрирования по каждой переменной: NP (I) = kI, I = 1, 2, ..., N; |
| X, W - | вещественные двумерные массивы размера N на 64, используемые в подпрограмме как рабочие. |
Версии
| QS82D - | вычисление с удвоенной точностью определенного N - кратного (2 ≤ N ≤ 15) интеграла по прямоугольному параллелепипеду методом Гаусса. |
Вызываемые подпрограммы
| QS80R - | подпрограмма вычисления узлов и весов Гаусса - Лежандра. |
| QS80D - | подпрограмма вычисления с удвоенной точностью узлов и весов Гаусса - Лежандра. |
Замечания по использованию
|
Компоненты вектоpа NP в пределах от 2 до 128. Первый оператор подпрограммы - функции F должен
иметь вид |
FUNCTION F(X)
DIMENSION X(5)
S = 0.
DO 1 I = 1, 5
R = X(I)
1 S = S + R*R
F = EXP (-0.5*S)
RETURN
END
EXTERNAL F
DIMENSION A(5), B(5), NP(5), X(5, 64), W(5, 64)
N = 5
DO 1 I = 1, N
A(I) = -3.
B(I) = 3.
1 NP(I) = 10
CALL QS82R (RINT, N, A, B, F, NP, X, W)
Результат: RINT = 97.6288