|
Текст подпрограммы и версий ( Фортран ) qsjac.zip |
Тексты тестовых примеров ( Фортран ) tqsjac.zip |
|
Текст подпрограммы и версий ( Си ) qsjac_c.zip |
Тексты тестовых примеров ( Си ) tqsjac_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) qsjac_p.zip |
Тексты тестовых примеров ( Паскаль ) tqsjac_p.zip |
Вычисление узлов и весов квадратурной формулы Гаусса - Якоби.
Подпрограмма QSJАС вычисляет узлы xi и веса Wi квадратурной формулы Гаусса - Якоби
b
∫ (1 - x)α (1 + x)β f(x) dx ≈
a
N
≈ ∑ Wi f(xi ) по методу Ньютона .
i =1
SUBROUTINE QSJAC (X, W, ALF, BTA, N, A, B, C)
Параметры
| X - | вещественный одномерный массив размерности 512 вычисленных узлов формулы Гаусса - Якоби; |
| W - | вещественный одномерный массив размерности 512 вычисленных весов формулы Гаусса - Якоби; |
|
ALF - BTA | заданные параметры α и β , соответственно, в весовой функции (1 - x)α (1 + x) β (тип: вещественный); |
| N - | заданное число узлов (и весов) интегрирования в формуле Гаусса - Якоби (2 ≤ N ≤ 512, тип: целый); |
| A, B, С - | вещественные одномерные массивы размерности 512, заданных коэффициентов рекуррентного соотношения для полиномов Якоби. |
Версии: нет
Вызываемые подпрограммы
| QSJAC1 - | служебная подпрограмма. |
| QSJAC2 - | вещественная подпрограмма - функция, вычисляющая значение логарифма от гамма - функции ln ( Г (Х) ). |
Замечания по использованию
|
Подпрограмма QSJAC вычисляет узлы и веса квадратурной формулы Гаусса - Якоби N
∑ Wi f(xi )
i =1
с абсолютной погрешностью 10 - 10 и для значений 2 ≤ N ≤ 512. Перед обращением к подпрограмме QSJAC должны быть вычислены коэффициенты Anα , β, Bnα , β, Cnα , β рекуррентного соотношения для полиномов Якоби Jnα , β (x) = ( Anα , β x + Bnα , β ) Jn -1α , β (x) - Cnα , β Jn -2α , β (x)
по формулам:
( α + β + 2n ) ( α + β + 2n - 1 )
Anα , β = ------------------------------------------- ,
2n ( α + β + n )
( α + β ) ( α - β ) ( α + β + 2n - 1 )
Bnα , β = ------------------------------------------------ ,
2n ( α + β + n ) ( α + β + 2n - 2 )
( α + β + 2n ) ( α + 2n - 1 ) ( β + 2n - 1 )
Cnα , β = ------------------------------------------------------ .
n ( α + β + n ) ( α + β + 2n - 2 )
|
DIMENSION X(512), W(512), A(512), B(512), C(512)
REAL ALF, BTA
INTEGER N
ALF = 1.0
BTA = 1.0
N = 8
DO 1 K = 2, 512
A(K) = (ALF + BTA + 2.0*K)*(ALF + BTA + 2.0*K - 1.0)/
*( 2.0*K*(ALF + BTA + K) )
B(K) = (ALF + BTA)*(ALF - BTA)*(ALF + BTA + 2.0*K - 1.0)/
*( 2.0*K*(ALF + BTA + K)*(ALF + BTA + 2.0*K - 2.0) )
C(K) = (ALF + BTA + 2.0*K)*(ALF + 2.0*K - 1.0)*(BTA + 2.0*K - 1.0)/
*( K*(ALF + BTA + K)*(ALF + BTA + 2.0*K - 2.0) )
1 CONTINUE
CALL QSJAC (X, W, ALF, BTA, N, A, B, C)
Результаты:
x1 = 0.9195339081 , w1 = 0.0205900956 ,
x2 = 0.7387738651 , w2 = 0.1021477023 ,
x3 = 0.4779249498 , w3 = 0.2253365549 ,
x4 = 0.1652789576 , w4 = 0.3185923136 ,
x5 = - 0.1652789576 , w5 = 0.3185923136 ,
x6 = - 0.4779249498 , w6 = 0.2253365549 ,
x7 = - 0.7387738651 , w7 = 0.1021477023 ,
x8 = - 0.9195339081 , w8 = 0.0205900956 .