|
Текст подпрограммы и версий ( Фортран ) de09r.zip , de09d.zip |
Тексты тестовых примеров ( Фортран ) tde09r.zip , tde09d.zip |
|
Текст подпрограммы и версий ( Си ) de09r_c.zip , de09d_c.zip |
Тексты тестовых примеров ( Си ) tde09r_c.zip , tde09d_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) de09r_p.zip , de09e_p.zip |
Тексты тестовых примеров ( Паскаль ) tde09r_p.zip , tde09e_p.zip |
Вычисление решения задачи Коши для системы обыкновенных дифференциальных уравнений первого порядка в конце интервала интегрирования методом Инглэнда.
Решается задача Коши для системы M обыкновенных дифференциальных уравнений
Y ' = F(X,Y) ,
Y = ( y1,..., yM ) , F = ( f1( X, y1,..., yM ),..., fM( X, y1,..., yM ) )
с начальными условиями, заданными в точке XN:
Y(XN) = YN , YN = ( y1 0,..., yM 0 ) , -
методом Инглэнда пятого порядка точности. Решение вычисляется в одной точке XK, которая является концом интервала интегрирования.
Каждая компонента решения вычисляется с контролем точности по
относительной погрешности на тех участках интервала интегрирования,
на которых модуль этой компоненты больше некоторого наперед
заданного числа Р, и по абсолютной погрешности на остальных
участках, т.е. там, где модуль компоненты меньше этого числа. В
качестве абсолютной погрешности решения используется оценка главного
члена асимптотического разложения погрешности метода на одном
шаге, получаемая при вычитании двух выражений, представляющих
приближенные значения решения пятого и четвертого порядка точности.
При этом на каждом шаге интегрирования для определения решения и
его погрешности используется всего шесть вычислений правой части
системы.
| 1. |
Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. - М.: Наука, 1987. |
| 2. | England R. Error estimates for Runge - Kutta type solutions to systems of ordinary differential equations. The Computer Journal. 1969 - v.12, No.2. |
SUBROUTINE DE09R (F, M, XN, YN, XK, HMIN, EPS, P, H, Y, R1,
R2, R3, IERR)
Параметры
| F - |
имя подпрограммы вычисления значений правой части
системы. Первый оператор подпрограммы имеет вид: SUBROUTINE F (X, Y, DY, M). Здесь: X, Y - значение независимой и зависимой переменных, соответственно. Вычисленное значение правой части должно быть помещено в DY. В случае системы уравнений, т.е. когда M ≠ 1 параметры Y и DY представляют одномерные массивы длины М (тип параметров X, Y и DY: вещественный); |
| M - | количество уравнений в системе (тип: целый); |
| XN, YN - | начальные значения аргумента и решения; в случае системы уравнений (т.е. M ≠ 1) YN представляет одномерный массив длины M (тип: вещественный); |
| XK - | значение аргумента, при котором требуется вычислить решение задачи Коши (конец интервала интегрирования); XK может быть больше, меньше или равно XN (тип: вещественный); |
| HMIN - | минимальное значение абсолютной величины шага, которое разрешается использовать при интегрировании данной системы уравнений (тип: вещественный); |
| EPS - | допустимая мера погрешности, с которой требуется вычислить все компоненты решения (тип: вещественный); |
| P - | граница перехода, используемая при оценке погрешности решения (тип: вещественный); |
| H - | вещественная переменная, содержащая начальное значение шага интегрирования; может задаваться с учетом направления интегрирования, т.е. положительным, если XN < XK, отрицательным, если XN > XK, или без всякого учета в виде абсолютной величины; |
| Y - | искомое решение задачи Коши, вычисленное подпрограммой при значении аргумента XK; для системы уравнений (когда M ≠ 1) задается одномерным массивом длины M. В случае совпадения значений параметров XN и XK значение Y полагается равным начальному значению YN (тип: вещественный); |
| R1 - | двумерный вещественный рабочий массив размера М*5; |
| R2, R3 - | одномерные вещественные рабочие массивы длины М; |
| IERR - | целая переменная, значение которой в результате работы подпрограммы полагается равным 65, если какая - нибудь компонента решения не может быть вычислена с требуемой точностью EPS. В этом случае интегрирование системы прекращается; при желании интегрирование системы можно повторить обращением к подпрограмме с новыми значениями параметров HMIN и H. |
Версии
| DE09D - | вычисление решения задачи Коши для системы обыкновенных дифференциальных уравнений первого порядка в конце интервала интегрирования методом Инглэнда с удвоенным числом значащих цифр. При этом параметры XN, YN, XK, HMIN, EPS, P, H, Y, R1, R2, R3 и параметры X, Y и DY в подпрограмме F должны иметь тип DOUBLE PRECISION. |
Вызываемые подпрограммы
| UTDE20 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы DE09R. |
| UTDE21 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы DE09D. |
Замечания по использованию
|
В общем случае заданная точность не гарантируется. При работе подпрограммы значения параметров M, XN, YN, XK, HMIN, EPS, P сохраняются. Если после работы подпрограммы нет необходимости иметь начальное значение решения YN, то параметры YN и Y при обращении к ней можно совместить. При работе подпрограммы счета правой части F значения параметров X, Y и M не должны изменяться. |
y1' = - y1 - 5y2 , y1(0) = 1
y2' = y1 + y2 , y2(0) = 1 , 0 ≤ x ≤ 2
Точное решение системы:
y1 = cos2x - 3 sin2x ,
y2 = cos2x + sin2x
Приводятся подпрограмма вычисления значений правой части и фрагмент вызывающей программы, а также результаты счета.
SUBROUTINE FENGL (X, Y, Z, M)
DIMENSION Y(2), Z(2)
Z(1) = -Y(1) - 5.*Y(2)
Z(2) = Y(1) + Y(2)
RETURN
END
DIMENSION Y(2), YN(2), R1(2, 5), R2(2), R3(2)
EXTERNAL FENGL
M = 2
XN = 0.
YN(1) = 1.
YN(2) = 1.
XK = 1.
HMIN = 1.E-12
EPS = 1.E-10
P = 100.
H = 0.01
CALL DE09R (FENGL, M, XN, YN, XK, HMIN, EPS, P, H, Y, R1, R2,
* R3, IERR)
Y1 = COS(2.) - 3.*SIN(2.)
Y2 = COS(2.) + SIN(2.)
Результаты:
IERR = 0
Y(1) = -3.144039116632 + 00 Y(2) = 4.931505897994-01
Y1 = -3.144039117018 Y2 = 4.931505902741-01