|
Текст подпрограммы и версий ( Фортран ) qsf8r.zip qsf8d.zip |
Тексты тестовых примеров ( Фортран ) tqsf8r.zip tqsf8d.zip |
|
Текст подпрограммы и версий ( Си ) qsf8r_c.zip qsf8d_c.zip |
Тексты тестовых примеров ( Си ) tqsf8r_c.zip tqsf8d_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) qsf8r_p.zip qsf8e_p.zip |
Тексты тестовых примеров ( Паскаль ) tqsf8r_p.zip tqsf8e_p.zip |
Вычисление интеграла
b
∫ f (x) sin( wx + φ ) dx
a
методом Лонгмана.
B случае | w (b - a) | ≥ 2π по квадратурной формуле Гаусса с N узлами вычисляются интегралы по отрезкам [a, xa] и [xb, b], где xa и xb = xa + n0 π /|w| - соответственно наименьший и наибольший из n0 + 1 нулей функции sin (wx + φ) на отрезке [a, b]; затем вычисляются интегралы
xa + ( i+1 ) π / | w |
Vi = (-1)i ∫ f (x) sin( wx + φ ) dx
xa + i π / | w |
( i = 0, 1, ..., K - 1, n0 - K, n0 - K + 1, ..., n0 - 1), и за значение интеграла по отрезку [xa, xb] принимается сумма
K-1
(1) ∑ { [ (-1)i Δi V0 + (-1)n0 - 1 Δi Vn0 - i - 1 ] / 2 i + 1 }
i=0
B случае | w (b - a) | < 2π интеграл по отрезку [a, b] вычисляется с помощью квадратурной формулы Гаусса с N узлами.
Longman I.M. A Method for the Numerical Evaluation of Finite Integrals of Oscillatory Functions. - Math. Comput., 1960, Vol. 14, N 69, P. 53-59.
Кукаркин А.Б., Новикова Е.И. O вычислении интегралов от быстроосциллирующих функций методом Лонгмана. - Ж. вычисл.матем. и матем. физ., 1981, т. 21, N 5, 1091-1099.
SUBROUTINE QSF8R (RINT, A, B, F, W, FI, N, K, RA, RB)
Параметры
| RINT - | вещественная переменная, содержащая вычисленное значение интеграла; |
| A, B - | заданные нижний и верхний пределы интегрирования соответственно (тип: вещественный); |
| F - | имя вещественной подпрограммы - функции, вычисляющей подинтегральную функцию f (x); |
| W - | заданное значение параметра w (тип: вещественный); |
| FI - | заданное значение параметра φ (тип: вещественный); |
| N - | заданное число узлов квадратурной формулы Гаусса для вычисления интегралов по отрезкам, внутри которых не содержатся нули функции sin (wx + φ); может принимать только следующие значения: 4, 6, 8, 12, 16, 24 (тип: целый); |
| K - | целая переменная, задающая число членов суммы (1) (K ≥ 2); |
| RA, RB - | вещественные векторы длины N, используемые как рабочие. |
Версии
| QSF8D - |
вычисление с удвоенной точностью интеграла
b
∫ f (x) sin( wx + φ ) dx
a
методом Лонгмана.
|
Вызываемые подпрограммы: нет
Замечания по использованию
|
Если значение K больше n0, где n0 - вычисляемое в подпрограмме число отрезков, концами которых являются соседние нули функции sin (wx + φ), то в (1) K заменяется на n0. При выходе из подпрограммы значение K полагается равным min {K, n0}. В подпрограмме QSF8D параметры RINT, A, B, F, W, FI, RA, RB имеют тип DOUBLE PRECISION. |
FUNCTION F(X)
F = SIN(X)
RETURN
END
DIMENSION RA(5), RB(5)
EXTERNAL F
A = 0.
B = 1.
W = 1000.
FI = 0.
N = 6
K = 5
CALL QSF8R (RINT, A, B, F, W, FI, N, K, RA, RB)
Результат: RINT = -0.0004727794