|
Текст подпрограммы и версий ( Фортран ) qss2r.zip qss2d.zip |
Тексты тестовых примеров ( Фортран ) tqss2r.zip tqss2d.zip |
|
Текст подпрограммы и версий ( Си ) qss2r_c.zip qss2d_c.zip |
Тексты тестовых примеров ( Си ) tqss2r_c.zip tqss2d_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) qss2r_p.zip qss2e_p.zip |
Тексты тестовых примеров ( Паскаль ) tqss2r_p.zip tqss2e_p.zip |
Вычисление определенного интеграла от векторной функции по обобщенной квадратурной формуле Симпсона.
Подпрограмма QSS2R вычисляет интеграл
B
∫ F(x) dx от векторной функции F(x) = ( f1 (x), ... , fN (x) )
A
с покомпонентной погрешностью
B
ЕРS ( 1 + | ∫ fi (x) dx | )
A
по обобщенной квадратурной формуле Симпсона с шагом h = (B - A)/M, где M - число частичных отрезков разбиения.
Я.М.Жилейкин, М.В.Соколовский. Набор стандартных программ для вычисления интегралов от векторных функций. Сб. "Методы и алгоритмы в численном анализе", Изд-во МГУ, 1981.
SUBROUTINE QSS2R (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 длины 3N; |
| IERR - | целая переменная, служащая для диагностических сообщений: |
| IERR = 65 - | когда заданная точность не может быть достигнута при максимально возможном числе (1048576) частичных отрезков разбиения. |
Версии
| QSS2D - | вычисление с удвоенной точностью определенного интеграла от векторной функции по обобщенной квадратурной формуле Симпсона. |
Вызываемые подпрограммы
| UTQS10 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы QSS2R. |
| UTQS12 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы QSS2D. |
Замечания по использованию
| 1. |
Первый оператор подпрограммы F должен иметь вид: | |
| 2. |
При EPS ≤ 0 происходит только один просчет при заданном значении K. | |
| 3. |
Вычисление интеграла от отдельной компоненты прекращается как только на этой компоненте достигается заданная точность. | |
| 4. |
Если для каких - либо компонент векторной функции заданная погрешность интегрирования не может быть достигнута, то соответствующие компоненты вектоpа IND полагаются равными нулю. | |
| 5. |
Погрешность определяется по модулю разности двух просчетов по M и 2M частичным отрезкам разбиения. Если заданная точность не достигнута, то значение M удваивается. | |
| 6. | В подпрограмме QSS2D параметры RINT, A, B, F, EPS, R имеют тип DOUBLE PRECISION. |
SUBROUTINE FUN(X, Y, I)
DIMENSION Y(1)
Y(1) = X
DO 1 J = 1, 4
1 Y(J + 1) = Y(J)*X
RETURN
END
DIMENSION RINT(5), R(15), IND(5)
EXTERNAL FUN
CALL QSS2R (RINT, 0., 1., FUN, 5, 1.E-6, 1, IND, R, IERR)
Результаты:
RINT IND
5.0000000000-01 1
3.3333333333-01 1
2.5000000000-01 1
2.0000000794-01 16
1.6666668653-01 16
IERR = 0