Текст подпрограммы и версий ( Фортран ) qst2r.zip qst2d.zip |
Тексты тестовых примеров ( Фортран ) tqst2r.zip tqst2d.zip |
Текст подпрограммы и версий ( Си ) qst2r_c.zip qst2d_c.zip |
Тексты тестовых примеров ( Си ) tqst2r_c.zip tqst2d_c.zip |
Текст подпрограммы и версий ( Паскаль ) qst2r_p.zip qst2e_p.zip |
Тексты тестовых примеров ( Паскаль ) tqst2r_p.zip tqst2e_p.zip |
Вычисление определенного интеграла от векторной функции по обобщенной квадратурной формуле трапеций.
Подпрограмма QST2R вычисляет интеграл B ∫ f (x) dx A от векторной функции F(x) = { f i (x) } , i =1, ... , N с покомпонентной погрешностью B ЕРS ( 1 + | ∫ f i (x) dx | ) A
по обобщенной квадратурной формуле трапеций с шагом h = (B - A)/M, где M - число частичных отрезков разбиения.
Я.М.Жилейкин, М.В.Соколовский. Набор стандартных программ для вычисления интегралов от векторных функций, Сб. "Методы и алгоритмы в численном анализе", Изд - во МГУ, 1981.
SUBROUTINE QST2R (RINT, A, B, F, N, EPS, K, IND, R, IERR)
Параметры
RINT - | вещественный вектоp длины N, содержащий вычисленные значения интегралов; |
A, B - | заданные нижний и верхний пределы интегрирования (тип: вещественный); |
F - | имя подпрограммы, вычисляющей подинтегральные функции; |
N - | размерность вектоpа - функции F (x) (тип: целый); |
EPS - | заданная меpа погрешности вычисления интеграла (тип: вещественный); |
K - | целая переменная, задающая начальное число частичных отрезков разбиения; |
IND - | целый вектоp длины N, каждая компонента которого pавна числу частичных отрезков разбиения, при котоpом достигается заданная точность; |
R - | вещественный рабочий вектоp длины 2 N; |
IERR - | целая переменная, служащая для диагностических сообщений: |
IERR=65 - | когда заданная точность не может быть достигнута при максимально возможном числе (1048576) частичных отрезков разбиения. |
Версии
QST2D - | вычисление с удвоенной точностью определенного интеграла от векторной функции по обобщенной квадратурной формуле трапеций. |
Вызываемые подпрограммы
UTQS10 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы QST2R; |
UTQS12 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы QST2D. |
Замечания по использованию
1. |
Первый оператор подпрограммы F должен иметь вид: SUBROUTINE F(X, Y, I ) Здесь: X - аргумент функции F (тип: вещественный); Y - вещественный вектоp длины N вычисленных значений функции F; I - целый вектоp длины N; если его i - ая компонента отлична от нуля, то интеграл от этой компоненты функции F не вычисляется. | |
2. |
При EPS ≤ 0 происходит только один просчет при заданном значении K. | |
3. |
Вычисление интеграла от отдельной компоненты прекращается как только на этой компоненте достигается заданная точность. | |
4. |
Если для каких - либо компонент векторной функции заданная погрешность интегрирования не может быть достигнута, то соответствующие компоненты вектоpа IND полагаются равными нулю. | |
5. |
Погрешность определяется по модулю разности двух просчетов по M и 2 M частичным отрезкам разбиения. Если заданная точность не достигнута, то значение M удваивается. | |
6. | В подпрограмме QST2D параметры RINT, A, B, F, EPS, R имеют тип DOUBLE PRECISION. |
SUBROUTINE FUN(X, Y, I) DIMENSION Y(1), I(1) Y(1) = 1. DO 1 J = 1, 4 1 Y(J + 1) = Y(J)*X RETURN END DIMENSION RINT(5), R(10), IND(5) EXTERNAL FUN CALL QST2R (RINT, 0., 1., FUN, 5, 1.E - 6, 1, IND, R, IERR) Результаты: RINT IND 1.0000000000 + 00 1 5.0000000000 - 01 1 3.3333349227 - 01 512 2.5000023841 - 01 512 2.0000031788 - 01 512 IERR = 0