Текст подпрограммы и версий ( Фортран ) qse1r.zip |
Тексты тестовых примеров ( Фортран ) tqse1r.zip |
Текст подпрограммы и версий ( Си ) qse1r_c.zip |
Тексты тестовых примеров ( Си ) tqse1r_c.zip |
Текст подпрограммы и версий ( Паскаль ) qse1r_p.zip |
Тексты тестовых примеров ( Паскаль ) tqse1r_p.zip |
Вычисление на равномерной сетке определенного интеграла от быстроосциллирующих функций по квадратурной формуле типа Эйлера.
Подпрограмма QSE1R вычисляет интеграл
a ∫ f(x) eiwx dx = J1M + i J2M , i = √-1 b
на равномерной сетке с помощью квадратурной формулы
интерполяционного типа, точной для многочленов четвертой степени с
весом e iwx .
M - число узлов интегрирования.
SUBROUTINE QSE1R (RINT, A, B, F, R, E, N, IERR)
Параметры
RINT - | вещественный вектоp длины 2 для вычисленных значений J1 (M) и J2 (M); |
A, B - | заданные нижний и верхний пределы интегрирования (тип: вещественный); |
F - | имя вещественной подпрограммы - функции, вычисляющей подинтегральную функцию f (x); |
R - | заданное значение параметра w (тип: вещественный); |
E - | заданная абсолютная погрешность вычисления интеграла (тип: вещественный); |
N - | целая переменная, задающая начальное число узлов интегрирования; |
IERR - | целая переменная для диагностических сообщений: |
IERR = 65 - | когда заданная точность не может быть достигнута при максимально возможном числе узлов (M = 1048576). |
Версии: нет
Вызываемые подпрограммы
UTQS11 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы QSE1R. |
Замечания по использованию
1. |
При E ≤ 0 происходит только один просчет при заданном значении N. | |
2. |
Максимальное значение N, котоpое можно задавать, не должно превосходить 524288. | |
3. |
Если интеграл вычислен с точностью E, то IERR полагается равным нулю. | |
4. |
Если интеграл не может быть вычислен с точностью E, то выдается диагностическое сообщение "заданная точность не может быть достигнута". | |
5. | Если IERR = 65, то N полагается равным -1. |
1. REAL FUNCTION F1(X) 2. REAL FUNCTION F2(X) REAL X REAL X F1 = X**4 F2 = SIN(X/112.) RETURN RETURN END END EXTERNAL F1, F2 DIMENSION RINT(2) REAL RINT, F1, F2 INTEGER IERR A = -1. B = 1. R = -112. E = 0.0000001 N = 10 CALL QSE1R (RINT, A, B, F1, R, E, N, IERR) CALL QSE1R (RINT, -1., 1., F2, -112., .0000001, 10, IERR) Результаты: 1. RINT(1) = -0.0155869200 ; RINT(2) = 0 ; IERR = 0 2. RINT(1) = 0. ; RINT(2) = 0.0000739651 ; IERR = 0