Текст подпрограммы и версий ( Фортран ) de44d.zip |
Тексты тестовых примеров ( Фортран ) tde44d1.zip , tde44d2.zip , tde44d3.zip , tde44d4.zip |
Текст подпрограммы и версий ( Си ) de44d_c.zip |
Тексты тестовых примеров ( Си ) tde44d1_c.zip , tde44d2_c.zip , tde44d3_c.zip , tde44d4_c.zip |
Текст подпрограммы и версий ( Паскаль ) de44e_p.zip |
Тексты тестовых примеров ( Паскаль ) tde44e1_p.zip , tde44e2_p.zip , tde44e3_p.zip , tde44e4_p.zip |
Выполнение одного шага приближенного интегрирования системы обыкновенных дифференциальных уравнений первого порядка методом рядов Чебышёва.
Решается задача Коши для системы M обыкновенных дифференциальных уравнений первого порядка
(1) Y ' = F (x, Y) , Y = ( y1, ... , yM ) , F = ( f1 (x, y1, ... , yM), ... , fM (x, y1, ... , yM) ) , XN ≤ x ≤ XKс начальными условиями, заданными в точке XN :
(2) Y(XN) = YN , YN = ( y10, ... , yM0 ) ,
при условии, что правая часть системы (1) имеет непрерывные ограниченные частные производные по переменным x, Y. Предполагается, что на отрезке [XN, XK] задача (1), (2) имеет единственное решение. Тогда решение задачи Коши и его производная Y'(XN + αΔ) = F(XN + αΔ, Y(XN + αΔ)) = Φ(α) разлагаются на промежутке интегрирования [XN, XK] в равномерно сходящиеся ряды по смещенным многочленам Чебышёва первого рода
∞ 1 (3) Y(XN + αΔ) = ∑ ' ai*[Y] Ti* (α), 0 ≤ α ≤ 1, ai*[Y] = 2/π ∫ Y(XN + αΔ) Ti* (α) / √ (α (1 - α) ) dα , i=0 0 ∞ 1 (4) Φ(α) = ∑ ' ai*[Φ] Ti* (α), 0 ≤ α ≤ 1, ai*[Φ] = 2/π ∫ Φ(α) Ti* (α) / √ (α (1 - α) ) dα . i=0 0
Здесь: штрих у знака суммы означает, что слагаемое с индексом 0 берется с дополнительным множителем 1/2; Ti* (α) - смещенный многочлен Чебышёва первого рода на [0, 1]: Ti* (α) = Ti (2α-1) ; Ti (t) - многочлен Чебышёва первого рода i-го порядка на [-1, 1]; Δ = XK - XN. Если ряд Чебышёва (3) (и ряд (4)) является быстросходящимся, то его сумма на [XN, XK] (и сумма ряда (4)) хорошо приближается частичной суммой некоторого порядка. Эта частичная сумма принимается в качестве приближенного аналитического решения задачи (1), (2) на промежутке [XN, XK]. В противном случае, т.е. при медленной сходимости ряда (3) на интервале [XN, XK], получение аналитического решения в виде одной частичной суммы на всем отрезке интегрирования [XN, XK] может быть затруднительным. Поэтому целесообразно использовать разбиение промежутка интегрирования [XN, XK] на такие элементарные сегменты некоторой длины H: [xs, xs+H], x0 = XN, s = 0, 1, ... , на каждом из которых ряды Чебышёва для решения Y(x) и его производной Y'(x) будут сходиться значительно быстрее. На каждом подобном сегменте решение исходной задачи Коши приближенно представляется в виде (K + 1) - й частичной суммы смещенного ряда Чебышёва
K+1 1 (5) Y (xs + αH) ≈ ∑ ' ai*[Y] Ti*(α) , 0 ≤ α ≤ 1 , ai*[Y] = 2/π ∫ Y(xs + αH) Ti* (α) / √ (α (1 - α) ) dα , i=0 0 а его производная - в виде частичной суммы K-го порядка K 1 (6) Y' (xs + αH) ≈ ∑ ' ai*[Y ' ] Ti*(α) , 0 ≤ α ≤ 1 , ai*[Y ' ] = 2/π ∫ Y ' (xs + αH) Ti* (α) / √ (α (1 - α) ) dα . i=0 0
В этом случае аналитическое решение задачи (1), (2) будет состоять из совокупности частичных сумм рядов Чебышёва, построенных на этих элементарных сегментах. Порядок частичных сумм и элементарные сегменты задаются пользователем при обращении к подпрограмме.
При обращении к подпрограмме DE44D задаются начало элементарного сегмента и его длина. По заданному значению решения в начале X = xs элементарного сегмента [xs, xs + H] подпрограмма DE44D вычисляет значение решения в конце элементарного сегмента, т.е. в узле X + H = xs + H. Одновременно вычисляются коэффициенты Чебышёва ai*[Y] (i = 0, 1, ... , K + 1) на элементарном сегменте [X, X + H] = [xs, xs + H] для решения задачи Коши Y(X + αH), 0 ≤ α ≤ 1, и коэффициенты Чебышёва ai*[Y'] (i = 0, 1, ... , K) его производной Y'(X + αH). Значение H может изменяться от сегмента к сегменту, в общем случае H = Hs.
При разбиении промежутка интегрирования на элементарные сегменты решение задачи на [XN, XK] сводится к определению нескольких наборов коэффициентов ai*[Y], i = 0, 1, ... , K + 1. Коэффициенты ai*[Y] ряда Чебышёва для решения на сегменте [X, X + H] = [xs, xs + H] выражаются через коэффициенты ai*[Φ] ряда Чебышёва его производной Φ(α) = F(xs + αH, Y(xs + αH)), 0 ≤ α ≤ 1, на [X, X + H] = [xs, xs + H], которые, в свою очередь, вычисляются приближенно итерационным способом, исходя из некоторого начального приближения. Вычисления выполняются с помощью квадратурной формулы Маркова на [X, X + H] с K + 1 узлом. При этом один из узлов квадратурной формулы совпадает с X, а остальные K узлов лежат внутри интервала (X, X + H). Количество итераций, которое предписывается выполнить в этом итерационном процессе, задается при обращении к подпрограмме и может меняться от сегмента к сегменту. Если при выбранном H ряды Чебышёва для решения Y(X + αH), 0 ≤ α ≤ 1 , и его производной Y'(X + αH) на элементарном сегменте [X, X + H] = [xs, xs + H] быстро сходятся, то для того, чтобы приближенное решение в конце такого сегмента имело максимальный порядок точности относительно H, необходимо выполнить не менее K итераций; при этом погрешность приближенного решения в конце элементарного сегмента является величиной порядка O(HK + 2) при H --> 0. Если H подобрано достаточно малым, то хорошая точность приближенного решения может быть получена и при меньшем числе итераций. Вообще, число итераций зависит от K и H. С увеличением H число итераций может также возрастать.
Начальное приближение коэффициентов ai*[Φ] ряда Чебышёва для производной на сегменте [X, X + H] = [xs, xs + H] может вычисляться двумя способами. В первом способе начальное приближение определяется только с использованием значения решения в точке X = xs. При этом погрешность начального приближения для всех коэффициентов a0*[Φ], a1*[Φ], ..., aK*[Φ] является величиной O(H2) при H --> 0. Во втором способе начальное приближение определяется через коэффициенты ряда Чебышёва производной решения Φ(α) на предыдущем элементарном сегменте [X - H', X] = [xs - 1, xs], где H' - длина предыдущего элементарного сегмента. В этом случае погрешности начального приближения для коэффициентов a0*[Φ], a1*[Φ], ... , aK*[Φ] имеют, соответственно, порядки O(H), O(H2), ..., O(HK + 1). Заметим, что длина H текущего элементарного сегмента [X, X + H] может быть больше или меньше длины H' предыдущего элементарного сегмента [X - H', X] или равна ей. Второй способ определения начального приближения в некоторых случаях может привести к более быстрой сходимости итерационного процесса и, тем самым, к меньшему числу выполняемых итераций. Второй способ может быть применен только начиная со второго элементарного сегмента [x0 + H0, x1 + H], H0 -длина начального (первого) элементарного сегмента, x1 = x0 + H0. На начальном элементарном сегменте [x0, x0 + H0] всегда применяется исключительно первый способ. Способ выбора начального приближения задается пользователем при обращении к подпрограмме и может меняться от сегмента к сегменту..
В дальнейшем при описании параметров подпрограммы коэффициенты ряда Чебышёва будем называть коэффициентами Чебышёва.
О.Б.Арушанян, С.Ф.Залеткин. Приближенное решение задачи Коши для обыкновенных дифференциальных уравнений методом рядов Чебышёва. Вычислительные методы и программирование: Новые вычислительные технологии (Электронный научный журнал) (17), 121 - 131, 2016.
О.Б.Арушанян, С.Ф.Залеткин. Использование рядов Чебышёва для приближенного аналитического решения обыкновенных дифференциальных уравнений. Вестник Московского университета. Серия 1: Математика. Механика. 5, 52 - 56, 2016.
О.Б.Арушанян, Н.И.Волченскова, С.Ф.Залеткин. Вычисление коэффициентов разложения решения задачи Коши в ряд по многочленам Чебышёва. Вестник Московского университета. Серия 1: Математика. Механика. 5, 24 - 30, 2012.
SUBROUTINE DE44D (F, M, K, INIAPR, IMAX, JSTART, YX, X, XJ0, AU, AJK, H, HD4I, RABC, ALP, ALPN, CMAR, P, S, XP, YP, AJKP, U, ZFI)
Параметры
F - |
имя подпрограммы вычисления значений правой
части дифференциального уравнения. Первый
оператор подпрограммы должен иметь вид: SUBROUTINE F (X, Y , DY, M). Здесь: X, Y - значения независимой и зависимой переменных, соответственно. Вычисленное значение правой части должно быть помещено в DY. B случае системы уравнений, т.е. когда M ≠ 1 , параметры Y и DY представляют массивы длины M (тип параметров X, Y и DY: с двойной точностью); |
M - | количество уравнений в системе (тип: целый); |
K - | порядок частичной суммы смещенного ряда Чебышёва, с помощью которой аппроксимируется производная решения задачи Коши на элементарном сегменте [X, X + H] разбиения интервала интегрирования; при этом само решение задачи Коши приближается на элементарном сегменте [X, X + H] частичной суммой (K + 1) - го порядка; K ≥ 2. Если обращение к подпрограмме DE44D осуществляется со значением параметра JSTART = 1 (см. ниже), то значение параметра K должно совпадать с его значением при предыдущем обращении к подпрограмме. Если же при очередном обращении к подпрограмме DE44D значение параметра K необходимо изменить, то это обращение должно выполняться при нулевом значении параметра JSTART(JSTART = 0) (см. "Математическое описание", "Замечания по использованию" и "Примеры"; тип: целый); |
INIAPR - |
целый указатель способа выбора начального
приближения коэффициентов Чебышёва для производной
решения на элементарном сегменте [X, X + H]: |
INIAPR=1 - |
для первого способа, когда начальное
приближение определяется только с
использованием значения решения в
начале X элементарного сегмента; |
INIAPR=2 - | для второго способа, когда начальное приближение коэффициентов Чебышёва на текущем элементарном сегменте [X, X + H] (начиная со второго) определяется через коэффициенты Чебышёва, вычисленные на предыдущем элементарном сегменте, т.е. путем экстраполяции коэффициентов с предыдущего сегмента на следующий (см. "Математическое описание"). |
Значение этого параметра может меняться от сегмента к сегменту. | |
IMAX - | целая переменная, задающая количество итераций, которое предполагается выполнить в итерационном процессе вычисления коэффициентов Чебышёва для производной решения задачи Коши на элементарном сегменте [X, X + H], исходя из некоторого начального приближения, способ определения которого задается параметром INIAPR; IMAX ≥ 1. Для получения максимального порядка точности приближенного решения необходимо выполнить не менее K итераций. Значение IMAX может изменяться от сегмента к сегменту (см. "Математическое описание", "Замечания по использованию" и "Примеры"); |
JSTART - |
целый указатель режима использования подпрограммы, имеющий следующие значения: |
0 - |
первое обращение к подпрограмме должно быть исполнено с нулевым значением JSTART;
выполнить первый (начальный) шаг интегрирования для значений независимой и зависимой переменных и
шага интегрирования (длины элементарного сегмента), заданных параметрами X, YX, H,
соответственно. При данном значении параметра JSTART будет применен исключительно первый способ определения
начального приближения для коэффициентов Чебышёва производной решения независимо от значения параметра INIAPR.
Нулевое значение параметра JSTART также может означать, что необходимо выполнить очередной шаг
интегрирования с измененным значением параметра K; |
1 - | выполнить следующий (очередной) шаг интегрирования системы дифференциальных уравнений для значений независимой и зависимой переменных и шага интегрирования (длины элементарного сегмента), заданных параметрами X, YX, H, соответственно. При данном значении параметра JSTART способ определения начального приближения для коэффициентов Чебышёва производной решения определяется параметром INIAPR. При обращении к подпрограмме DE44D со значением JSTART = 1 значение параметра K (см. выше) должно совпадать с его значением при предыдущем обращении к подпрограмме. |
На выходе из подпрограммы параметр JSTART всегда принимает значение, равное 1 (см. "Примеры"); | |
X, YX - | начальное значение аргумента и решения (начало элементарного сегмента X и решение в нем YX); в результате работы подпрограммы в X получается новое значение аргумента, равное X + H (конец элементарного сегмента), а в YX - соответствующее значение решения. В случае системы уравнений, т.е. когда M ≠ 1, YX задается одномерным массивом длины M (тип параметров X, YX: с двойной точностью); |
XJ0 - | одномерный рабочий массив длины K (тип: с удвоенной точностью); |
AU - | двумерный массив размера M * (K + 2). На выходе из подпрограммы содержит коэффициенты Чебышёва ai*[Y] для решения Y(X + αH), 0 ≤ α ≤ 1, на элементарном сегменте [X, X + H]. При этом переменная с индексом AU(N, I + 1) представляет I-й коэффициент Чебышёва N-й компоненты решения yN(x) (I = 0, 1, ... , K + 1) (тип: с удвоенной точностью); |
AJK - | двумерный массив размера M * (K + 1). На выходе из подпрограммы содержит коэффициенты Чебышёва ai*[Y'] производной решения Y'(X + αH), 0 ≤ α ≤ 1, на элементарном сегменте [X, X + H]. При этом переменная с индексом AJK(N, I + 1) представляет I-й коэффициент Чебышёва N-й компоненты производной решения y'N(x) (I = 0, 1, ... , K). Если при JSTART = 1 (т.е. при повторных обращениях к подпрограмме) параметр INIAPR = 2, то содержащиеся в массиве AJK при входе в подпрограмму коэффициенты Чебышёва производной решения, вычисленные на предыдущем элементарном сегменте [X - H', X] во время предыдущего обращения к подпрограмме DE44D, используются в подпрограмме при вычислении коэффициентов Чебышёва производной решения на текущем элементарном сегменте [X, X + H]. Заметим, что длина H текущего элементарного сегмента может быть больше или меньше длины H' предыдущего сегмента [X - H', X] или равна ей. Независимо от значения параметра INIAPR при повторных обращениях к подпрограмме значения массива AJK при входе в подпрограмму обязательно запоминаются в массиве AJKP и могут быть снова доступны на выходе из подпрограммы (тип: с удвоенной точностью); |
H - | длина текущего элементарного сегмента [X, X + H]. Значение H может быть переменной величиной и изменяться от сегмента к сегменту (тип: с двойной точностью); |
HD4I - | одномерный рабочий массив длины K + 1 (тип: с двойной точностью); |
RABC, - ALP, ALPN | одномерные рабочие массивы длины K (тип: с двойной точностью); |
CMAR - | двумерный рабочий массив размера K * K (тип: с двойной точностью); |
P - | одномерный рабочий массив размера (K + 2) * (K - 1) / 2 (тип: с двойной точностью); |
S - | одномерный рабочий массив размера (K + 3) * K / 2 (тип: с двойной точностью); |
XP, YP - | переменная и одномерный массив длины M, соответственно. На выходе из подпрограммы содержат начальные значения аргумента и решения, т.е. те значения, которые имели параметры X, YX на входе в подпрограмму. Таким образом, на выходе из подпрограммы DE44D границы элементарного сегмента, к которому относятся вычисленные подпрограммой коэффициенты Чебышёва решения и коэффициенты Чебышёва его производной и содержащиеся в массивах AU и AJK соответственно, показываются параметрами XP и X, а именно: параметр XP содержит начало сегмента, а параметр X содержит конец этого сегмента (тип: с двойной точностью); |
AJKP - | двумерный массив размера M * (K + 1). Если обращение к подпрограмме было выполнено со значением JSTART = 1 (т.е. при повторных обращениях к подпрограмме), то на выходе из подпрограммы содержит коэффициенты Чебышёва производной решения, относящиеся к предыдущему элементарному сегменту [X - H', X]; тем самым значение этого параметра определено только при повторных обращениях к подпрограмме (тип: с двойной точностью); |
U - | двумерный рабочий массив размера M * K (тип: с двойной точностью); |
ZFI - | двумерный рабочий массив размера M * (K + 3) (тип: с двойной точностью). |
Версии: нет
Вызываемые подпрограммы: нет
DE44D использует рабочие подпрограммы DE70DK, DE70DH, DE70D0, DE70DI, DE70DF, DE70DQ, DE71DE, DE70DP, DE71DT, DE71DP, DE71DI, DE71DF, DE71DS, DE70DA, DE70DC. |
Замечания по использованию
Разбиение промежутка интегрирования на элементарные сегменты (шаги) выполняется для того, чтобы на каждом таком сегменте ряды Чебышёва для решения и его производной были быстросходящимися рядами. Другими словами, длина элементарных сегментов, задаваемая параметром H, подбирается таким образом, чтобы убывание коэффициентов этих рядов Чебышёва на элементарном сегменте [X, X + H] происходило достаточно быстро, вследствие чего можно было бы считать частичные суммы этих рядов близкими к многочленам наилучшего равномерного приближения на элементарном сегменте [X, X + H] для решения и его производной. Порядок этих частичных сумм задается параметром K. Если начальное приближение для коэффициентов Чебышёва функции Φ(α) определяется первым способом (т.е. при INIAPR = 1), то для получения максимального порядка точности приближенного решения в конце элементарного сегмента [X, X + H] необходимо выполнить в итерационном процессе не менее K итераций; тогда IMAX≥K. Если начальное приближение коэффициентов Чебышёва функции Φ(α) определяется вторым способом (т.е. при INIAPR = 2), то для получения максимального порядка точности приближенного решения необходимо выполнить в итерационном процессе не менее K + 1 итераций; в этом случае IMAX ≥ K + 1. Однако в некоторых случаях при втором способе определения начального приближения итерационный процесс может сойтись за значительно меньшее число итераций. Если длина H элементарного сегмента [X, X + H] подобрана достаточно малой, то хорошая точность приближенного решения может быть получена и с существенно меньшим числом итераций при любом способе выбора начального приближения. Вообще, число итераций зависит от K и H. С увеличением H число итераций может также возрастать. Если правая часть дифференциального уравнения не зависит от переменной Y, т.е. дифференциальное уравнение имеет вид Y'= F(X), то число итераций можно положить равным 1 при любых H и K, удовлетворяющих описанным выше условиям. В этом случае параметр IMAX = 1. Как следует из вышеописанного, управлять точностью приближенного решения задачи Коши можно с помощью четырех параметров H, K, IMAX, INIAPR, подбирая для любой конкретной задачи и для каждого элементарного сегмента наиболее подходящий набор их значений. При работе подпрограммы значения параметров M, K, INIAPR, IMAX, H сохраняются. При многократном использовании подпрограммы DE44D для вычисления коэффициентов Чебышёва решения задачи Коши (1), (2) и его производной на последовательности элементарных сегментов, образующей промежуток интегрирования [XN, XK] системы дифференциальных уравнений, значения параметров M, K, YX, X, AU, AJK, HD4I, RABC, ALP, ALPN, CMAR, P, S не должны изменяться в вызывающей программе между последовательными обращениями к подпрограмме. Подпрограмма DE44D использует общий блок с именем COM70D. Поэтому, если вызывающая (главная) программа содержит хотя бы одно обращение к подпрограмме DE44D со значением параметра JSTART = 1 (и, следовательно, число обращений к DE44D более одного), то данный общий блок должен быть описан в вызывающей (главной) программе в операторе COMMON, например, таким способом: COMMON / COM70D / WC1, WC2, WC3, LASN, HD2, HD4, HOLD Глобальные (общие) переменные, составляющие содержание общего блока, описываются как переменные с двойной точностью: DOUBLE PRECISION WC1, WC2, WC3, HD2, HD4, HOLD а переменная LASN - как целая переменная (явно или неявно): INTEGER LASN Пользователю не рекомендуется применять для своих целей общий блок с указанным именем (пользователь не должен изменять содержимое указанных переменных из данного блока). Если вызывающая программа содержит одно обращение к подпрограмме DE44D со значением параметра JSTART = 0 и при этом других обращений к DE44D нет (как в первом примере), или если вызывающая программа содержит несколько обращений к DE44D и при этом все обращения осуществляются с нулевым значением параметра JSTART (как в четвертом примере), то указанный общий блок описывать в вызывающей программе вовсе не обязательно (см. "Примеры использования"). |
Примеры использования
Использование подпрограммы DE44D иллюстрируется на четырех примерах. Во всех примерах решаются задачи Коши для одной и той же системы обыкновенных дифференциальных уравнений.
(7) y'1 = -2q (y2-1) + (1 -e1-y1+cos q(2x-1) ) / (x+1), y'2 = 2q (y1-1) + ( 1 -e1-y2+sin q(2x-1) ) / (x+1), q = 0,5.
Частное решение системы (7) имеет вид
y1(x) = 1 + cos q(2x - 1), y2(x) = 1 + sin q(2x - 1).
Функции y1(x), y2(x) разлагаются на отрезке [0, 1] в смещенные ряды Чебышёва, коэффициенты которых выражаются через цилиндрические функции:
∞ (8) y1(x) = 1 + J0 (q) + 2 ∑ (-1)i J2i (q) T2i* (x), i=1 ∞ (9) y2(x) = 1 + 2 ∑ (-1)i J2i+1 (q) T2i+1* (x). i=0
Задачи Коши отличаются начальными условиями. Вычисления во всех четырех примерах на Фортране проводились с 15-16 значащими цифрами.
1) Начальное условие задачи Коши для системы (7)
XN = 0, y1(0) = 1 + cos q, y2(0) = 1 - sin q.
Рассматривается один элементарный сегмент [0, 1]. Выполняется одно обращение к подпрограмме DE44D из начальной точки X = 0 с шагом H = 1. Вычисляются решение YX в конце данного сегмента, т.е. при x = 1, коэффициенты Чебышёва AU решения на данном сегменте и коэффициенты Чебышёва AJK его производной. Приводятся подпрограмма вычисления правой части системы (7), фрагмент вызывающей программы, результаты счета, включая точное значение решения YT в точке x = 1, абсолютную погрешность DELY приближенного решения YX, вычисленного в точке x = 1. Кроме вышеперечисленного приводятся: значения параметров XP, X на выходе из подпрограммы, которые представляют элементарный сегмент [0, 1]; значения параметров H, K, INIAPR, IMAX, при которых были вычислены приближенное решение YX и коэффициенты Чебышёва. Даются также точные значения коэффициентов Чебышёва на данном сегменте для компонент решения y1(x), y2(x) в (8), (9) и абсолютные погрешности их приближенных значений, вычисленных подпрограммой DE44D.
DOUBLE PRECISION YT,DELY(2), 1 H,XK,Q, 3 YX,X,XJ0,AU,AJK,HD4I,RABC,ALP,ALPN,CMAR,P,S, 4 XP,YP,AJKP,U,ZFI PARAMETER (K=11) DIMENSION YT(2), 1 YX(2),XJ0(K),AU(2,K+2),AJK(2,K+1),HD4I(K+1),RABC(K), 2 ALP(K),ALPN(K),CMAR(K,K),P((K+2)*(K-1)/2),S((K+3)*K/2), 3 YP(2),AJKP(2,K+1),U(2,K),ZFI(2,K+3) EXTERNAL F M= 2 Q= 0.5D0 X= 0. YX(1)= COS(Q)+1.D0 YX(2)= -SIN(Q)+1.D0 H= 1.0D0 XK= X+H YT(1)= COS(Q*(2.D0*XK-1.D0))+1.D0 YT(2)= SIN(Q*(2.D0*XK-1.D0))+1.D0 IMAX= 16 JSTART= 0 INIAPR= 1 CALL DE44D(F,M,K,INIAPR,IMAX,JSTART,YX,X,XJ0,AU,AJK,H, 1 HD4I,RABC,ALP,ALPN,CMAR,P,S,XP,YP,AJKP,U,ZFI) DELY(1)= YT(1)-YX(1) DELY(2)= YT(2)-YX(2) PRINT 51,XP,X PRINT 35, H,K,INIAPR,IMAX,JSTART PRINT 60,YX,YT,DELY KP2= K+2 KP1= K+1 DO 20 L=1,M PRINT 85,(J-1,AU(L,J),AJK(L,J),J=1,KP1), KP1,AU(L,KP2) 20 CONTINUE SUBROUTINE F(X,Y,Z,M) DOUBLE PRECISION X,Y(2),Z(2),R,Q Q= 0.5D0 R = 2.D0*X-1.D0 Z(1)= -2.D0*Q*(Y(2)-1.D0)+(1.D0-DEXP(1.D0-Y(1)+DCOS(Q*R)))/(1.D0+X) Z(2)= 2.D0*Q*(Y(1)-1.D0)+(1.D0-DEXP(1.D0-Y(2)+DSIN(Q*R)))/(1.D0+X) RETURN END Результаты: ---------------------------------------------------------------- XP= .0000000000000000D+00 X= .1000000000000000D+01 H= .1000000000000000D+01 K=11 INIAPR=1 IMAX=16 JSTART=1 YX= .1877582561890373D+01 .1479425538604203D+01 YT= .1877582561890373D+01 .1479425538604203D+01 DELTA Y = .2220446049250313D-15 .0000000000000000D+00 COEFFICIENTS AU AND AJK ON 1 SEGMENT ---------------------------------------------------------------- Number of Chebyshev coefficients for 1 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .3876939614481626D+01 -.8381458775717082D-15 1 -.4585666969845331D-16 -.4845369153497486D+00 2 -.6120804691736534D-01 -.6547191987778950D-15 3 -.2775557561562891D-16 .5127459989174128D-02 4 .3214729527285557D-03 -.3216522913903480D-15 5 -.9412738329658138D-17 -.1610725448276222D-04 6 -.6721369257266663D-06 -.1333975247971853D-15 7 -.4137513937923756D-17 .2403173467777737D-07 8 .7516446311980316D-09 -.1754713453532009D-16 9 .2682270999638617D-18 -.2089352055964174D-10 10 -.5226345925825359D-12 -.2720331013401911D-16 11 -.6182570485004343D-18 .1186314365969263D-13 12 .2471488262435964D-15 ---------------------------------------------------------------- Number of Chebyshev coefficients for 2 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .2000000000000000D+01 .1876939614481626D+01 1 .4845369153497479D+00 -.3436311023057026D-15 2 -.8447459582967137D-17 -.6120804691736582D-01 3 -.5127459989174504D-02 -.2760514256419655D-15 4 -.1930811603266178D-16 .3214729527282392D-03 5 .1610725448270591D-04 .3287843088062292D-16 6 .0000000000000000D+00 -.6721369258790109D-06 7 -.2403173465988319D-07 .3287843088062292D-16 8 .9050547041412199D-18 .7516445977185249D-09 9 .2089353515759578D-10 .3916680348103885D-17 10 .6757967666373710D-17 -.5226679549233393D-12 11 -.1187881715734862D-13 -.2664020263068445D-15 12 -.5550042214725927D-17 ************************************************************************************** Number of Chebyshev coefficients for 1 component ---------------------------------------------------------------------------- coefficient approximate exact absolute error -------------------------------------------------------------------------------------- 0 .3876939614481626D+01 .3876939614481626D+01 .0000000000000000D+00 1 -.4585666969845331D-16 .0000000000000000D+00 .4585666969845331D-16 2 -.6120804691736534D-01 -.6120804691736528D-01 .6245004513516506D-16 3 -.2775557561562891D-16 .0000000000000000D+00 .2775557561562891D-16 4 .3214729527285557D-03 .3214729527285751D-03 .1946142899611480D-16 5 -.9412738329658138D-17 .0000000000000000D+00 .9412738329658138D-17 6 -.6721369257266663D-06 -.6721369257237697D-06 .2896535042254487D-17 7 -.4137513937923756D-17 .0000000000000000D+00 .4137513937923756D-17 8 .7516446311980316D-09 .7516446309595219D-09 -.2385096714138463D-18 9 .2682270999638617D-18 .0000000000000000D+00 -.2682270999638617D-18 10 -.5226345925825359D-12 -.5226354721645607D-12 -.8795820247308316D-18 11 -.6182570485004343D-18 .0000000000000000D+00 .6182570485004343D-18 12 .2471488262435964D-15 .2476765118959866D-15 .5276856523901907D-18 ----------------------------------------------------------------------------------------- Number of Chebyshev coefficients for 2 component ---------------------------------------------------------------------------- coefficient approximate exact absolute error -------------------------------------------------------------------------------------- 0 .2000000000000000D+01 .2000000000000000D+01 .0000000000000000D+00 1 .4845369153497479D+00 .4845369153497477D+00 -.1665334536937735D-15 2 -.8447459582967137D-17 .0000000000000000D+00 .8447459582967137D-17 3 -.5127459989174504D-02 -.5127459989174487D-02 .1734723475976807D-16 4 -.1930811603266178D-16 .0000000000000000D+00 .1930811603266178D-16 5 .1610725448270591D-04 .1610725448271494D-04 .9032759349519859D-17 6 .0000000000000000D+00 .0000000000000000D+00 .0000000000000000D+00 7 -.2403173465988319D-07 -.2403173465552604D-07 .4357150715565922D-17 8 .9050547041412199D-18 .0000000000000000D+00 -.9050547041412199D-18 9 .2089353515759578D-10 .2089353517865796D-10 .2106217358883670D-19 10 .6757967666373710D-17 .0000000000000000D+00 -.6757967666373710D-17 11 -.1187881715734862D-13 -.1188370792446492D-13 -.4890767116303012D-17 12 -.5550042214725927D-17 .0000000000000000D+00 .5550042214725927D-17
2) Начальное условие задачи Коши для системы (7)
XN = - 0,5, y1(XN) = 1 + cos q (2 * XN - 1), y2(XN) = 1 + sin q (2 * XN - 1).
Рассматриваются два элементарных сегмента: [- 0,5, 0] и [0, 1]. Выполняются два обращения к подпрограмме DE44D. Первое обращение осуществляется из начальной точки X = - 0,5 с шагом H = 0,5. Второе обращение осуществляется из точки X = 0 с шагом H = 1. Приводятся фрагмент вызывающей программы и результаты счета. В качестве выходных данных, полученных после каждого обращения к подпрограмме DE44D, приводятся: значения параметров XP, X (которые последовательно представляют границы каждого из двух элементарных сегментов); значения параметров H, K, INIAPR, IMAX, при которых было вычислено приближенное значение решения YX в конце каждого элементарного сегмента; приближенное значение решения YX в конце каждого элементарного сегмента; точное значение решения YT в конце каждого элементарного сегмента и абсолютная погрешность DELY приближенного значения YX. После этого для каждого элементарного сегмента приводятся приближенные значения коэффициентов Чебышёва AU для компонент решения y1(x), y2(x) и приближенные значения коэффициентов Чебышёва AJK их производных y'1(x), y'2(x). Даются также точные значения коэффициентов Чебышёва решения в (8), (9) и абсолютные погрешности приближенных значений AU, вычисленных за два обращения к подпрограмме DE44D.
DOUBLE PRECISION YT,DELY(2), 1 H,XK,Q, 3 YX,X,XJ0,AU,AJK,HD4I,RABC,ALP,ALPN,CMAR,P,S, 4 XP,YP,AJKP,U,ZFI PARAMETER (K=11) DIMENSION YT(2), 1 YX(2),XJ0(K),AU(2,K+2),AJK(2,K+1),HD4I(K+1),RABC(K), 2 ALP(K),ALPN(K),CMAR(K,K),P((K+2)*(K-1)/2),S((K+3)*K/2), 3 YP(2),AJKP(2,K+1),U(2,K),ZFI(2,K+3) C__________________________________________________ C DOUBLE PRECISION WC1,WC2,WC3,HD2,HD4,HOLD COMMON /COM70D/ WC1,WC2,WC3,LASN,HD2,HD4,HOLD C__________________________________________________ C EXTERNAL F M= 2 Q= 0.5D0 X= -0.5D0 YX(1)= COS(Q*(2.D0*X-1.D0))+1.D0 YX(2)= SIN(Q*(2.D0*X-1.D0))+1.D0 H= 0.5D0 XK= X+H YT(1)= COS(Q*(2.D0*XK-1.D0))+1.D0 YT(2)= SIN(Q*(2.D0*XK-1.D0))+1.D0 IMAX= 14 JSTART= 0 INIAPR= 1 CALL DE44D(F,M,K,INIAPR,IMAX,JSTART,YX,X,XJ0,AU,AJK,H, 1 HD4I,RABC,ALP,ALPN,CMAR,P,S,XP,YP,AJKP,U,ZFI) DELY(1)= YT(1)-YX(1) DELY(2)= YT(2)-YX(2) PRINT 51,XP,X PRINT 35, H,K,INIAPR,IMAX,JSTART PRINT 60,YX,YT,DELY NX= 1 GO TO 15 C_______________________________________ C 1 H= 1.D0 XK= X+H YT(1)= COS(Q*(2.D0*XK-1.D0))+1.D0 YT(2)= SIN(Q*(2.D0*XK-1.D0))+1.D0 IMAX= 16 CALL DE44D(F,M,K,INIAPR,IMAX,JSTART,YX,X,XJ0,AU,AJK,H, 1 HD4I,RABC,ALP,ALPN,CMAR,P,S,XP,YP,AJKP,U,ZFI) DELY(1)= YT(1)-YX(1) DELY(2)= YT(2)-YX(2) PRINT 51,XP,X PRINT 35, H,K,INIAPR,IMAX,JSTART PRINT 60,YX,YT,DELY NX= 2 15 KP2= K+2 KP1= K+1 DO 20 L=1,M PRINT 85,(J-1,AU(L,J),AJK(L,J),J=1,KP1), KP1,AU(L,KP2) 20 CONTINUE GO TO (1,2),NX 2 PRINT 180 SUBROUTINE F(X,Y,Z,M) DOUBLE PRECISION X,Y(2),Z(2),R,Q Q= 0.5D0 R = 2.D0*X-1.D0 Z(1)= -2.D0*Q*(Y(2)-1.D0)+(1.D0-DEXP(1.D0-Y(1)+DCOS(Q*R)))/(1.D0+X) Z(2)= 2.D0*Q*(Y(1)-1.D0)+(1.D0-DEXP(1.D0-Y(2)+DSIN(Q*R)))/(1.D0+X) RETURN END Результаты: ---------------------------------------------------------------- RESULTS AFTER THE FIRST CALL SUBROUTINE DE44D XP= -.5000000000000000D+00 X= .0000000000000000D+00 H= .5000000000000000D+00 K=11 INIAPR=1 IMAX=14 JSTART=1 YX= .1877582561890373D+01 .5205744613957970D+00 YT= .1877582561890373D+01 .5205744613957970D+00 DELTA Y = .0000000000000000D+00 .0000000000000000D+00 ---------------------------------------------------------------- COEFFICIENTS AU AND AJK ON 1 SEGMENT ---------------------------------------------------------------- Number of Chebyshev coefficients for 1 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .3440601623170462D+01 .1342059372335287D+01 1 .1690818267858915D+00 -.1814968541164727D+00 2 -.1137320976131721D-01 -.1059524195184482D-01 3 -.4420444436200430D-03 .4745020646026972D-03 4 .1483978914782698D-04 .1382469503621041D-04 5 .3457975458437643D-06 -.3711881277662207D-06 6 -.7735964763302993D-08 -.7206797540160214D-08 7 -.1287287390210027D-09 .1381808723230371D-09 8 .2159545790970223D-11 .2011845015939279D-11 9 .2794812154524764D-13 -.3005829905724372D-13 10 -.3753036123793196D-15 -.4197353185506070D-15 11 -.4769719528984170D-17 -.3401006689815467D-16 12 -.3542715301891111D-18 ---------------------------------------------------------------- Number of Chebyshev coefficients for 2 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .6579406276647125D+00 .1440601623170462D+01 1 .1814968541164724D+00 .1690818267858918D+00 2 .1059524195184448D-01 -.1137320976131710D-01 3 -.4745020646027070D-03 -.4420444436198796D-03 4 -.1382469503643224D-04 .1483978914786932D-04 5 .3711881278164416D-06 .3457975459519126D-06 6 .7206797388126834D-08 -.7735964788347499D-08 7 -.1381807922053367D-09 -.1287286781754800D-09 8 -.2011821717662790D-11 .2159575151355637D-11 9 .3000002286107092D-13 .2791175493857545D-13 10 .3489962089936113D-15 -.4264946414696963D-15 11 -.4846530016701094D-17 -.7941780913456320D-17 12 -.8272688451516999D-19 ---------------------------------------------------------------- RESULTS AFTER THE SECOND CALL SUBROUTINE DE44D XP= .0000000000000000D+00 X= .1000000000000000D+01 H= .1000000000000000D+01 K=11 INIAPR=1 IMAX=16 JSTART=1 YX= .1877582561890373D+01 .1479425538604203D+01 YT= .1877582561890373D+01 .1479425538604203D+01 DELTA Y = .2220446049250313D-15 .0000000000000000D+00 ---------------------------------------------------------------- COEFFICIENTS AU AND AJK ON 2 SEGMENT ---------------------------------------------------------------- Number of Chebyshev coefficients for 1 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .3876939614481626D+01 -.8381458775717082D-15 1 -.4585666969845331D-16 -.4845369153497486D+00 2 -.6120804691736534D-01 -.6547191987778950D-15 3 -.2775557561562891D-16 .5127459989174128D-02 4 .3214729527285557D-03 -.3216522913903480D-15 5 -.9412738329658138D-17 -.1610725448276222D-04 6 -.6721369257266663D-06 -.1333975247971853D-15 7 -.4137513937923756D-17 .2403173467777737D-07 8 .7516446311980316D-09 -.1754713453532009D-16 9 .2682270999638617D-18 -.2089352055964174D-10 10 -.5226345925825359D-12 -.2720331013401911D-16 11 -.6182570485004343D-18 .1186314365969263D-13 12 .2471488262435964D-15 ---------------------------------------------------------------- Number of Chebyshev coefficients for 2 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .2000000000000000D+01 .1876939614481626D+01 1 .4845369153497479D+00 -.3436311023057026D-15 2 -.8447459582967137D-17 -.6120804691736582D-01 3 -.5127459989174504D-02 -.2760514256419655D-15 4 -.1930811603266178D-16 .3214729527282392D-03 5 .1610725448270591D-04 .3287843088062292D-16 6 .0000000000000000D+00 -.6721369258790109D-06 7 -.2403173465988319D-07 .3287843088062292D-16 8 .9050547041412199D-18 .7516445977185249D-09 9 .2089353515759578D-10 .3916680348103885D-17 10 .6757967666373710D-17 -.5226679549233393D-12 11 -.1187881715734862D-13 -.2664020263068445D-15 12 -.5550042214725927D-17 ************************************************************************************** Number of Chebyshev coefficients for 1 component ---------------------------------------------------------------------------- coefficient approximate exact absolute error -------------------------------------------------------------------------------------- 0 .3876939614481626D+01 .3876939614481626D+01 .0000000000000000D+00 1 -.4585666969845331D-16 .0000000000000000D+00 .4585666969845331D-16 2 -.6120804691736534D-01 -.6120804691736528D-01 .6245004513516506D-16 3 -.2775557561562891D-16 .0000000000000000D+00 .2775557561562891D-16 4 .3214729527285557D-03 .3214729527285751D-03 .1946142899611480D-16 5 -.9412738329658138D-17 .0000000000000000D+00 .9412738329658138D-17 6 -.6721369257266663D-06 -.6721369257237697D-06 .2896535042254487D-17 7 -.4137513937923756D-17 .0000000000000000D+00 .4137513937923756D-17 8 .7516446311980316D-09 .7516446309595219D-09 -.2385096714138463D-18 9 .2682270999638617D-18 .0000000000000000D+00 -.2682270999638617D-18 10 -.5226345925825359D-12 -.5226354721645607D-12 -.8795820247308316D-18 11 -.6182570485004343D-18 .0000000000000000D+00 .6182570485004343D-18 12 .2471488262435964D-15 .2476765118959866D-15 .5276856523901907D-18 ----------------------------------------------------------------------------------------- Number of Chebyshev coefficients for 2 component ---------------------------------------------------------------------------- coefficient approximate exact absolute error -------------------------------------------------------------------------------------- 0 .2000000000000000D+01 .2000000000000000D+01 .0000000000000000D+00 1 .4845369153497479D+00 .4845369153497477D+00 -.1665334536937735D-15 2 -.8447459582967137D-17 .0000000000000000D+00 .8447459582967137D-17 3 -.5127459989174504D-02 -.5127459989174487D-02 .1734723475976807D-16 4 -.1930811603266178D-16 .0000000000000000D+00 .1930811603266178D-16 5 .1610725448270591D-04 .1610725448271494D-04 .9032759349519859D-17 6 .0000000000000000D+00 .0000000000000000D+00 .0000000000000000D+00 7 -.2403173465988319D-07 -.2403173465552604D-07 .4357150715565922D-17 8 .9050547041412199D-18 .0000000000000000D+00 -.9050547041412199D-18 9 .2089353515759578D-10 .2089353517865796D-10 .2106217358883670D-19 10 .6757967666373710D-17 .0000000000000000D+00 -.6757967666373710D-17 11 -.1187881715734862D-13 -.1188370792446492D-13 -.4890767116303012D-17 12 -.5550042214725927D-17 .0000000000000000D+00 .5550042214725927D-17
3) Начальное условие задачи Коши для системы (7)
XN = - 4/9, y1(XN) = 1 + cos q (2 * XN - 1), y2(XN) = 1 + sin q (2 * XN - 1).
Рассматриваются три элементарных сегмента: [- 4/9, - 1/3], [- 1/3, 0] и [0, 1]. Выполняются три обращения к подпрограмме DE44D. Первое обращение осуществляется из начальной точки X = - 4/9 с шагом H = 1/9. Второе обращение осуществляется из точки X = - 1/3 с шагом H = 1/3. Третье обращение осуществляется из точки X = 0 с шагом H = 1. Приводятся фрагмент вызывающей программы и результаты счета, аналогичные результатам из примера 2. А именно, после каждого обращения к подпрограмме DE44D приводятся: значения параметров XP, X (которые последовательно представляют границы каждого из трех элементарных сегментов); значения параметров H, K, INIAPR, IMAX, при которых было вычислено приближенное значение решения YX в конце каждого элементарного сегмента; приближенное значение решения YX в конце каждого элементарного сегмента; точное значение решения YT в конце каждого элементарного сегмента и абсолютная погрешность DELY приближенного значения YX. После этого для каждого элементарного сегмента приводятся приближенные значения коэффициентов Чебышёва AU для компонент решения y1(x) и y2(x) и приближенные значения коэффициентов Чебышёва AJK их производных y'1(x), y'2(x). Даются также, как и в примерах 1 и 2, точные значения коэффициентов Чебышёва для компонент решения y1(x), y2(x) в (8), (9) и абсолютные погрешности приближенных значений AU, вычисленных за три обращения к подпрограмме DE44D.
DOUBLE PRECISION YT,DELY(2), 1 H,XK,Q, 3 YX,X,XJ0,AU,AJK,HD4I,RABC,ALP,ALPN,CMAR,P,S, 4 XP,YP,AJKP,U,ZFI PARAMETER (K=11) DIMENSION YT(2), 1 YX(2),XJ0(K),AU(2,K+2),AJK(2,K+1),HD4I(K+1),RABC(K), 2 ALP(K),ALPN(K),CMAR(K,K),P((K+2)*(K-1)/2),S((K+3)*K/2), 3 YP(2),AJKP(2,K+1),U(2,K),ZFI(2,K+3) C__________________________________________________ C DOUBLE PRECISION WC1,WC2,WC3,HD2,HD4,HOLD COMMON /COM70D/ WC1,WC2,WC3,LASN,HD2,HD4,HOLD C__________________________________________________ C EXTERNAL F M= 2 Q= 0.5D0 X= -4.D0/9.D0 YX(1)= COS(Q*(2.D0*X-1.D0))+1.D0 YX(2)= SIN(Q*(2.D0*X-1.D0))+1.D0 H= 1.D0/9.D0 XK= X+H YT(1)= COS(Q*(2.D0*XK-1.D0))+1.D0 YT(2)= SIN(Q*(2.D0*XK-1.D0))+1.D0 IMAX= 10 JSTART= 0 INIAPR= 1 CALL DE44D(F,M,K,INIAPR,IMAX,JSTART,YX,X,XJ0,AU,AJK,H, 1 HD4I,RABC,ALP,ALPN,CMAR,P,S,XP,YP,AJKP,U,ZFI) DELY(1)= YT(1)-YX(1) DELY(2)= YT(2)-YX(2) PRINT 51,XP,X PRINT 35, H,K,INIAPR,IMAX,JSTART PRINT 60,YX,YT,DELY NX= 1 GO TO 15 C_______________________________________ C 1 H= 1.D0/3.D0 XK= X+H YT(1)= COS(Q*(2.D0*XK-1.D0))+1.D0 YT(2)= SIN(Q*(2.D0*XK-1.D0))+1.D0 IMAX= 14 CALL DE44D(F,M,K,INIAPR,IMAX,JSTART,YX,X,XJ0,AU,AJK,H, 1 HD4I,RABC,ALP,ALPN,CMAR,P,S,XP,YP,AJKP,U,ZFI) DELY(1)= YT(1)-YX(1) DELY(2)= YT(2)-YX(2) PRINT 51,XP,X PRINT 35, H,K,INIAPR,IMAX,JSTART PRINT 60,YX,YT,DELY NX= 2 GO TO 15 C____________________________________ C 2 H= 1.D0 XK= X+H YT(1)= COS(Q*(2.D0*XK-1.D0))+1.D0 YT(2)= SIN(Q*(2.D0*XK-1.D0))+1.D0 INIAPR= 2 IMAX= 17 CALL DE44D(F,M,K,INIAPR,IMAX,JSTART,YX,X,XJ0,AU,AJK,H, 1 HD4I,RABC,ALP,ALPN,CMAR,P,S,XP,YP,AJKP,U,ZFI) DELY(1)= YT(1)-YX(1) DELY(2)= YT(2)-YX(2) PRINT 51,XP,X PRINT 35, H,K,INIAPR,IMAX,JSTART PRINT 60,YX,YT,DELY C_____________________________________ C NX= 3 15 KP2= K+2 KP1= K+1 DO 20 L=1,M PRINT 85,(J-1,AU(L,J),AJK(L,J),J=1,KP1), KP1,AU(L,KP2) 20 CONTINUE GO TO (1,2,7),NX 7 PRINT 180 SUBROUTINE F(X,Y,Z,M) DOUBLE PRECISION X,Y(2),Z(2),R,Q Q= 0.5D0 R = 2.D0*X-1.D0 Z(1)= -2.D0*Q*(Y(2)-1.D0)+(1.D0-DEXP(1.D0-Y(1)+DCOS(Q*R)))/(1.D0+X) Z(2)= 2.D0*Q*(Y(1)-1.D0)+(1.D0-DEXP(1.D0-Y(2)+DSIN(Q*R)))/(1.D0+X) RETURN END Результаты: ---------------------------------------------------------------- RESULTS AFTER THE FIRST CALL SUBROUTINE DE44D XP= -.4444444444444444D+00 X= -.3333333333333333D+00 H= .1111111111111111D+00 K=11 INIAPR=1 IMAX=10 JSTART=1 YX= .1672412244083057D+01 .2598231468039630D+00 YT= .1672412244083057D+01 .2598231468039630D+00 DELTA Y = .0000000000000000D+00 .5551115123125783D-16 ---------------------------------------------------------------- COEFFICIENTS AU AND AJK ON 1 SEGMENT ---------------------------------------------------------------- Number of Chebyshev coefficients for 1 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .3259577642771028D+01 .1551545968880584D+01 1 .4311513520073859D-01 -.3500177336226899D-01 2 -.4861982706612256D-03 -.5988983460056526D-03 3 -.5545711660907141D-05 .4502125339247721D-05 4 .3126596557984810D-07 .3851337231874479D-07 5 .2139686831364984D-09 -.1737042504057268D-09 6 -.8042014004188514D-12 -.9906458249206440D-12 7 -.3930794794228168D-14 .3252084745161005D-14 8 .1109551986301387D-16 -.8553677514552827D-16 9 -.2979673678896794D-18 .5657502461300923D-16 10 .1877213240659364D-18 .1100465205072787D-16 11 .2778952538062593D-19 -.1100465205072787D-16 12 -.2547373159890711D-19 ---------------------------------------------------------------- Number of Chebyshev coefficients for 2 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .4484540311194163D+00 .1259577642771028D+01 1 .3500177336226915D-01 .4311513520073870D-01 2 .5988983460055490D-03 -.4861982706613022D-03 3 -.4502125339137156D-05 -.5545711660833046D-05 4 -.3851337242727536D-07 .3126596551066612D-07 5 .1737042762446550D-09 .2139686946062657D-09 6 .9906137906678959D-12 -.8042133717864677D-12 7 -.3191029225491270D-14 -.3884177999851843D-14 8 -.1360961952958304D-16 -.7400696266750273D-16 9 -.2681643567825836D-18 .3539242466807369D-16 10 .0000000000000000D+00 .1287828893005438D-16 11 .3252093164155147D-19 .3539242466807369D-16 12 .8192690895387426D-19 ---------------------------------------------------------------- RESULTS AFTER THE SECOND CALL SUBROUTINE DE44D XP= -.3333333333333333D+00 X= .0000000000000000D+00 H= .3333333333333333D+00 K=11 INIAPR=1 IMAX=14 JSTART=1 YX= .1877582561890373D+01 .5205744613957970D+00 YT= .1877582561890373D+01 .5205744613957970D+00 DELTA Y = .2220446049250313D-15 .0000000000000000D+00 ---------------------------------------------------------------- COEFFICIENTS AU AND AJK ON 2 SEGMENT ---------------------------------------------------------------- Number of Chebyshev coefficients for 1 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .3560878355922190D+01 .1228166035689646D+01 1 .1027041948916477D+00 -.1305269403405784D+00 2 -.5444928164752573D-02 -.4284303010126746D-02 3 -.1190773513933555D-03 .1513356134834175D-03 4 .3153920645836441D-05 .2481640034053343D-05 5 .4137024526445963D-07 -.5257751673166060D-07 6 -.7303640647183182D-09 -.5746818142345587D-09 7 -.6842298869205787D-11 .8695928058308124D-11 8 .9059148357471426D-13 .7129077872741058D-13 9 .6602341361826958D-15 -.8543648644457336D-15 10 -.7642834751938701D-17 -.1450798032057166D-16 11 -.1099089418225125D-18 .6277530578691071D-16 12 .4359396235202132D-18 ---------------------------------------------------------------- Number of Chebyshev coefficients for 2 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .7718339643103538D+00 .1560878355922189D+01 1 .1305269403405785D+00 .1027041948916478D+00 2 .4284303010126712D-02 -.5444928164752624D-02 3 -.1513356134832890D-03 -.1190773513932534D-03 4 -.2481640034137636D-05 .3153920645781045D-05 5 .5257751683128037D-07 .4137024535312263D-07 6 .5746817723788492D-09 -.7303640957776988D-09 7 -.8695889189297226D-11 -.6842258154510098D-11 8 -.7128044129027100D-13 .9059612326826894D-13 9 .8390139608562813D-15 .6642093559189322D-15 10 .5309767202021458D-17 -.1738450420944726D-16 11 -.1317007894655095D-18 .2703729167635727D-16 12 .1877589699747032D-18 ---------------------------------------------------------------- RESULTS AFTER THE THIRD CALL SUBROUTINE DE44D XP= .0000000000000000D+00 X= .1000000000000000D+01 H= .1000000000000000D+01 K=11 INIAPR=2 IMAX=17 JSTART=1 YX= .1877582561890373D+01 .1479425538604203D+01 YT= .1877582561890373D+01 .1479425538604203D+01 DELTA Y = .2220446049250313D-15 .4440892098500626D-15 ---------------------------------------------------------------- COEFFICIENTS AU AND AJK ON 3 SEGMENT ---------------------------------------------------------------- Number of Chebyshev coefficients for 1 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .3876939614481625D+01 .3615475432060256D-16 1 .6034262716239636D-17 -.4845369153497474D+00 2 -.6120804691736525D-01 .1201770345564401D-16 3 .4022559466510672D-17 .5127459989174576D-02 4 .3214729527285786D-03 -.3625301014248405D-16 5 -.1689491916593428D-17 -.1610725448268076D-04 6 -.6721369257222414D-06 -.2463171810615505D-17 7 .5171741166521257D-18 .2403173465303723D-07 8 .7516446284827616D-09 -.1694404707687502D-16 9 -.8044930703477510D-18 -.2089345841114034D-10 10 -.5226344719650443D-12 .1201770345564401D-16 11 .2731296239919094D-18 .1192046746143101D-13 12 .2483430721131460D-15 ---------------------------------------------------------------- Number of Chebyshev coefficients for 2 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .2000000000000000D+01 .1876939614481625D+01 1 .4845369153497475D+00 -.5944138410651778D-16 2 -.2172215993233653D-16 -.6120804691736531D-01 3 -.5127459989174487D-02 .1143358953521745D-15 4 .0000000000000000D+00 .3214729527285342D-03 5 .1610725448271508D-04 .1143358953521745D-15 6 .4023406499457927D-18 -.6721369257673855D-06 7 -.2403173465677991D-07 .1046797197534755D-15 8 .6032992166818754D-18 .7516446224518870D-09 9 .2089353676639370D-10 .8537414481965544D-16 10 .9654142719625614D-17 -.5227011382860809D-12 11 -.1187957132468366D-13 -.3007915639653691D-15 12 -.6266490915945189D-17 ************************************************************************************** Number of Chebyshev coefficients for 1 component ---------------------------------------------------------------------------- coefficient approximate exact absolute error -------------------------------------------------------------------------------------- 0 .3876939614481625D+01 .3876939614481626D+01 .4440892098500626D-15 1 .6034262716239636D-17 .0000000000000000D+00 -.6034262716239636D-17 2 -.6120804691736525D-01 -.6120804691736528D-01 -.2775557561562891D-16 3 .4022559466510672D-17 .0000000000000000D+00 -.4022559466510672D-17 4 .3214729527285786D-03 .3214729527285751D-03 -.3469446951953614D-17 5 -.1689491916593428D-17 .0000000000000000D+00 .1689491916593428D-17 6 -.6721369257222414D-06 -.6721369257237697D-06 -.1528365074201978D-17 7 .5171741166521257D-18 .0000000000000000D+00 -.5171741166521257D-18 8 .7516446284827616D-09 .7516446309595219D-09 .2476760320128220D-17 9 -.8044930703477510D-18 .0000000000000000D+00 .8044930703477510D-18 10 -.5226344719650443D-12 -.5226354721645607D-12 -.1000199516399649D-17 11 .2731296239919094D-18 .0000000000000000D+00 -.2731296239919094D-18 12 .2483430721131460D-15 .2476765118959866D-15 -.6665602171594514D-18 ----------------------------------------------------------------------------------------- Number of Chebyshev coefficients for 2 component ---------------------------------------------------------------------------- coefficient approximate exact absolute error -------------------------------------------------------------------------------------- 0 .2000000000000000D+01 .2000000000000000D+01 .4440892098500626D-15 1 .4845369153497475D+00 .4845369153497477D+00 .2220446049250313D-15 2 -.2172215993233653D-16 .0000000000000000D+00 .2172215993233653D-16 3 -.5127459989174487D-02 -.5127459989174487D-02 .0000000000000000D+00 4 .0000000000000000D+00 .0000000000000000D+00 .0000000000000000D+00 5 .1610725448271508D-04 .1610725448271494D-04 -.1389134033497053D-18 6 .4023406499457927D-18 .0000000000000000D+00 -.4023406499457927D-18 7 -.2403173465677991D-07 -.2403173465552604D-07 .1253863533565031D-17 8 .6032992166818754D-18 .0000000000000000D+00 -.6032992166818754D-18 9 .2089353676639370D-10 .2089353517865796D-10 -.1587735736485773D-17 10 .9654142719625614D-17 .0000000000000000D+00 -.9654142719625614D-17 11 -.1187957132468366D-13 -.1188370792446492D-13 -.4136599781266152D-17 12 -.6266490915945189D-17 .0000000000000000D+00 .6266490915945189D-17
Заметим, что во втором и третьем примерах последовательные обращения к подпрограмме DE44D выполнялись при одном и том же значении K (K = 11). При этом изменялись только параметры H, IMAX, INIAPR.
4) Четвертый пример служит иллюстрацией того, как последовательные обращения к подпрограмме DE44D можно выполнять не только с разными значениями параметров H, INIAPR, IMAX, но и с разными значениями параметра K.
Рассматриваются начальные условия и элементарные сегменты из примера 3. Выполняются также, как и в примере 3, три обращения к подпрограмме. Первое обращение осуществляется из начальной точки X = - 4/9 с шагом H = 1/9 со значением параметра K = 6. Второе обращение осуществляется из точки X = - 1/3 с шагом H = 1/3 и со значением параметра K = 8. Третье обращение осуществляется из точки X = 0 с шагом H = 1 и со значением K = 11. Дополнительным и существенным отличием является только то, что каждое последующее обращение к подпрограмме DE44D с новым значением параметра K (отличным от значения K при предыдущем обращении) выполняется с нулевым значением параметра JSTART. Приводится фрагмент вызывающей программы и результаты счета, полностью аналогичные результатам из примера 3. Обратим внимание на то, что в примере 4 дается значение параметра JSTART на входе в подпрограмму DE44D при каждом обращении к ней, в то время как в первых трех примерах приведено значение параметра JSTART на выходе из подпрограммы DE44D, которое всегда полагается равным 1.
DOUBLE PRECISION YT,DELY(2), 1 H,XK,Q, 3 YX,X,XJ0,AU,AJK,HD4I,RABC,ALP,ALPN,CMAR,P,S, 4 XP,YP,AJKP,U,ZFI C C take into consideraitoin: all arraies depending on K C must be described for maximal value K C PARAMETER (K=14) DIMENSION YT(2), 1 YX(2),XJ0(K),AU(2,K+2),AJK(2,K+1),HD4I(K+1),RABC(K), 2 ALP(K),ALPN(K),CMAR(K,K),P((K+2)*(K-1)/2),S((K+3)*K/2), 3 YP(2),AJKP(2,K+1),U(2,K),ZFI(2,K+3) EXTERNAL F M= 2 Q= 0.5D0 X= -4.D0/9.D0 YX(1)= COS(Q*(2.D0*X-1.D0))+1.D0 YX(2)= SIN(Q*(2.D0*X-1.D0))+1.D0 H= 1.D0/9.D0 XK= X+H YT(1)= COS(Q*(2.D0*XK-1.D0))+1.D0 YT(2)= SIN(Q*(2.D0*XK-1.D0))+1.D0 IMAX= 10 JSTARN= 0 JSTART= JSTARN INIAPR= 1 K0= 6 CALL DE44D(F,M,K0,INIAPR,IMAX,JSTART,YX,X,XJ0,AU,AJK,H, 1 HD4I,RABC,ALP,ALPN,CMAR,P,S,XP,YP,AJKP,U,ZFI) DELY(1)= YT(1)-YX(1) DELY(2)= YT(2)-YX(2) PRINT 51,XP,X PRINT 35, H,K0,INIAPR,IMAX,JSTARN PRINT 60,YX,YT,DELY NX= 1 GO TO 15 C_______________________________________ C 1 H=1.D0/3.D0 XK=X+H YT(1)=COS(Q*(2.D0*XK-1.D0))+1.D0 YT(2)=SIN(Q*(2.D0*XK-1.D0))+1.D0 IMAX=14 C C take into consideraitoin: parameter JSTART must be equal to zero C JSTART= JSTARN K0= 8 CALL DE44D(F,M,K0,INIAPR,IMAX,JSTART,YX,X,XJ0,AU,AJK,H, 1 HD4I,RABC,ALP,ALPN,CMAR,P,S,XP,YP,AJKP,U,ZFI) DELY(1)= YT(1)-YX(1) DELY(2)= YT(2)-YX(2) PRINT 51,XP,X PRINT 35, H,K0,INIAPR,IMAX,JSTARN PRINT 60,YX,YT,DELY NX= 2 GO TO 15 C____________________________________ C 2 H= 1.D0 XK= X+H YT(1)= COS(Q*(2.D0*XK-1.D0))+1.D0 YT(2)= SIN(Q*(2.D0*XK-1.D0))+1.D0 IMAX= 17 C C take into consideraitoin: parameter JSTART must be equal to zero C JSTART= JSTARN K0= 11 CALL DE44D(F,M,K0,INIAPR,IMAX,JSTART,YX,X,XJ0,AU,AJK,H, 1 HD4I,RABC,ALP,ALPN,CMAR,P,S,XP,YP,AJKP,U,ZFI) DELY(1)= YT(1)-YX(1) DELY(2)= YT(2)-YX(2) PRINT 51,XP,X PRINT 35, H,K0,INIAPR,IMAX,JSTARN PRINT 60,YX,YT,DELY C_____________________________________ C NX= 3 15 KP2= K0+2 KP1= K0+1 DO 20 L=1,M PRINT 85,(J-1,AU(L,J),AJK(L,J),J=1,KP1), KP1,AU(L,KP2) 20 CONTINUE GO TO (1,2,7),NX 7 PRINT 180 Результаты: ---------------------------------------------------------------- RESULTS AFTER THE FIRST CALL SUBROUTINE DE44D XP= -.4444444444444444D+00 X= -.3333333333333333D+00 H= .1111111111111111D+00 K= 6 INIAPR=1 IMAX=10 JSTART(INITIAL)=0 YX= .1672412244083057D+01 .2598231468039630D+00 YT= .1672412244083057D+01 .2598231468039630D+00 DELTA Y = .0000000000000000D+00 .5551115123125783D-16 ---------------------------------------------------------------- COEFFICIENTS AU AND AJK ON 1 SEGMENT ---------------------------------------------------------------- Number of Chebyshev coefficients for 1 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .3259577642771028D+01 .1551545968880584D+01 1 .4311513520073858D-01 -.3500177336226911D-01 2 -.4861982706612267D-03 -.5988983460055105D-03 3 -.5545711660907279D-05 .4502125339216259D-05 4 .3126596557973977D-07 .3851337247571016D-07 5 .2139687010667553D-09 -.1737042662689598D-09 6 -.8041864179118508D-12 -.9937163058019137D-12 7 -.3943318673817118D-14 ---------------------------------------------------------------- Number of Chebyshev coefficients for 2 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .4484540311194163D+00 .1259577642771028D+01 1 .3500177336226915D-01 .4311513520073857D-01 2 .5988983460055477D-03 -.4861982706611392D-03 3 -.4502125339136118D-05 -.5545711660868353D-05 4 -.3851337242699692D-07 .3126596556156602D-07 5 .1737042545889025D-09 .2139686192033927D-09 6 .9905954592749662D-12 -.8002644364237324D-12 7 -.3175652525491001D-14 ---------------------------------------------------------------- RESULTS AFTER THE SECOND CALL SUBROUTINE DE44D XP= -.3333333333333333D+00 X= .0000000000000000D+00 H= .3333333333333333D+00 K= 8 INIAPR=1 IMAX=14 JSTART(INITIAL)=0 YX= .1877582561890373D+01 .5205744613957970D+00 YT= .1877582561890373D+01 .5205744613957970D+00 DELTA Y = .2220446049250313D-15 .0000000000000000D+00 ---------------------------------------------------------------- COEFFICIENTS AU AND AJK ON 2 SEGMENT ---------------------------------------------------------------- Number of Chebyshev coefficients for 1 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .3560878355922190D+01 .1228166035689646D+01 1 .1027041948916477D+00 -.1305269403405785D+00 2 -.5444928164752573D-02 -.4284303010126728D-02 3 -.1190773513933542D-03 .1513356134833103D-03 4 .3153920645836275D-05 .2481640034024795D-05 5 .4137024526241523D-07 -.5257751683088543D-07 6 -.7303640655228112D-09 -.5746817201190339D-09 7 -.6842307610666473D-11 .8695886756981616D-11 8 .9058215371855849D-13 .7211917694982528D-13 9 .6677701569428266D-15 ---------------------------------------------------------------- Number of Chebyshev coefficients for 2 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .7718339643103538D+00 .1560878355922190D+01 1 .1305269403405785D+00 .1027041948916477D+00 2 .4284303010126709D-02 -.5444928164752629D-02 3 -.1513356134832897D-03 -.1190773513933233D-03 4 -.2481640034137873D-05 .3153920645799276D-05 5 .5257751682984166D-07 .4137024529456894D-07 6 .5746817720318009D-09 -.7303639912233399D-09 7 -.8695880616880116D-11 -.6842291720731732D-11 8 -.7127387209095553D-13 .8998059458989460D-13 9 .8331536536101351D-15 ---------------------------------------------------------------- RESULTS AFTER THE THIRD CALL SUBROUTINE DE44D XP= .0000000000000000D+00 X= .1000000000000000D+01 H= .1000000000000000D+01 K=11 INIAPR=1 IMAX=17 JSTART(INITIAL)=0 YX= .1877582561890373D+01 .1479425538604203D+01 YT= .1877582561890373D+01 .1479425538604203D+01 DELTA Y = .2220446049250313D-15 .2220446049250313D-15 ---------------------------------------------------------------- COEFFICIENTS AU AND AJK ON 3 SEGMENT ---------------------------------------------------------------- Number of Chebyshev coefficients for 1 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .3876939614481625D+01 -.1569281000719097D-15 1 -.2292833484922666D-16 -.4845369153497476D+00 2 -.6120804691736526D-01 -.6521476067500309D-16 3 -.8043989555758339D-18 .5127459989174518D-02 4 .3214729527285773D-03 -.5556197320809309D-16 5 -.2896344459841355D-17 -.1610725448271938D-04 6 -.6721369257264651D-06 .2364915988734007D-17 7 .5171741166521257D-18 .2403173471578882D-07 8 .7516446316505589D-09 -.1211595927752551D-16 9 .1206833720293544D-17 -.2089349702906647D-10 10 -.5226339892409675D-12 -.5556197320809309D-16 11 -.1262772118365752D-17 .1186254057223418D-13 12 .2471362619215454D-15 ---------------------------------------------------------------- Number of Chebyshev coefficients for 2 component --------------------------------------------------- coefficient for Y for Y' ---------------------------------------------------------------- 0 .2000000000000000D+01 .1876939614481625D+01 1 .4845369153497477D+00 .9502354415477643D-16 2 -.2414043899674756D-17 -.6120804691736543D-01 3 -.5127459989174493D-02 .1143358953521745D-15 4 .3620218816564880D-17 .3214729527284956D-03 5 .1610725448271412D-04 .5641239428713640D-16 6 -.2815819860989046D-17 -.6721369257866978D-06 7 -.2403173465678015D-07 .1239920709508735D-15 8 .3620430574801693D-17 .7516446031463121D-09 9 .2089353569386175D-10 .8138292557219318D-17 10 .6275158886438759D-17 -.5226818327111471D-12 11 -.1187913256161698D-13 -.2428680629003310D-15 12 -.5059751310423563D-17 ************************************************************************************** Number of Chebyshev coefficients for 1 component ---------------------------------------------------------------------------- coefficient approximate exact absolute error -------------------------------------------------------------------------------------- 0 .3876939614481625D+01 .3876939614481626D+01 .4440892098500626D-15 1 -.2292833484922666D-16 .0000000000000000D+00 .2292833484922666D-16 2 -.6120804691736526D-01 -.6120804691736528D-01 -.1387778780781446D-16 3 -.8043989555758339D-18 .0000000000000000D+00 .8043989555758339D-18 4 .3214729527285773D-03 .3214729527285751D-03 -.2222614453595284D-17 5 -.2896344459841355D-17 .0000000000000000D+00 .2896344459841355D-17 6 -.6721369257264651D-06 -.6721369257237697D-06 .2695364717281590D-17 7 .5171741166521257D-18 .0000000000000000D+00 -.5171741166521257D-18 8 .7516446316505589D-09 .7516446309595219D-09 -.6910370234844562D-18 9 .1206833720293544D-17 .0000000000000000D+00 -.1206833720293544D-17 10 -.5226339892409675D-12 -.5226354721645607D-12 -.1482923593120654D-17 11 -.1262772118365752D-17 .0000000000000000D+00 .1262772118365752D-17 12 .2471362619215454D-15 .2476765118959866D-15 .5402499744411130D-18 ----------------------------------------------------------------------------------------- Number of Chebyshev coefficients for 2 component ---------------------------------------------------------------------------- coefficient approximate exact absolute error -------------------------------------------------------------------------------------- 0 .2000000000000000D+01 .2000000000000000D+01 .2220446049250313D-15 1 .4845369153497477D+00 .4845369153497477D+00 .5551115123125783D-16 2 -.2414043899674756D-17 .0000000000000000D+00 .2414043899674756D-17 3 -.5127459989174493D-02 -.5127459989174487D-02 .6071532165918825D-17 4 .3620218816564880D-17 .0000000000000000D+00 -.3620218816564880D-17 5 .1610725448271412D-04 .1610725448271494D-04 .8267041565201971D-18 6 -.2815819860989046D-17 .0000000000000000D+00 .2815819860989046D-17 7 -.2403173465678015D-07 -.2403173465552604D-07 .1254105070303896D-17 8 .3620430574801693D-17 .0000000000000000D+00 -.3620430574801693D-17 9 .2089353569386175D-10 .2089353517865796D-10 -.5152037964360332D-18 10 .6275158886438759D-17 .0000000000000000D+00 -.6275158886438759D-17 11 -.1187913256161698D-13 -.1188370792446492D-13 -.4575362847943880D-17 12 -.5059751310423563D-17 .0000000000000000D+00 .5059751310423563D-17
В процессе интегрирования дифференциальных уравнений (1), (2) с помощью подпрограммы DE44D нужно следить за тем, чтобы параметры H, K, INIAPR, IMAX удовлетворяли приведенным выше условиям, сформулированным в "Математическом описании" и в "Замечаниях по использованию". Особенно это относится к длине элементарного сегмента H и параметру K, определяющему порядок используемых частичных сумм рядов Чебышёва для решения и его производной. Необходимо заботиться о том, чтобы указанные ряды Чебышёва на каждом сегменте [X, X + H] длиной H быстро сходились, при этом сумма ряда Чебышёва для решения должна хорошо приближаться частичной суммой порядка K + 1, а сумма ряда Чебышёва для производной должна хорошо приближаться частичной суммой K-го порядка.