Текст подпрограммы и версий (Паскаль)
de55e_p.zip
Тексты тестовых примеров (Паскаль)
tde55e1_p.zip , tde55e2_p.zip , tde55e3_p.zip , tde55e4_p.zip , tde55e5_p.zip , tde55e6_p.zip

Подпрограмма:  DE55E (модуль DE55E_p)

Назначение

Вычисление коэффициентов разложения решения задачи Коши для обыкновенных дифференциальных уравнений первого порядка и его производной в ряд по смещенным многочленам Чебышёва первого рода (получение аналитического выражения для приближенного решения задачи Коши и его производной в виде частичной суммы смещенного ряда Чебышёва).

Математическое описание

Решается задача Коши для системы 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)  состоит из совокупности частичных сумм рядов Чебышёва, построенных на этих элементарных сегментах. Порядок этих частичных сумм и длина элементарных сегментов задаются пользователем при обращении к подпрограмме. Число NX элементарных сегментов, на которые разбивается промежуток интегрирования, равно [(XK-XN) / H], если длина промежутка интегрирования является целым кратным H. Если длина интервала интегрирования не является целым кратным H, то число элементарных сегментов NX равно [(XK-XN) / H] + 1; в этом случае последний элементарный сегмент считается нестандартным (квадратные скобки означают целую часть числа).

При разбиении промежутка интегрирования на элементарные сегменты решение задачи сводится к определению нескольких наборов коэффициентов ai*[Y], i = 0, 1, ... , K + 1. Коэффициенты ai*[Y] ряда Чебышёва для решения на сегменте [xs, xs + H] выражаются через коэффициенты ai*[Φ] ряда Чебышёва его производной Φ(α) = F(xs + αH, Y(xs + αH)),  0 ≤ α ≤ 1, на  [xs, xs + H], которые, в свою очередь, вычисляются приближенно итерационным способом, исходя из некоторого начального приближения. Вычисления выполняются с помощью квадратурной формулы Маркова на [xs, xs + H] с K + 1 узлом. При этом один из узлов квадратурной формулы совпадает с xs, а остальные K узлов лежат внутри интервала (xs, xs + H). Количество итераций, которое предписывается выполнить в этом итерационном процессе, одинаково для всех сегментов и задается при обращении к подпрограмме. Если при выбранном H ряды Чебышёва для Y(X) = Y(xs + αH),  0 ≤ α ≤ 1  , и его производной на элементарном сегменте [xs, xs + H] быстро сходятся, то для того, чтобы приближенное решение в конце одного такого сегмента имело максимальный порядок точности относительно H, необходимо выполнить не менее K итераций; при этом погрешность приближенного решения в конце элементарного сегмента является величиной порядка O(HK + 2)  при  H --> 0. Если H подобрано достаточно малым, то хорошая точность приближенного решения может быть получена и при меньшем числе итераций. Вообще, число итераций зависит от K и H. С увеличением H число итераций может также возрастать.

Начальное приближение коэффициентов ai*[Φ] ряда Чебышёва для производной на сегменте [xs, xs + H] может вычисляться двумя способами. В первом способе начальное приближение определяется только с использованием значения решения Y(X) в узле xs. При этом погрешность начального приближения для всех коэффициентов a0*[Φ], a1*[Φ], ..., aK*[Φ] является величиной O(H2) при H --> 0. Во втором способе начальное приближение определяется через коэффициенты ряда Чебышёва производной Φ(α) на предыдущем элементарном сегменте [xs - 1, xs]. В этом случае погрешности начального приближения для коэффициентов a0*[Φ], a1*[Φ], ... , aK*[Φ] имеют, соответственно, порядки O(H), O(H2), ..., O(HK + 1). Второй способ определения начального приближения в некоторых случаях может привести к более быстрой сходимости итерационного процесса и, тем самым, к меньшему числу выполняемых итераций. Второй способ может быть применен только начиная со второго элементарного сегмента [x0 + H, x0 + 2H]. На начальном элементарном сегменте [x0, x0 + H] всегда применяется исключительно первый способ. Способ выбора начального приближения задается пользователем при обращении к подпрограмме.

В дальнейшем при описании параметров подпрограммы коэффициенты ряда Чебышёва будем называть коэффициентами Чебышёва.

О.Б.Арушанян, С.Ф.Залеткин. Приближенное решение задачи Коши для обыкновенных дифференциальных уравнений методом рядов Чебышёва. Вычислительные методы и программирование: Новые вычислительные технологии (Электронный научный журнал) (17), 121 - 131, 2016.

О.Б.Арушанян, С.Ф.Залеткин. Использование рядов Чебышёва для приближенного аналитического решения обыкновенных дифференциальных уравнений. Вестник Московского университета. Серия 1: Математика. Механика. 5, 52 - 56, 2016.

О.Б.Арушанян, Н.И.Волченскова, С.Ф.Залеткин. Вычисление коэффициентов разложения решения задачи Коши в ряд по многочленам Чебышёва. Вестник Московского университета. Серия 1: Математика. Механика. 5, 24 - 30, 2012.

Использование

procedure DE55E(F :Proc_F70E; var M :Integer; XN :Extended;
                var YN :Array of Extended; XK :Extended; var K :Integer;
                var INIAPR :Integer; IMAX :Integer; IORDY :Integer;
                var H :Extended; var Y :Array of Extended;
                var NX :Integer; var XS :Array of Extended;
                var AY :Array of Extended; var ADY :Array of Extended;
                var RAB :Array of Extended);

Параметры

F - имя подпрограммы вычисления значений правой части дифференциального уравнения. Первый оператор подпрограммы должен соответствовать процедурному типу:
 
 
       Procedure (X :Extended; var Y :Array of Extended; var Z :Array of Extended; M :Integer);

Здесь: X, Y - значения независимой и зависимой переменных, соответственно. Вычисленное значение правой части должно быть помещено в Z. Для скалярного случая при M = 1  параметры Y и Z представляют собой массивы длины 1. В случае системы уравнений, т.е. когда M ≠ 1 , параметры Y и Z представляют массивы длины M (тип параметров X, Y и Z: Extended);

M - количество уравнений в системе (тип: целый);
XN, YN - начальные значения аргумента и решения; в случае системы уравнений (т.е. когда M ≠ 1) YN представляет массив длины M (тип: с расширенной (Extended) точностью);
XK - конец интервала интегрирования. На отрезке [XN, XK] вычисляется приближенное аналитическое решение задачи Коши в виде одной частичной суммы ряда Чебышёва либо в виде совокупности частичных сумм. XK может быть больше, меньше или равно XN (тип: с расширенной (Extended) точностью);
K - порядок частичной суммы смещенного ряда Чебышёва, с помощью которой аппроксимируется производная решения задачи Коши на каждом элементарном сегменте разбиения интервала интегрирования; при этом само решение задачи Коши приближается на каждом элементарном сегменте частичной суммой (K + 1) - го порядка; K≥2 (см. "Математическое описание" и "Замечания по использованию"; тип: целый);
INIAPR - целый указатель способа выбора начального приближения коэффициентов Чебышёва для производной решения на каждом элементарном сегменте:
INIAPR=1 - для первого способа, когда начальное приближение определяется только с использованием значения решения в начале каждого элементарного сегмента;
INIAPR=2 - для второго способа, когда начальное приближение коэффициентов Чебышёва на текущем элементарном сегменте (начиная со второго) определяется через коэффициенты Чебышёва, вычисленные на предыдущем элементарном сегменте, т.е. путем экстраполяции коэффициентов с предыдущего сегмента на следующий (см. "Математическое описание");
IMAX - целая переменная, задающая количество итераций, которое предполагается выполнить в итерационном процессе вычисления коэффициентов Чебышёва для производной решения задачи Коши на каждом элементарном сегменте, исходя из некоторого начального приближения, способ определения которого задается параметром INIAPR; IMAX≥1. Для получения максимального порядка точности приближенного решения необходимо выполнить не менее K итераций (см. "Математическое описание" и "Замечания по использованию");
IORDY - целая переменная, принимающая следующие значения:
IORDY=0 - если требуется получить приближенное аналитическое представление в виде частичной суммы ряда Чебышёва только для решения задачи Коши; в этом случае вычисляются коэффициенты разложения только для решения задачи Коши;
IORDY=1 - если требуется получить аналитическое представление в виде частичной суммы как для решения задачи Коши, так и для его производной; в этом случае вычисляются коэффициенты разложения для решения и его производной;
    для решения Y(X) на каждом элементарном сегменте строится частичная сумма (K+1)-го порядка, а для его производной Y'(X) - частичная сумма K-го порядка;
H - переменная с расширенной (Extended) точностью, содержащая значение длины элементарных сегментов, на которые разбивается интервал интегрирования (диаметр разбиения промежутка интегрирования или аналог шага интегрирования для одношаговых методов). Предполагается, что на каждом элементарном сегменте ряды Чебышёва для решения и его производной являются быстросходящимися рядами. Может задаваться с учетом направления интегрирования, т.е. положительным, если XK > XN, отрицательным, если XK < XN , или без такого учета в виде абсолютной величины;
Y - на выходе из подпрограммы содержит значение решения задачи Коши, вычисленное подпрограммой при значении аргумента XK. Для системы уравнений (когда M ≠ 1) задается массивом длины M. В случае совпадения значений параметров XN и XK значение Y полагается равным начальному значению YN (тип: с расширенной (Extended) точностью);
NX - целая переменная; на выходе из подпрограммы содержит число элементарных сегментов, на которые разбивается интервал интегрирования [XN, XK] (см. "Математическое описание");
XS - одномерный массив длиной NX + 1. На выходе из подпрограммы содержит точки x0 = XN, xs = x0 + s*H, s = 1, ... , NX - 1, xNX = XK, задающие разбиение интервала [XN, XK] интегрирования и являющиеся границами элементарных сегментов. При этом XS(S + 1) = x0 + S*;H, S=0,1, ... , NX - 1, XS(NX + 1) = XK. Если XN < XK, то H > 0 и в массиве XS точки деления располагаются в порядке возрастания. Если XK < XN, то при работе подпрограммы значение H будет выбрано отрицательным; в этом случае нумерация точек разбиения интервала интегрирования ведется справа налево и в массиве XS точки деления будут расположены в порядке убывания: XS(1) = XN, XS(S+1) = x0 - S*|H|, S=1, ... , NX - 1, XS(NX + 1) = XK (тип: с расширенной (Extended) точностью);
AY - двумерный массив с измерениями M, (K + 2) *  NX. На выходе из подпрограммы содержит коэффициенты Чебышёва для решения Y(X). При этом переменная с индексом AY (N, (S - 1) * (K + 2) + I + 1) содержит I-й коэффициент Чебышёва для N-й компоненты решения yN(X) на S-м элементарном сегменте, I = 0, 1, ... , K + 1; S = 1, 2, ... , NX. Массив представляет последовательность групп столбцов по K + 2 столбца в каждой группе; число групп равно NX, а длина всех столбцов одинакова и равна M. Номер группы - это номер элементарного сегмента, на которые разбивается интервал интегрирования, а номер столбца в каждой группе (уменьшенный на единицу) - это номер коэффициента Чебышёва для решения Y(X) на элементарном сегменте, соответствующем этой группе. Заметим, что удобно передавать подпрограмме DE55E в качестве фактического параметра, соответствующего данному формальному параметру AY, массив, описываемый в вызывающей программной единице как трехмерный массив BY с измерениями M, K + 2, NX. При этом переменная с индексом BY (N, I + 1, S) будет содержать I-й коэффициент Чебышёва N-й компоненты решения yN(X) на S-м элементарном сегменте [xS-1,  xS]. Другими словами, индексы этого массива (индексные выражения N, I+ 1, S) имеют следующие значения:
   N - номер компоненты решения, N = 1, 2, ... , M;
   I - номер коэффициента Чебышёва, I = 0, 1, ... , K + 1;
   S - номер элементарного сегмента, S = 1, 2, ... , NX.
Если интегрируется одно скалярное уравнение (т.е. M = 1), то первое измерение массива BY равно 1 и в описании массива его можно опустить. В этом случае переменная с индексом, служащая для обращения к элементам массива BY, имеет вид BY (I + 1, S) и представляет I-й коэффициент Чебышёва решения Y(X) на S-м элементарном сегменте [xS-1, xS]. Если интервал интегрирования [XN, XK] не разбивается на элементарные сегменты (т.е. H = XK - XN), то третье измерение массива BY равно 1 и в описании массива его можно опустить. В этом случае переменная с индексом, служащая для обращения к элементам массива BY, имеет вид BY (N, I + 1) и представляет I-й коэффициент Чебышёва для N-й компоненты решения yN(X) на сегменте [XN, XK]. Если интегрируется одно скалярное уравнение и интервал интегрирования [XN, XK] не разбивается на элементарные сегменты (т.е. M = 1 и H = XK - XN), то одновременно первое и третье измерения массива BY равны 1 и эти измерения в описании массива можно опустить. В этом случае переменная с индексом, служащая для обращения к элементам массива BY, имеет вид BY (I + 1) и представляет I-й коэффициент Чебышёва решения Y(X) на [XN, XK] (см. "Математическое описание", "Замечания по использованию" и "Примеры использования"; тип: с расширенной (Extended) точностью);
ADY - двумерный массив с измерениями M, (K + 1) * NX. На выходе из подпрограммы содержит коэффициенты Чебышёва для производной решения Y'(X). При этом переменная с индексом ADY (N, (S - 1) * (K + 1) + I + 1) содержит I-й коэффициент Чебышёва для N-й компоненты производной решения y'N(X) на S-м элементарном сегменте, I = 0, 1, ... , K; S = 1, 2, ... , NX. Массив представляет последовательность групп столбцов по K + 1 столбцу в каждой группе; число групп равно NX, а длина всех столбцов одинакова и равна M. Номер группы - это номер элементарного сегмента, на которые разбивается интервал интегрирования, а номер столбца в каждой группе (уменьшенный на единицу) - это номер коэффициента Чебышёва для производной решения Y'(X) на элементарном сегменте, соответствующем этой группе. Как и для формального параметра AY, удобно передавать подпрограмме DE55E в качестве фактического параметра, соответствующего данному формальному параметру ADY, массив, описываемый в вызывающей программной единице, как трехмерный BDY с измерениями M, K + 1, NX. При этом переменная с индексом BDY (N, I + 1, S) будет содержать I-й коэффициент Чебышёва N-й компоненты производной решения y'N(X) на S-м элементарном сегменте [xS-1, xS]. Другими словами, индексы этого массива (индексные выражения N, I + 1, S) имеют следующие значения:
   N - номер компоненты производной решения, N = 1, 2, ... , M;
   I - номер коэффициента Чебышёва, I = 0, 1, ... , K;
   S - номер элементарного сегмента, S = 1, 2, ... , NX.
Если при обращении к подпрограмме параметр IORDY принимает нулевое значение (IORDY = 0), т.е. когда требуется получить аналитическое представление для решения Y(X) и не требуется аналитическое решение для производной Y'(X), то массив ADY, представляющий собой массив переменной длины, является рабочим массивом и может иметь размер M * (K + 1).
Обращение с массивом BDY при интегрировании скалярных уравнений (M = 1) или при интегрировании уравнений без разбиения интервала интегрирования на элементарные сегменты (H = XK - XN) полностью аналогично обращению с массивом BY (соответствующим формальному параметру AY) и изложено в описании параметра AY (см. "Математическое описание", "Замечания по использованию" и "Примеры использования"; тип: с расширенной (Extended) точностью);
RAB - одномерный рабочий массив длины 2 * K2 + 7 * K + 3 * M * K + 5 * М + 1. (тип: с расширенной (Extended) точностью).

Версии: нет

Вызываемые подпрограммы

DE44E - выполнение одного шага приближенного интегрирования системы обыкновенных дифференциальных уравнений первого порядка методом рядов Чебышёва
 

Кроме того, используются рабочие подпрограммы DE70EK, DE70EH, DE70E0, DE70EI, DE70EF, DE70EQ, DE71EE, DE70EP, DE71ET, DE71EP, DE71EI, DE71EF, DE71ES, DE70EA, DE70EC.

Замечания по использованию

 

Разбиение промежутка интегрирования на элементарные сегменты (шаги) выполняется для того, чтобы на каждом таком сегменте ряды Чебышёва для решения и его производной были быстросходящимися рядами. Другими словами, длина элементарных сегментов, задаваемая параметром H, подбирается таким образом, чтобы убывание коэффициентов этих рядов Чебышёва на элементарном сегменте происходило достаточно быстро, вследствие чего можно было бы считать частичные суммы этих рядов близкими к многочленам наилучшего равномерного приближения на элементарном сегменте для решения и его производной. Порядок этих частичных сумм задается параметром K.

Если начальное приближение для коэффициентов Чебышёва функции Φ(α) определяется первым способом (т.е. при INIAPR = 1), то для получения максимального порядка точности приближенного решения в конце элементарного сегмента необходимо выполнить в итерационном процессе не менее K итераций; тогда IMAX≥K. Если начальное приближение коэффициентов Чебышёва функции Φ(α) определяется вторым способом (т.е. при INIAPR = 2), то для получения максимального порядка точности приближенного решения необходимо выполнить в итерационном процессе не менее K + 1 итераций; в этом случае IMAX≥K + 1. Однако в некоторых случаях при втором способе определения начального приближения итерационный процесс может сойтись за значительно меньшее число итераций.

Если диаметр разбиения H подобран достаточно малым, то хорошая точность приближенного решения может быть получена и с существенно меньшим числом итераций при любом способе выбора начального приближения. Вообще, число итераций зависит от K и H. С увеличением H число итераций может также возрастать.

Если правая часть дифференциального уравнения не зависит от переменной Y, т.е. дифференциальное уравнение имеет вид Y'= F(X), то число итераций можно положить равным 1 при любых H и K, удовлетворяющих описанным выше условиям. В этом случае параметр IMAX = 1.

Как следует из вышеописанного, управлять точностью приближенного решения задачи Коши можно с помощью четырех параметров H, K, IMAX, INIAPR, подбирая для каждой конкретной задачи наиболее подходящий набор их значений.

Для вычисления решения при заданном значении аргумента X [XN, XK] необходимо найти такой элементарный сегмент [xS-1, xS], чтобы X  [xS-1, xS], и определить нормализованный аргумент α по формуле α = (X - xS-1) / H = (X - xS-1) / (xS - xS-1). Далее, зная α и S и пользуясь соответствующим набором коэффициентов из массива BY, найти значение решения Y(X) по формуле:

                                                                                                     K+1
       Y(X) = (y1(X), ... , yM(X)),           yN(X) = yN (xS-1 + αH) =  ∑ ' BY (N, I + 1, S) * TI*(α), 
                                                                                                     I=0
                                                                         N = 1, 2, ... , M.

Аналогично можно вычислить производную решения Y'(X) = F (X, Y(X)):

                                                                                                          K
       Y'(X) = (y'1(X), ... , y'M(X)),           y'N(X) = y'N (xS-1 + αH) =  ∑ ' BDY (N, I + 1, S) * TI*(α), 
                                                                                                         I=0
                                                                             N = 1, 2, ... , M.

При работе подпрограммы значения параметров M, XN, YN, XK, K, INIAPR, IMAX, IORDY сохраняются. Значение параметра H сохраняется, если он задан с учетом направления интегрирования, иначе его знак меняется на противоположный. Если после работы подпрограммы нет необходимости иметь начальное значение решения, то параметры YN и Y при обращении к ней можно совместить.

Так как при интегрировании системы уравнений с помощью подпрограммы DE55E используется глобальная запись (структура данных) с именем _COM70D для хранения промежуточных значений, пользователь не должен портить элементы этой структуры. Структура определена в модуле Lstruct и является объектом типа:

type
 COM70D = record
  elm1: Extended;   // WC1
  elm2: Extended;   // WC2
  elm3: Extended;   // WC3
  elm4: Integer;       // LASN
  elm5: Extended;   // HD2
  elm6: Extended;   // HD4
  elm7: Extended;   // HOLD
 end;
var
_COM70D : COM70D;

Примеры использования

Вычисления во всех шести примерах на Паскале проводились с 19-20 значащими цифрами.
1) Решается задача Коши

       y'1 = -2q (y2-1) + (1 -e1-y1+cos q(2x-1) ) / (x+1),         y1(0) = 1+ cos q,      0 ≤ x ≤ xf,         xf = 1,
       y'2 = 2q (y1-1) + ( 1 -e1-y2+sin q(2x-1) ) / (x+1),         y2(0) = 1- sin q,            q = 0,5.

Точное решение системы

      y1(x) = 1 + cos q(2x - 1),                    y2(x) = 1 + sin q(2x - 1).

Функции y1(x), y2(x) разлагаются на отрезке [0, 1] в смещенные ряды Чебышёва, коэффициенты которых выражаются через цилиндрические функции:

 
                                              
(7)       y1(x) = 1 + J0 (q) + 2 ∑ (-1)i J2i (q) T2i* (x),
                                             i=1
                                 
(8)       y2(x) = 1 + 2 ∑ (-1)i J2i+1 (q) T2i+1* (x).
                                i=0

Интервал интегрирования не разбивается на элементарные сегменты, поэтому параметр H полагается равным 1. Вычисляются коэффициенты Чебышёва обеих компонент решения системы y1(x), y2(x) и коэффициенты Чебышёва их производных y'1(x), y'2(x) на отрезке [0, 1]. Определяется также решение Y системы в конце интервала интегрирования xf. Приводятся подпрограмма вычисления значений правой части системы и фрагмент вызывающей программы, а также результаты счета, включая точное значение YT решения в точке xf, абсолютную погрешность DELY приближенного решения Y, вычисленного в точке xf, значения параметров H, K, INIAPR, IMAX, IORDY, NX и XS. Даются также точные значения коэффициентов Чебышёва для компонент решения y1(x), y2(x) в (7), (8) и абсолютные погрешности их приближенных значений, вычисленных программой DE55E.

Unit Fde55e1_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc;
procedure fde55e1(X :Extended; var Y :Array of Extended; var Z :Array of Extended;
                M :Integer);
implementation
procedure fde55e1(X :Extended; var Y :Array of Extended; var Z :Array of Extended;
                M :Integer);
var
R,Q :Extended;
begin
Q := 0.5e0;
R := 2.e0*X-1.e0;
Z[0] := -2.e0*Q*(Y[1]-1.e0)+(1.e0-Exp(1.e0-Y[0]+Cos(Q*R)))/(1.e0+X);
Z[1] := 2.e0*Q*(Y[0]-1.e0)+(1.e0-Exp(1.e0-Y[1]+Sin(Q*R)))/(1.e0+X);
end;
end.

function tde55e1: String;
var
M,IORDY,K,IMAX,INIAPR,NXP1,NX,I,_i,KP2,KP1,L,J :Integer;
XN,H,XK,H0,Q :Extended;
DELY :Array [0..1] of Extended;
XS :Array [0..4] of Extended;
YN :Array [0..1] of Extended;
Y :Array [0..1] of Extended;
AY :Array [0..25] of Extended;
ADY :Array [0..23] of Extended;
RАВ :Array [0..395] of Extended;
YT :Array [0..1] of Extended;
begin
M := 2;
Q := 0.5e0;
XN := 0.0;
YN[0] := Cos(Q)+1.e0;
YN[1] := -Sin(Q)+1.e0;
ХК := 1.e0;
IORDY := 1;
H0 := 1.0e0;
YT[0] := Cos(Q*(2.e0*XK-1.e0))+1.e0;
YT[1] := Sin(Q*(2.e0*XK-1.e0))+1.e0;
K := 11;
IМАХ := 16;
INIAPR := 1;
H := H0;
DE55E(fde55e1,M,XN,YN,XK,K,INIAPR,IMAX,IORDY,H,Y,NX,XS,AY,ADY,
     RAB);
DELY[0] := YT[0]-Y[0];
DELY[1] := YT[1]-Y[1];
NXP1 := NX+1;
//  Операторы вывода на печать: NX, XS, H0, K, INIAPR, IMAX, IORDY, Y, YT, DELY,  AY, ADY  
. . . . . . . . . . . . . . . . . . . . . . . . .
end;

Результаты: 

----------------------------------------------------------------
 NX =  1 
 XS =
      0,00000000000000000E+000 
      1,00000000000000000E+000 
 H0=
      1,0000000000000000    K=11    INIAPR=1    IMAX=16    IORDY=1 
 Y=
      1,87758256189037256E+000       1,47942553860420291E+000 
 YT=
      1,87758256189037272E+000       1,47942553860420300E+000 
 DELY =
      1,54932490448178584E-016       9,13982431405280238E-017 

 COEFFICIENTS AY AND ADY ON   1   SEGMENT  
 ----------------------------------------------------------------
   Number of       Chebyshev coefficients for 1 
 component
              ---------------------------------------------------
 coefficient           for Y                                              for Y'
 ----------------------------------------------------------------
      0            3,87693961448162577E+000      -7,16583097113560052E-016 
      1           -4,05644078440084432E-017      -4,84536915349748445E-001 
      2           -6,12080469173653167E-002      -5,54325465737526280E-016 
      3           -2,53084974310112398E-017       5,12745998917408848E-003 
      4            3,21472952728558635E-004      -2,50623496565391402E-016 
      5           -9,47372470186044757E-018      -1,61072544828496729E-005 
      6           -6,72136925728463897E-007      -6,11490025281824501E-017 
      7           -1,96923059765949767E-018       2,40317346334606051E-008 
      8            7,51644630286200614E-010      -6,01054579371651521E-018 
      9           -1,62818555416659954E-020      -2,08935356978145765E-011 
     10           -5,22635220826872873E-013      -5,42439899421653937E-018 
     11           -1,23281795323103168E-019       1,18731352603384382E-014 
     12            2,47356984590384130E-016 
 ----------------------------------------------------------------

   Number of       Chebyshev coefficients for 2 
 component
              ---------------------------------------------------
 coefficient           for Y                                               for Y'
 ----------------------------------------------------------------
      0            1,99999999999999998E+000       1,87693961448162531E+000 
      1            4,84536915349747752E-001      -4,75788570868107552E-016 
      2           -1,86398070372781333E-017      -6,12080469173656969E-002 
      3           -5,12745998917450329E-003      -3,26670114569882486E-016 
      4           -1,11774467719677473E-017       3,21472952728342590E-004 
      5            1,61072544827075208E-005      -1,47830966218398530E-016 
      6           -4,44861703897958538E-018      -6,72136925807826225E-007 
      7           -2,40317346578953275E-008      -4,10641572828884804E-017 
      8           -1,04523865691180662E-018       7,51644613242944803E-010 
      9            2,08935345562023931E-011      -7,61652026171066865E-018 
     10            5,81860812786869075E-018      -5,22630780341350187E-013 
     11           -1,18779722804852315E-014      -2,40360845376458299E-016 
     12           -5,00751761200954789E-018 
 **************************************************************************************

   Number of                   Chebyshev coefficients for 1 component
              ----------------------------------------------------------------------------
 coefficient      approximate                                    exact                                             absolute error
 ----------------------------------------------------------------------------------------
      0            3,87693961448162577E+000       3,87693961448162581E+000       4,27175655959288747E-017 
      1           -4,05644078440084432E-017       0,00000000000000000E+000       4,05644078440084432E-017 
      2           -6,12080469173653167E-002      -6,12080469173652826E-002       3,40913820610910800E-017 
      3           -2,53084974310112398E-017       0,00000000000000000E+000       2,53084974310112398E-017 
      4            3,21472952728558635E-004       3,21472952728575194E-004       1,65588588441111309E-017 
      5           -9,47372470186044757E-018       0,00000000000000000E+000       9,47372470186044757E-018 
      6           -6,72136925728463897E-007      -6,72136925723769759E-007       4,69413768647027798E-018 
      7           -1,96923059765949767E-018       0,00000000000000000E+000       1,96923059765949767E-018 
      8            7,51644630286200614E-010       7,51644630959521991E-010       6,73321377438174419E-019 
      9           -1,62818555416659954E-020       0,00000000000000000E+000       1,62818555416659954E-020 
     10           -5,22635220826872873E-013      -5,22635472164560617E-013      -2,51337687743974838E-019 
     11           -1,23281795323103168E-019       0,00000000000000000E+000       1,23281795323103168E-019 
     12            2,47356984590384130E-016       2,47676511895986538E-016       3,19527305602407805E-019 

 -----------------------------------------------------------------------------------------

   Number of                   Chebyshev coefficients for 2 component
              ----------------------------------------------------------------------------
 coefficient      approximate                                    exact                                              absolute error
 --------------------------------------------------------------------------------------
      0            1,99999999999999998E+000       2,00000000000000000E+000       2,24429849704499418E-017 
      1            4,84536915349747752E-001       4,84536915349747773E-001       2,11148373091551989E-017 
      2           -1,86398070372781333E-017       0,00000000000000000E+000       1,86398070372781333E-017 
      3           -5,12745998917450329E-003      -5,12745998917448815E-003       1,51432550310123815E-017 
      4           -1,11774467719677473E-017       0,00000000000000000E+000       1,11774467719677473E-017 
      5            1,61072544827075208E-005       1,61072544827149482E-005       7,42737217976061802E-018 
      6           -4,44861703897958538E-018       0,00000000000000000E+000       4,44861703897958538E-018 
      7           -2,40317346578953275E-008      -2,40317346555260458E-008       2,36928174945624626E-018 
      8           -1,04523865691180662E-018       0,00000000000000000E+000       1,04523865691180662E-018 
      9            2,08935345562023931E-011       2,08935351786579598E-011       6,22455566630061421E-019 
     10            5,81860812786869075E-018       0,00000000000000000E+000      -5,81860812786869075E-018 
     11           -1,18779722804852315E-014      -1,18837079244649228E-014      -5,73564397969128273E-018 
     12           -5,00751761200954789E-018       0,00000000000000000E+000       5,00751761200954789E-018 

2) Решается задача Коши из примера 1 с разбиением интервала интегрирования [0, 1] на два элементарных сегмента длиной H = 0,5. Так как значение H здесь уменьшено по сравнению с примером 1, то и число итераций IMAX также уменьшается. Приводятся фрагмент вызывающей программы и результаты счета, включающие те же данные, что и в примере 1, а именно: значения параметров NX, XS, H, K, INIAPR, IMAX, IORDY, точное значение YT решения в точке xf, абсолютную погрешность DELY приближенного решения Y, вычисленного подпрограммой DE55E в точке xf. Далее для каждого из двух элементарных сегментов приводятся коэффициенты Чебышёва для обеих компонент решения y1(x), y2(x) и коэффициенты Чебышёва для их производных y'1(x), y'2(x). Все перечисленные данные приводятся при двух способах определения начального приближения коэффициентов Чебышёва производной решения, т.е. при INIAPR = 1 и при INIAPR = 2.

Unit Fde55e2_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc;
procedure fde55e2(X :Extended; var Y :Array of Extended; var Z :Array of Extended;
                M :Integer);
implementation
procedure fde55e2(X :Extended; var Y :Array of Extended; var Z :Array of Extended;
                M :Integer);
var
R,Q :Extended;
begin
Q := 0.5e0;
R := 2.e0*X-1.e0;
Z[0] := -2.e0*Q*(Y[1]-1.e0)+(1.e0-Exp(1.e0-Y[0]+Cos(Q*R)))/(1.e0+X);
Z[1] := 2.e0*Q*(Y[0]-1.e0)+(1.e0-Exp(1.e0-Y[1]+Sin(Q*R)))/(1.e0+X);
end;
end.

function tde55e2: String;
var
M,IORDY,K,IMAX,IPRIA,INIAP0,INIAPR,NCHEB,NXP1,NX,I,_i,KP2,KP1,L,
   J :Integer;
XN,H,XK,H0,Q :Extended;
DELY :Array [0..1] of Extended;
XS :Array [0..2] of Extended;
YN :Array [0..1] of Extended;
Y :Array [0..1] of Extended;
AY :Array [0..51] of Extended;
ADY :Array [0..47] of Extended;
RAB :Array [0..395] of Extended;
YT :Array [0..1] of Extended;
begin
M := 2;
Q := 0.5e0;
XN := 0.0;
YN[0] := Cos(Q)+1.e0;
YN[1] := -Sin(Q)+1.e0;
XK := 1.e0;
IORDY := 1;
H0 := 0.5e0;
YT[0] := Cos(Q*(2.e0*XK-1.e0))+1.e0;
YT[1] := Sin(Q*(2.e0*XK-1.e0))+1.e0;
K := 11;
IMAX := 13;
IPRIA := 1;
for INIAP0:=1 to 2 do
 begin
  INIAPR := INIAP0;
  H := H0;
  NCHEB := 0;
  DE55E(Fde55e2,M,XN,YN,XK,K,INIAPR,IMAX,IORDY,H,Y,NX,XS,AY,ADY,
       RAB);
  DELY[0] := YT[0]-Y[0];
  DELY[1] := YT[1]-Y[1];
  NXP1 := NX+1;
//  Операторы вывода на печать: NX, XS, H0, K, INIAPR, IMAX, IORDY, Y, YT,  DELY, AY, ADY  
. . . . . . . . . . . . . . . . . . . . . . . . .
end;

Результаты: 
 ----------------------------------------------------------------
 NX=  2 
    XS=
      0,00000000000000000E+000 
      5,00000000000000000E-001 
      1,00000000000000000E+000 
 H0=  0,5000000000000000    K=11    INIAPR=1    IMAX=13    IORDY=1 
 Y =
      1,87758256189037274E+000       1,47942553860420301E+000 
 YT=
      1,87758256189037272E+000       1,47942553860420300E+000 
 DELY  =
     -2,53703308361608038E-017      -6,28837260041592572E-018 

             COEFFICIENTS AY AND ADY ON   1   SEGMENT  
 ----------------------------------------------------------------
   Number of       Chebyshev coefficients for 1  component
              ---------------------------------------------------
 coefficient         for Y                                               for Y'
 ----------------------------------------------------------------
      0            3,90766440054602746E+000       4,87106693080399297E-001 
      1            6,13690356801086382E-002      -2,40340620085585541E-001 
      2           -1,50605601386582180E-002      -3,84559236046980881E-003 
      3           -1,60442087410513588E-004       6,28342132945947442E-004 
      4            1,96510520421478261E-005       5,01773738251730305E-006 
      5            1,25508828078587283E-007      -4,91532402782992055E-007 
      6           -1,02440704934431840E-008      -2,61574062618828186E-009 
      7           -4,67226933663339647E-011       1,82980902280779727E-010 
      8            2,85969729345183802E-012       7,30202326420159240E-013 
      9            1,01434582654892144E-014      -3,97245001379064461E-014 
     10           -4,96626470755157957E-016      -1,26668695064197090E-016 
     11           -1,43941698936587602E-018       5,61752250619051985E-018 
     12            5,85158594394845818E-020 
 ----------------------------------------------------------------
   Number of       Chebyshev coefficients for 2  component
              ---------------------------------------------------
 coefficient         for Y                                                for Y'
 ----------------------------------------------------------------
      0            1,51289330691960088E+000       1,90766440054602739E+000 
      1            2,40340620085585707E-001       6,13690356801085685E-002 
      2            3,84559236046994481E-003      -1,50605601386582723E-002 
      3           -6,28342132945850062E-004      -1,60442087410548505E-004 
      4           -5,01773738245686937E-006       1,96510520421292243E-005 
      5            4,91532402815628573E-007       1,25508828071314404E-007 
      6            2,61574064092538459E-009      -1,02440704959186378E-008 
      7           -1,82980896307503383E-010      -4,67226931040562628E-011 
      8           -7,30200571897288121E-013       2,85969730155159058E-012 
      9            3,97249117959188117E-014       1,01434973701769460E-014 
     10            1,26810657786156911E-016      -4,96347754563863930E-016 
     11           -5,64031539277118102E-018      -1,35525271560688054E-018 
     12           -1,41172157875716723E-020 

             COEFFICIENTS AY AND ADY ON   2   SEGMENT  
 ----------------------------------------------------------------
   Number of       Chebyshev coefficients for 1  component
              ---------------------------------------------------
 coefficient         for Y                                                 for Y'
 ----------------------------------------------------------------
      0            3,90766440054602750E+000      -4,87106693080399111E-001 
      1           -6,13690356801086292E-002      -2,40340620085585743E-001 
      2           -1,50605601386582234E-002       3,84559236046992270E-003 
      3            1,60442087410516240E-004       6,28342132945831570E-004 
      4            1,96510520421454309E-005      -5,01773738246705214E-006 
      5           -1,25508828077628389E-007      -4,91532402822218384E-007 
      6           -1,02440704941078701E-008       2,61574063808339878E-009 
      7            4,67226935551683859E-011       1,82980894959382930E-010 
      8            2,85969718665145619E-012      -7,30201006030828708E-013 
      9           -1,01434408419805699E-014      -3,97249863102664904E-014 
     10           -4,96631976469315110E-016       1,26734591772325511E-016 
     11            1,44016581559460808E-018       5,57180727871841819E-018 
     12            5,80396591533168561E-020 
 ----------------------------------------------------------------
   Number of       Chebyshev coefficients for 2  component
              ---------------------------------------------------
 coefficient         for Y                                                for Y'
 ----------------------------------------------------------------
      0            2,48710669308039911E+000       1,90766440054602754E+000 
      1            2,40340620085585716E-001      -6,13690356801085922E-002 
      2           -3,84559236046994547E-003      -1,50605601386581965E-002 
      3           -6,28342132945848056E-004       1,60442087410535353E-004 
      4            5,01773738245645644E-006       1,96510520421568443E-005 
      5            4,91532402816219802E-007      -1,25508828071253418E-007 
      6           -2,61574064096321873E-009      -1,02440704919477474E-008 
      7           -1,82980896236352615E-010       4,67226949810812739E-011 
      8            7,30200601861078630E-013       2,85969728799906342E-012 
      9            3,97249121723778993E-014      -1,01435380277584142E-014 
     10           -1,26812775368525046E-016      -4,96388412145332136E-016 
     11           -5,64077741074241064E-018       1,48400172358953419E-018 
     12            1,54583512873909812E-020 
 ----------------------------------------------------------------

 NX=  2 
    XS=
      0,00000000000000000E+000 
      5,00000000000000000E-001 
      1,00000000000000000E+000 
 H0=  0,5000000000000000    K=11    INIAPR=2    IMAX=13    IORDY=1 
 Y =
      1,87758256189037274E+000       1,47942553860420300E+000 
 YT=
      1,87758256189037272E+000       1,47942553860420300E+000 
 DELY  =
     -2,85145171363687666E-017      -2,49366499671666020E-018 

             COEFFICIENTS AY AND ADY ON   1   SEGMENT  
 ----------------------------------------------------------------
   Number of       Chebyshev coefficients for 1  component
              ---------------------------------------------------
 coefficient         for Y                                                for Y'
 ----------------------------------------------------------------
      0            3,90766440054602746E+000       4,87106693080399297E-001 
      1            6,13690356801086382E-002      -2,40340620085585541E-001 
      2           -1,50605601386582180E-002      -3,84559236046980881E-003 
      3           -1,60442087410513588E-004       6,28342132945947442E-004 
      4            1,96510520421478261E-005       5,01773738251730305E-006 
      5            1,25508828078587283E-007      -4,91532402782992055E-007 
      6           -1,02440704934431840E-008      -2,61574062618828186E-009 
      7           -4,67226933663339647E-011       1,82980902280779727E-010 
      8            2,85969729345183802E-012       7,30202326420159240E-013 
      9            1,01434582654892144E-014      -3,97245001379064461E-014 
     10           -4,96626470755157957E-016      -1,26668695064197090E-016 
     11           -1,43941698936587602E-018       5,61752250619051985E-018 
     12            5,85158594394845818E-020 
 ----------------------------------------------------------------
   Number of       Chebyshev coefficients for 2  component
              ---------------------------------------------------
 coefficient         for Y                                                for Y'
 ----------------------------------------------------------------
      0            1,51289330691960088E+000       1,90766440054602739E+000 
      1            2,40340620085585707E-001       6,13690356801085685E-002 
      2            3,84559236046994481E-003      -1,50605601386582723E-002 
      3           -6,28342132945850062E-004      -1,60442087410548505E-004 
      4           -5,01773738245686937E-006       1,96510520421292243E-005 
      5            4,91532402815628573E-007       1,25508828071314404E-007 
      6            2,61574064092538459E-009      -1,02440704959186378E-008 
      7           -1,82980896307503383E-010      -4,67226931040562628E-011 
      8           -7,30200571897288121E-013       2,85969730155159058E-012 
      9            3,97249117959188117E-014       1,01434973701769460E-014 
     10            1,26810657786156911E-016      -4,96347754563863930E-016 
     11           -5,64031539277118102E-018      -1,35525271560688054E-018 
     12           -1,41172157875716723E-020 

             COEFFICIENTS AY AND ADY ON   2   SEGMENT  
 ----------------------------------------------------------------
   Number of       Chebyshev coefficients for 1  component
              ---------------------------------------------------
 coefficient         for Y                                               for Y'
 ----------------------------------------------------------------
      0            3,90766440054602750E+000      -4,87106693080399082E-001 
      1           -6,13690356801086285E-002      -2,40340620085585715E-001 
      2           -1,50605601386582227E-002       3,84559236046994615E-003 
      3            1,60442087410516760E-004       6,28342132945848712E-004 
      4            1,96510520421457733E-005      -5,01773738245607872E-006 
      5           -1,25508828077429693E-007      -4,91532402816033607E-007 
      6           -1,02440704940061556E-008       2,61574064110899126E-009 
      7            4,67226936003134992E-011       1,82980896261861810E-010 
      8            2,85969720487014515E-012      -7,30200508564696034E-013 
      9           -1,01434345362908515E-014      -3,97248498274794241E-014 
     10           -4,96630399330794842E-016       1,26778048245271602E-016 
     11            1,44065963915081366E-018       5,58211898416325315E-018 
     12            5,81470727517005536E-020 
 ----------------------------------------------------------------
   Number of       Chebyshev coefficients for 2  component
              ---------------------------------------------------
 coefficient         for Y                                               for Y'
 ----------------------------------------------------------------
      0            2,48710669308039911E+000       1,90766440054602750E+000 
      1            2,40340620085585715E-001      -6,13690356801086248E-002 
      2           -3,84559236046994635E-003      -1,50605601386582229E-002 
      3           -6,28342132945848687E-004       1,60442087410516806E-004 
      4            5,01773738245605960E-006       1,96510520421456364E-005 
      5            4,91532402816002453E-007      -1,25508828077101333E-007 
      6           -2,61574064106641558E-009      -1,02440704944617412E-008 
      7           -1,82980896276042159E-010       4,67226940866144816E-011 
      8            7,30200588308551474E-013       2,85969699661972956E-012 
      9            3,97249087842461103E-014      -1,01435651328127263E-014 
     10           -1,26813452994882850E-016      -4,96435845990378377E-016 
     11           -5,64131643170884520E-018       1,51110677790167180E-018 
     12            1,57406956031424146E-020 
---------------------------------------------------------------------

3) Решается задача Коши

 
(9)       y' = 2q / (1+tg2 y),       y(0) = - arctg q,       0 ≤ x ≤ xf,       xf  = 1,       q = 1 / 16.  

Точное решение задачи y(x) = arctg (q (2x -1)) = arctg (x / 8 - 1 /16) раскладывается на отрезке [0, 1] в смещенный ряд Чебышёва

                                                      
(10)      y(x) = arctg (q (2x - 1)) = 2 ∑ (-1)i (p2i+1) / (2i+1) T*2i+1 (x),       p = (√(1+q2) - 1) / q,       q ≠ 0.
                                                     i=0

Интервал интегрирования не разбивается на элементарные сегменты, поэтому параметр H полагается равным 1. Вычисляются коэффициенты Чебышёва решения y(x) и коэффициенты Чебышёва его производной y'(x) на отрезке [0, 1]. Определяется также решение Y задачи в конце интервала интегрирования xf. Приводятся подпрограмма вычисления значений правой части и фрагмент вызывающей программы, а также результаты счета, включая точное значение YT решения в точке xf, абсолютную погрешность DELY приближенного решения Y, вычисленного в точке xf, значения параметров NX, XS, H, K, INIAPR, IMAX, IORDY. Даются также точные значения коэффициентов Чебышёва решения y(x) в (10) и абсолютные погрешности их приближенных значений, вычисленных подпрограммой DE55E.

Unit Fde55e3_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc;
procedure fde55e3(X :Extended; var Y :Array of Extended; var Z :Array of Extended; M :Integer);
implementation
procedure fde55e3(X :Extended; var Y :Array of Extended; var Z :Array of Extended; M :Integer);
begin
Z[0] := 2.e0*_BLOCKQ.elm1/(1.e0+IntPower(Tan(Y[0]),2));
end;
end.

function tde55e3: String;
var
M,IORDY,K,IMAX,INIAPR,NXP1,NX,I,KP1,KP2,KP3,L,J :Integer;
YN,Y,YT,DELY,H0,H,XN,XK :Extended;
XS :Array [0..1] of Extended;
AY :Array [0..9] of Extended;
ADY :Array [0..8] of Extended;
RAB :Array [0..213] of Extended;
begin
_BLOCKQ.elm1 := 0.0625e0;
M := 1;
XN := 0.e0;
YN := -ArcTan(_BLOCKQ.elm1);
IORDY := 1;
H0 := 1.e0;
XK := XN+H0;
YT := ArcTan(_BLOCKQ.elm1);
K := 8;
IMAX := 5;
INIAPR := 1;
H := H0;
DE55E(fde55e3,M,XN,YN,XK,K,INIAPR,IMAX,IORDY,H,Y,NX,XS,AY,
     ADY,RAB);
DELY := YT-Y;
NXP1 := NX+1;
//  Операторы вывода на печать: NX, XS, H0, K, INIAPR, IMAX, IORDY, Y, YT, DELY,  AY, ADY  
. . . . . . . . . . . . . . . . . . . . . . . . .
end;

Результаты: 
----------------------------------------------------------------
 NX=   1     XS=
      0,00000000000000000E+000 
      1,00000000000000000E+000 
 H0=  1,0000000000000000    K=  8    INIAPR=1    IMAX=  5    IORDY= 1 
 Y=        6,24188099959573463E-002
 YT=       6,24188099959573485E-002
 DELY  =      2,21583819001724969E-018 

                    COEFFICIENTS ON  1   SEGMENT

  Number of             AY                                              ADY  
coefficient

      0              2,35637948481245930E-018       2,49513144620722138E-001 
      1              6,24390837627947297E-002      -2,54109884176290102E-021 
      2             -3,17637355220362627E-021      -2,43190430456781028E-004 
      3             -2,02856215326620927E-005       2,28698895758661092E-020 
      4              8,20563167652603454E-021       2,37027935164084495E-007 
      5              1,18629478381455368E-008      -1,08420217248550443E-019 
      6             -9,14975577535935905E-018      -2,31021598826241451E-010 
      7             -8,25881308553772133E-012       2,19485718391376067E-016 
      8              6,85892869973050209E-018       2,25167568814745814E-013 
      9              6,25465468929849485E-015 

      EXACT COEFFICIENTS AY AND ERRORS OF THEIR  APPROXIMATIONS


    Номер         Точный коэффициент                Абсолютная погрешность
 коэффиц-та                                                    приближенного коэффициента
 ----------------------------------------------------------------
      0              0,00000000000000000E+000      -2,35637948481245930E-018 
      1              6,24390837627947296E-002      -1,96511643762997679E-019 
      2              0,00000000000000000E+000       3,17637355220362627E-021 
      3             -2,02856215326620922E-005       5,14506341007983214E-022 
      4              0,00000000000000000E+000      -8,20563167652603454E-021 
      5              1,18629478381438272E-008      -1,70968700650620854E-021 
      6              0,00000000000000000E+000       9,14975577535935905E-018 
      7             -8,25881307956705560E-012       5,97066572889826150E-021 
      8              0,00000000000000000E+000      -6,85892869973050209E-018 
      9              6,26074793977291928E-015       6,09325047442443117E-018 
 ----------------------------------------------------------------

4) Решается обыкновенное дифференциальное уравнение из примера 3, но начальное условие задается в точке XN = xf = 1:

(11)      y' = 2q / (1+tg2y),       y(1) = arctg q,       q = 1 / 16,

а концом интервала интегрирования теперь является точка XK = 0. В силу указанных в (9) и (11) начальных условий решение задачи Коши (11) совпадает с решением задачи Коши (9); решением этих двух задач на [0, 1] является одна и та же функция

(12)      y(x) = arctg (x / 8 - 1 / 16),       0 ≤ x ≤ 1.

Заметим, что коэффициенты Чебышёва функции y(x) = y(1 - α), x = 1 - α, на [0, 1] отличаются знаком от коэффициентов Чебышёва функции y(x) = y(α), x = α, на том же отрезке [0, 1] и равны им по абсолютной величине. Кроме того, функция y(x) = y(α), x = α, 0 ≤ α ≤ 1, (определяемая по формуле (12)) и функция y(x) = y(1 - α), x = 1 - α, 0 ≤ α ≤ 1, имеют одинаковые коэффициенты Чебышёва для производных (по x) этих функций на [0, 1]:

          a*i {[y (1 - α)]'x=1-α} =  a*i {[y (α)]'x=α},      i = 0, 1, ... .                    

В примере 4 интегрирование выполняется справа налево без разбиения интервала интегрирования [XN, XK] на элементарные сегменты, поэтому параметр H = - 1. При этом вычисляются коэффициенты Чебышёва функции y(x) = y(1 - α), x = 1 - α, на [0, 1] и коэффициенты Чебышёва ее производной y'(x). Определяется также решение Y задачи (11) в конце интервала интегрирования XK. Приводятся фрагмент вызывающей программы и результаты счета, включая точное значение YT решения в точке XK = 0, абсолютную погрешность DELY приближенного решения Y, вычисленного в точке XK = 0, значения параметров NX, XS, H, K, INIAPR, IMAX, IORDY.

Unit Fde55e4_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc;
procedure fde55e4(X :Extended; var Y :Array of Extended; var Z :Array of Extended; M :Integer);
implementation
procedure fde55e4(X :Extended; var Y :Array of Extended; var Z :Array of Extended; M :Integer);
begin
Z[0] := 2.e0*_BLOCKQ.elm1/(1.e0+IntPower(Tan(Y[0]),2));
end;
end.

function tde55e4: String;
var
M,IORDY,K,IMAX,INIAPR,NXP1,NX,I,KP1,KP2,KP3,L,J :Integer;
YN,Y,YT,DELY,H0,H,XN,XK :Extended;
XS :Array [0..1] of Extended;
AY :Array [0..9] of Extended;
ADY :Array [0..8] of Extended;
RAB :Array [0..213] of Extended;
begin
_BLOCKQ.elm1 := 0.0625e0;
M := 1;
XN := 1.e0;
YN := ArcTan(_BLOCKQ.elm1);
IORDY := 1;
H0 := -1.e0;
XK := XN+H0;
YT := -ArcTan(_BLOCKQ.elm1);
K := 8;
IMAX := 5;
INIAPR := 1;
H := H0;
DE55E(Fde55e4,M,XN,YN,XK,K,INIAPR,IMAX,IORDY,H,Y,NX,XS,AY,
     ADY,RAB);
DELY := YT-Y;
NXP1 := NX+1;
//  Операторы вывода на печать: NX, XS, H0, K, INIAPR, IMAX, IORDY, Y, YT, DELY,  AY, ADY  
. . . . . . . . . . . . . . . . . . . . . . . . .
end;

Результаты: 
---------------------------------------------------------------------
 NX=   1 
    XS=
      1,00000000000000000E+000 
      0,00000000000000000E+000 
 H0= -1,0000000000000000    K=  8    INIAPR=1    IMAX=  5    IORDY= 1 
 Y=       -6,24188099959573463E-002
 YT=      -6,24188099959573485E-002
 DELY  =     -2,21583819001724969E-018 

                               COEFFICIENTS ON  1   SEGMENT
                          AY                                                      ADY 

      0             -2,35637948481245930E-018       2,49513144620722138E-001 
      1             -6,24390837627947297E-002      -2,54109884176290102E-021 
      2              3,17637355220362627E-021      -2,43190430456781028E-004 
      3              2,02856215326620927E-005       2,28698895758661092E-020 
      4             -8,20563167652603454E-021       2,37027935164084495E-007 
      5             -1,18629478381455368E-008      -1,08420217248550443E-019 
      6              9,14975577535935905E-018      -2,31021598826241451E-010 
      7              8,25881308553772133E-012       2,19485718391376067E-016 
      8             -6,85892869973050209E-018       2,25167568814745814E-013 
      9             -6,25465468929849485E-015 
---------------------------------------------------------------------

Из приведенных результатов видно, что на выходе из подпрограммы DE55E в массиве XS точки XN, XK располагаются в порядке убывания. Вычисленные подпрограммой коэффициенты Чебышёва функции y(x) = y(1 - α), x = 1 - α, на [0, 1] отличаются знаком (как и должно быть) от коэффициентов Чебышёва функции y(x) из примера 3, а коэффициенты Чебышёва производной функции y'(x) совпадают с коэффициентами Чебышёва производной функции y'(x) из примера 3 (как и должно быть).

5) Решается задача Коши

(13)      y'(x) = 192x2 - 176x + 24,       y(0) = 8,     0 ≤ x ≤ 1.

Точное решение задачи y(x) = 64x3 - 88x2 +24x + 8 = 7 - 2T*1(x) + T*2(x) + 2T*3(x). Интервал интегрирования не разбивается на элементарные сегменты, поэтому параметр H полагается равным 1. Вычисляются коэффициенты Чебышёва решения y(x) и коэффициенты Чебышёва его производной y'(x) = 8 + 8T*1(x) + 24T*2(x) на [0, 1]. Приводятся подпрограмма вычисления значений правой части, фрагмент вызывающей программы и результаты счета, аналогичные результатам из примеров 1-4. Поскольку правая часть дифференциального уравнения не зависит от y, то параметр IMAX можно положить равным 1.

Unit Fde55e5_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc;
procedure fde55e5(X :Extended; var Y :Array of Extended; var Z :Array of Extended; M :Integer);
implementation
procedure fde55e5(X :Extended; var Y :Array of Extended; var Z :Array of Extended; M :Integer);
begin
Z[0] := 192.e0*X*X-176.e0*X+24.e0;
end;
end.

function tde55e5: String;
var
M,IORDY,K,IMAX,INIAPR,NXP1,NX,I,KP1,KP2,J :Integer;
YN,Y,YT,DELY,H0,H,XN,XK :Extended;
XS :Array [0..1] of Extended;
AY :Array [0..3] of Extended;
ADY :Array [0..2] of Extended;
RAB :Array [0..33] of Extended;
begin
M := 1;
XN := 0.e0;
YN := 8.e0;
IORDY := 1;
H0 := 1.e0;
XK := XN+H0;
YT := 8.e0;
K := 2;
IMAX := 1;
INIAPR := 1;
H := H0;
DE55E(fde55e5,M,XN,YN,XK,K,INIAPR,IMAX,IORDY,H,Y,NX,XS,AY,
     ADY,RAB);
DELY := YT-Y;
NXP1 := NX+1;
//  Операторы вывода на печать: NX, XS, H0, K, INIAPR, IMAX, IORDY, Y, YT, DELY,  AY, ADY  
. . . . . . . . . . . . . . . . . . . . . . . . .
end;
     
Результаты: 
----------------------------------------------------------------
 NX=   1 
    XS=
      0,00000000000000000E+000 
      1,00000000000000000E+000 
 H0=  1,0000000000000000    K=  2    INIAPR=1    IMAX=  1    IORDY= 1
 Y=         8,00000000000000000E+000
 YT=       8,00000000000000000E+000
 DELY  =      3,90312782094781596E-018 

                    COEFFICIENTS ON  1   SEGMENT
 ----------------------------------------------------------------
   Number of                   Chebyshev coefficients
              ---------------------------------------------------
 coefficient           for Y                                               for Y'
 ----------------------------------------------------------------
      0              1,40000000000000000E+001       1,60000000000000000E+001 
      1             -2,00000000000000000E+000       8,00000000000000000E+000 
      2              1,00000000000000000E+000       2,40000000000000000E+001 
      3              2,00000000000000000E+000 
---------------------------------------------------------------------

6) Решается обыкновенное дифференциальное уравнение из примера 5, но начальное условие задается в точке XN = 1:

(14)      y'(x) = 192x2 - 176x + 24,       y(1) = 8,       0 ≤ x ≤ 1,       

а концом интервала интегрирования является точка XK = 0. В силу указанных в (13) и (14) начальных условий решение задачи Коши (14) совпадает с решением задачи Коши (13); решением этих двух задач является одна и та же функция

            y(x) = 7 - 2T*1(x) + T*2(x) + 2T*3(x),       y'(x) = 8 + 8T*1(x) + 24T*2(x).

Так как T*i (1-α) = - T*i (α), если i - нечетное, и T*i (1-α) = T*i (α), если i - четное (0 ≤ α ≤ 1), то коэффициенты Чебышёва функции y(x) = y(1 - α), x = 1 - α, легко получаются из коэффициентов Чебышёва функции y(x) = y(α), x = α, на [0, 1], а коэффициенты Чебышёва ее производной (по x) y'(x) = y'x=1-α(1 - α) легко получаются из коэффициентов Чебышёва производной функции y(x) = y(α), x = α, 0 ≤ α ≤ 1:

(15)      y(x) = y(1-α) = 7 + 2T*1(α) + T*2(α) - 2T*3(α),
(16)      y'(x) = y'(1 - α) = 8 - 8T*1(α) + 24T*2(α).

В примере 6 интегрирование выполняется справа налево без разбиения интервала интегрирования [XN, XK] на элементарные сегменты, поэтому параметр H = - 1. При этом вычисляются коэффициенты Чебышёва функции y(x) = y(1 - α), x = 1 - α, на [0, 1] и коэффициенты Чебышёва ее производной y'(x). Приводятся фрагмент вызывающей программы и результат счета, аналогичные результатам счета из примера 5. Поскольку правая часть дифференциального уравнения не зависит от y, то параметр IMAX (как и в примере 5) можно положить равным 1.

Unit Fde55e6_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc;
procedure fde55e6(X :Extended; var Y :Array of Extended; var Z :Array of Extended; M :Integer);
implementation
procedure fde55e6(X :Extended; var Y :Array of Extended; var Z :Array of Extended; M :Integer);
begin
Z[0] := 192.e0*X*X-176.e0*X+24.e0;
end;
end.

function tde55e6: String;
var
M,IORDY,K,IMAX,INIAPR,NXP1,NX,I,KP1,KP2,J :Integer;
YN,Y,YT,DELY,H0,H,XN,XK :Extended;
XS :Array [0..1] of Extended;
AY :Array [0..3] of Extended;
ADY :Array [0..2] of Extended;
RAB :Array [0..33] of Extended;
begin
M := 1;
XN := 1.e0;
YN := 8.e0;
IORDY := 1;
H0 := -1.e0;
XK := XN+H0;
YT := 8.e0;
K := 2;
IMAX := 1;
INIAPR := 1;
H := H0;
DE55E(fde55e6,M,XN,YN,XK,K,INIAPR,IMAX,IORDY,H,Y,NX,XS,AY,
     ADY,RAB);
DELY := YT-Y;
NXP1 := NX+1;
//  Операторы вывода на печать: NX, XS, H0, K, INIAPR, IMAX, IORDY, Y, YT, DELY,  AY, ADY  
. . . . . . . . . . . . . . . . . . . . . . . . .
end;

Результаты: 
----------------------------------------------------------------
 NX=   1     XS=
                  1,00000000000000000E+000 
                  0,00000000000000000E+000 
 H0= -1,0000000000000000    K=  2    INIAPR=1    IMAX=  1    IORDY= 1 
 Y=        8,00000000000000001E+000
 YT=       8,00000000000000000E+000
 DELY  =     -6,93889390390722838E-018 

                    COEFFICIENTS ON  1   SEGMENT
 ----------------------------------------------------------------

   Number of                   Chebyshev coefficients
              ---------------------------------------------------
 coefficient           for Y                                               for Y'
 ----------------------------------------------------------------
      0              1,40000000000000000E+001       1,60000000000000000E+001 
      1              2,00000000000000000E+000      -8,00000000000000000E+000 
      2              9,99999999999999999E-001       2,40000000000000000E+001 
      3             -2,00000000000000000E+000 
---------------------------------------------------------------------

Из приведенных результатов видно, что на выходе из подпрограммы DE55E в массиве XS точки XN, XK располагаются в порядке убывания. Вычисленные подпрограммой коэффициенты Чебышёва функции y(x) = y(1 - α), x = 1 - α, и коэффициенты Чебышёва ее производной y'(x) находятся в полном согласии с представлениями (15) и (16) (как и должно быть).