Научная статья на тему 'ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ С ИСПОЛЬЗОВАНИЕМ КУСОЧНО-ПОЛИНОМИАЛЬНОЙ АППРОКСИМАЦИИ'

ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ С ИСПОЛЬЗОВАНИЕМ КУСОЧНО-ПОЛИНОМИАЛЬНОЙ АППРОКСИМАЦИИ Текст научной статьи по специальности «Математика»

CC BY
33
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КУСОЧНО-ИНТЕРПОЛЯЦИОННОЕ ПРИБЛИЖЕНИЕ / ПОЛИНОМ НЬЮТОНА / ЗАДАЧА КОШИ / ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ

Аннотация научной статьи по математике, автор научной работы — Джанунц Гарик Апетович

Предложен метод варьируемого кусочно-интерполяционного решения задачи Коши для систем обыкновенных дифференциальных уравнений в нормальной форме. Метод дает кусочно- полиномиальное приближение решения и его производной, характеризующееся относительно высокой точностью. Представлены коды программ и результаты численных экспериментов.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

NUMERICAL INTEGRATION OF ORDINARY DIFFERENTIAL EQUATIONS USING PIECEWISE POLYNOMIAL APPROXIMATION

A method is proposed for a varied piecewise interpolation solution of the Cauchy problem for systems of ordinary differential equations in normal form. The method gives a piecewise polynomial approximation of the solution and its derivative, characterized by relatively high accuracy. Program codes and results of numerical experiments are presented.

Текст научной работы на тему «ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ С ИСПОЛЬЗОВАНИЕМ КУСОЧНО-ПОЛИНОМИАЛЬНОЙ АППРОКСИМАЦИИ»

варианты, на несколько равных частичных интервалов. Затем найти середины частичных интервалов. Середины образуют последовательность равностоящих вариант. В качестве частоты каждой «новой» варианты (середина частичного интервала) принимают общее число первоначальных вариант, попавших в соответствующий частичный интервал.

Заметим, что замена первоначальных вариант серединами интервалов сопровождается ошибками, т.к. первоначальные варианты левой половины частичного интервала будут увеличены, а варианты правой половины уменьшены, однако, эти ошибки будут в основном погашаться, поскольку они имеют разные знаки.» [2, 244]

При вычислении выборочных средней и дисперсии можно пользоваться и другими методами, средствами обработки, например, методом сумм.

Приведенный метод позволяет уйти от рутинных вычислений с дробными числами, сделать проверку в расчетной таблице, что позволит, исключить ошибку, а также повысить уровень учебной мотивации у студентов.

Если студентам на практических или на лабораторных занятиях по дисциплине «Статистические методы анализа данных» предлагается спектр заданий, решение которых основывается на методах расчета сводных характеристик выборки, то у них формируются элементы следующих компетенций: ОПК-3: способность использовать основные законы естественнонаучных дисциплин и современные информационно-коммуникационные технологии в профессиональной деятельности, ПК-23: способность применять системный подход и математические методы в формализации решения прикладных задач.

ЛИТЕРАТУРА

1. Руководство к решению задач по теории вероятностей и математической статистике: Учеб. пособие для студентов вузов/В. Е. Гмурман. -9-е изд., стер. - М.: Высш. шк., 2004. - 404 с.

2. Теория вероятностей и математическая статистика: Учеб. пособие для вузов/ В.Е. Гмурман.-9-е изд., стер. - М.- Высш. шк., 2003. - 479 с.

3. http://fgosvo.ru/uploadflles/FGOS%20VO%203++/Bak/090303_B_3_17102017.pdf

Г.А. Джанунц

ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ С ИСПОЛЬЗОВАНИЕМ КУСОЧНО-ПОЛИНОМИАЛЬНОЙ АППРОКСИМАЦИИ

Аннотация. Предложен метод варьируемого кусочно-интерполяционного решения задачи Коши для систем обыкновенных дифференциальных уравнений в нормальной форме. Метод дает кусочно-полиномиальное приближение решения и его производной, характеризующееся относительно высокой точностью. Представлены коды программ и результаты численных экспериментов.

Ключевые слова: кусочно-интерполяционное приближение, полином Ньютона, задача Коши, обыкновенные дифференциальные уравнения.

G.A. Dzhanunts

NUMERICAL INTEGRATION OF ORDINARY DIFFERENTIAL EQUATIONS USING PIECEWISE

POLYNOMIAL APPROXIMATION

Abstract. A method is proposed for a varied piecewise interpolation solution of the Cauchy problem for systems of ordinary differential equations in normal form. The method gives a piecewise polynomial approximation of the solution and its derivative, characterized by relatively high accuracy. Program codes and results of numerical experiments are presented.

Key words: piecewise interpolation approximation, Newton polynomial, Cauchy problem, ordinary differential equations.

Введение и постановка вопроса. Математическая модель широкого класса динамических систем описывается задачей Коши для обыкновенных дифференциальных уравнений (ОДУ) вида [13]

d Y

— = F(t, Y), Y(t0) = Y0, (1)

dt

где Y = (y,(t), у ^ (t),..., yn (t)), F (t,Y) = (/,(t, Y), /2(t, Y),..., / (t, Y)). Применение приближенных аналитических способов решения (1), как правило, связано с существенными ограничениями по отношению к нелинейной части системы [5]. Относительно универсальным инструментом исследования таких моделей являются численные методы [11 - 13]. При этом актуально использование методов приближенного решения задачи (1), отличающихся высокой точностью и быстродействием при сохранении непрерывности приближения. В частности, при численном моделировании задач небесной механики, исследовании математических моделей химических и биологических осцилляторов. В работе предложен метод варьируемого кусочно-интерполяционного решения задачи (1). Метод основан на приближении решения и его производной

6

интерполяционными полиномами Ньютона на множестве подынтервалов, покрывающем область решения. На каждом подынтервале полином преобразуется к виду алгебраического полинома с числовыми коэффициентами. Коэффициенты полинома уточняются с использованием итерационного процесса, аналогичного последовательным приближениям Пикара. Степень интерполяционных полиномов и число подынтервалов разбиения программно варьируются с целью минимизации границы погрешности. Доказательство равномерной сходимости метода, оценки скорости сходимости и трудоемкости представлены в [4].

Кусочно-интерполяционное решение задачи Коши для ОДУ. Конструкция метода варьируемого кусочно-интерполяционного решения задачи (1) описывается вначале для случая n = 1 в (1), то есть для задачи вида

^ = f (x, y), y(Xo) = Уо, (2)

ax

в области

R: { x0 < x < Xfn ;| y (x) - y |<b; xf!n = const, b = const}. (3)

Предполагается, что в R функция f(x, y) определена, непрерывна, непрерывно дифференцируема (в точках x0 - справа, xfin - слева) и удовлетворяет условию Липшица:

| f (x, У - f (x,~~) |< L| У - ~ L = const V (x, У aV (x,~y) e R . (4)

Метод приближенного решения задачи (2) на отрезке xe [x0, xfin ] строится следующим образом. Выполняется разбиение области решения (3) на отрезки равной длины:

N-1

[ xo, xfn ] = J[a r ,в r ]. (5)

r=0

Для каждого отрезка [ar , вr] выбирается система подынтервалов равной длины, объединение которых покрывает [ar, Pr ]:

p-1

[a r ,в r ] = J [xr,-, xr (I+1)], r = 1,2,..., N -1, P = 2 k, k e {0,1,...}. (6)

i=0

За начальное значение решения на левой границе [xri , xri+1] всегда принимается конечное значение на правой границе [xr(i-1) , xri], i = 1,2,.,P -1, аналогично, при переходе от [ar-1,Pr-1] к [ar, Pr]. Для подынтервала [ x00, x01]: у (x00) = y из (2).

Ниже алгоритм построения полиномиального приближения решения задачи (2) и его итерационного уточнения приводится для произвольно фиксированного отрезка [ar, Pr], r = 0,...,N-1 из (5), обозначаемого [a, Р]. В данном обозначении система подынтервалов (6) примет вид

p-1

[a, в] = J [x,, xm], P = 2k, k e {0,1, ...} (7)

i = 0

При каждом i на i -м подынтервале из (7) строится интерполирующий функцию f (x,3~) из (2) полином Ньютона, в качестве начального значения решения и _y(x,. ), как отмечалось выше, принимается конечное значение решения на правой границе предыдущего подынтервала. Интерполяционный полином Ньютона

T,.n (t) строится с равноотстоящими узлами, расстояние между которыми h = —i+1--, n - степень полинома:

n

n Aj f j-1 x - x

*in (t) = f ( x,. 0,:у, ) + П (t - k), t = —-, (8)

j=1 j! k=0 h

где xij. = x,. + jh, j = 0, n , - узлы интерполяции, Ajfi0 =Ajf (x,.0,~,.) - конечная разность j -го порядка в точке x,.0. Полином (8) с использованием видоизменений формул Виета [6] эквивалентно преобразуется к виду алгебраического полинома с числовыми коэффициентами

n x - x

* in (t) = a, 0 +1 a,.t tt , t = —^. (9)

t=1 h

Полином (9) принимается за первоначальное приближение производной от искомого решения на данном

a, t t +1

подынтервале и обозначается T® (t). Первообразная от полинома (9) в виде р (n+1)(t) = + h ^—— t

t = 0 t + 1

t =-—, принимается в качестве первоначального приближения искомого решения на данном подынтервале

h

и обозначается соответственно: у(х)« р (П+ц^) . При фиксированном значении степени интерполяционного

полинома п на текущем подынтервале [х., х1+1] выполняется итерационное уточнение искомого приближения. Оно состоит в следующем.

Зависимая переменная в правой части /(х, у заменяется её приближением р.((1П+1)(/) :

/(х,у) «/(х,Р.(+1)(?)). После замены при той же степени п на том же подынтервале строится аппроксимирующий полученную функцию полином (8) в виде (9) заменяется на Р. (1+1)(?)):

Т?) «/(х,Р.(1+1)(?)). От Т(п2)(?), также как от Т..П1) (?) , берется первообразная с тем же значением

х п аи

константы Р,((,)+1)(?) = у +|Т,(п2)(ах в виде у,. + А^——?£+1, затем этот полином подставляется в правую

!=0 £ + 1

часть: f (x,у) * f (x,P^(t)), которая после этого аппроксимируется аналогично: Тt) *f (x,(t)). Итерации продолжаются в виде

P/(^i)(t) = У (П (t) dx , t) -f (x,р.Ц«), £ = 2,3, ... , (10)

xi

до достижения заданной малости «невязки», форма которой будет описана ниже. Здесь и выше t из (8).

Именно после окончания данных итераций на [ x,., x,+1] при соответственном £ в качестве начального

значения для следующего подынтервала [x,.+1, x,.+2] полагается = P((£B)+1)(x+J. По изложенному алгоритму обрабатывается каждый подынтервал из (7).

Замечание. Предложенный метод можно отнести к классу аналитических приближений: полиномиальные приближения функции правой части (2) на подынтервалах склеиваются посредством равных узловых значений в узлах интерполяции на границах. Отсюда вытекает непрерывная дифференцируемость и непрерывность приближенного решения рассматриваемой задачи Коши.

Приближение решения задачи Коши для системы ОДУ. В случае кусочно-интерполяционного приближения решения задачи Коши для системы ОДУ вида (1) также предполагается, что выполнены все условия существования и единственности в области

Ro: { xo <x< f ;||Y -Yo|| <b; f =constb =const},

где || Y || - каноническая форма вектора, для определенности ||y||= max yj . Кусочно-полиномиальное

1< j<n

приближение строится для каждого уравнения системы (1) в полной аналогии случаю решения задачи (2), кроме того, аналогично строится итерационное уточнение. При этом приближения всех компонент на шаге рассматриваются с одинаковыми значениями параметров £, k, n для всех уравнений с номерами j = 1, 2,...,n . Реализованы две разновидности метода:

1. В текущую итерацию подставляются приближения переменных с предыдущей итерации (по аналогии с методом простой итерации решения систем линейных алгебраических уравнений в приведенной форме [3]).

2. На текущей итерации в уравнении с номером i подставляются приближения всех переменных с номерами 1,2,...,i -1 (по аналогии с методом Зейделя [3]).

Численный и программный эксперимент. В качестве невязки, в отличие от работ [8, 9], выбиралось приближение к разности между первообразными от аппроксимирующих полиномов и решением на текущем отрезке фиксированной длины, многократно меньшей длины интервала приближения, как предложено в работе [7]. Первоначально искомое приближение строилось по формуле приближенного вычисления интеграла. Именно, разность между решением и приближением на отрезке [xj, x] можно представить в виде:

y(x) - У (xj) - (P/++1 (x) - Pr(£n+11 (xj)) * J (f (x, y) - f (x, p£n+1 (x)))dx . (11)

xJ

В свою очередь,

J(f (x,y) - f (x,Pr(£++1 (x)))dx * xJ(f (x, Pr^+1 (x))- Т« (t))dx, (12)

где на i -м подынтервале t определяется из (8). Для вычисления интеграла J(f(x,P^n+^x))-Тг(£+(t))dx в (12)

xj

использована формула прямоугольников:

J (f (x, Pr?n+1( x) )-Tr(£n(t ))dx «gf (xq , Pr(£n+1( xq ))-Tr(£n(tq ))X ~ = ^^ , x„ = xj .

xf q=0 N

Применение в рассматриваемом аспекте квадратурных формул высокого порядка не улучшает аппроксимацию решения задачи (2). Окончательно, невязка в рассматриваемой форме принимается в виде:

А N =

q=0

~ = Xo , xN-1 - x0 = const, (13)

где длина промежутка приближенного интегрирования xN-1 - x0 = const достаточно мала и фиксирована инвариантно относительно разбиения отрезка на подынтервалы в (6).

Если в зависимости от индекса отрезка (5), числа подынтервалов на нем и степени полинома на подынтервалах невязку из (13) обозначить

А N = А N (r, k, и),

то для каждого разбиения отрезка [a r, ßr ] из (5) выбирается max А N (r, k, и). Среди этих максимумов

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

[ xrj , xri+1 ]

невязки выбирается минимальная по всем разбиениям на подынтервалы при всех вариациях степени на их полной совокупности:

min max АN(r,k,и). (14)

k[xri , xri+1 ]

В соответствии со значением (14) фиксируется то число подынтервалов 2k и та степень полинома и на каждом из них на отрезке [ar, ßr ] , при которых достигается этот минимум.

В [4] изложена более точная форма невязки, конструируемая на основе разности приближений к решению на текущем и предшествующем количестве подынтервалов из (6), с последующей модификацией. Её применение позволяет достигнуть большей точности при существенно меньшем времени решения, чем с невязкой вида (14). Вследствие этого в программной реализации, представленной ниже, использована данная форма невязки. Также в программной реализации предложенного метода дополнительно используется динамическая коррекция начальных данных, описание которой также представлено в [4].

Ниже приводится программная реализация предложенного метода кусочно-интерполяционного приближения решения задачи (1) (листинг 1), результаты программного и численного эксперимента.

Листинг 1

program RD_system4; {$APPTYPE CONSOLE} uses SysUtils, Math;

const Anach=0; Bkonech=6*Pi;

MaxExtended:extended = 1.0E100;

var

K_iter,output: integer; Nmin,Nmax,Kmin,Kmax:byte;

Vel_int,Ynach1,Ynach2,Ynach3,Ynach4,otrezok_integr:extended; Nev,K_iter_nach:integer; hour, minut, sec,msec :word; tnach,tkonech:extended;

function f1(x,y1,y2,y3,y4: extended):extended //функция правой части begin f1 :=y3 end;

function f2(x,y1,y2,y3,y4: extended):extended; begin f2:=y4 end;

function f3(x,y1,y2,y3,y4: extended):extended;

begin f3:=-y1/(sqr(sqrt(y1*y1+y2*y2))*sqrt(y1*y1+y2*y2)) end;

function f4(x,y1,y2,y3,y4: extended):extended;

begin f4:=-y2/(sqr(sqrt(y 1*y1 +y2 *y2))*sqrt(y 1*y1 +y2 *y2)) end;

procedure

RD(Ynach1,Ynach2,Ynach3,Ynach4,Vel_int:extended;K_iter,Nmin,Nmax,Kmin,Kmax:integer;otrezok_integr:extende d);

const nn=30; type

matr=array[0..nn,0..nn] of extended; vect=array[0..nn] of extended; matrC=array[-5..nn+1] of extended; matrAll=array [0..33000] of matrC; matrC_=AmatrAll; var

pod,pod1,pod2,pod11,pod21:longint; n,k,n_,k_,n_opt,k_opt:byte; i,j,int:integer;

x,y01,y02,y03,y04,a0,b0,a00,b00,max,min,MinGL,s,s1,s2,s3,s4,Min0,Xfinal,Xfinal1,Xfinal2,h:extended;

PogrFun,PogrFun1,PogrFun2,PogrFun3 ,PogrFun4:extended;

Min_konech,s_l1, s_r1, s_l2, s_r2:extended;

Ck1,Ck11,Ck12,Ck1_,Ck1_opt,Ck11_,Ck11_opt:matrC_;

Ck2,Ck21,Ck22,Ck2_,Ck2_opt,Ck21_,Ck21_opt:matrC_;

Ck3,Ck31,Ck32,Ck3_,Ck3_opt,Ck31_,Ck31_opt:matrC_;

Ck4,Ck41,Ck42,Ck4_,Ck4_opt,Ck41_,Ck41_opt:matrC_;

d:matr;

//Восстановление коэффициентов полинома по его корням procedure Viet(n:byte; var d:matr); var k,i:byte; e:matr; begin

e[1,1]:=1; e[1,0]:=0; for k:=2 to n do

begin e[k,0]:=-e[k-1,0]*(k-1); for i:=1 to k-1 do

e[k,k-i]:=e[k-1,k-i-1]-e[k-1,k-i]*(k-1); e[k,k]:=e[k-1,k-1] end; for k:=1 to n do for i:=0 to k do d[i,k]:=e[k,i] end;

//вычисление конечных разностей

procedure Konech_Raznoct(fy:vect; n:byte; var dy:matr);

var i,j:byte;

begin

for j:=0 to n-1 do dy[1^j]:=fy[j+1]-fy[j];

for i:=2 to n do for j:=0 to n-i do dy[i,j]:=dy[i-1,j+1]-dy[i-1,j]

end;

//построение полинома Ньютона в канонической форме по узловым значениям procedure Newton(U:Vect; n:byte; var Mcoef:matrC); var dy:matr; b:vect; p,s:extended; j,i:byte; begin

Konech_Raznoct(U,n,dy); p:=1;

for j:=1 to n do begin p:=p*j; b[j]:=dy[j,0]/p; end;

Mcoef[0]:=U[0];

for i:=1 to n do begin s:=0; for j:=i to n do s:=s+d[i,j]*b[j]; Mcoef[i]:=s; end

end;

//вычисление значения полинома по схеме Горнера function Gorner(Mcoef:matrC; x:extended):extended; var i,n:byte; s,t:extended; begin

t:=(x-Mcoef[-1 ] )/Mcoef[-2]; n:=trunc(Mcoef[-3]); s:=Mcoef[n]; for i:=n-1 downto 0 do s:=t*s+Mcoef[i]; Gorner:=s end;

//построение приближения решения на подынтервале с итерационным уточнением

procedure Polynomial(x:vect; h,y01,y02,y03,y04:extended; n,k,K_iter:integer; var C1,C2,C3,C4:matrC);

var i,iter:integer; sum1,sum2,sum3,sum4,sum:extended;

ytemp1,ytemp2,ytemp3,ytemp4,iy1,y1,iy2,y2,iy3,y3,iy4,y4:vect; A1,A2,A3,A4:matrC; begin

for i:=0 to n do y1[i]:=y01; for i:=0 to n do y2[i]:=y02; for i:=0 to n do y3 [i] :=y03; for i:=0 to n do y4[i]:=y04;

for iter:=1 to K_iter do begin

for i:=1 to n do begin

ytemp1[i]:=y1[i]; ytemp2[i]:=y2[i];

ytemp3[i]:=y3[i]; ytemp4[i]:=y4[i]; end;

for i:=0 to n do begin

fy 1 [i] :=f1 (x[i] ,y 1 [i] ,y2[i] ,y3 [i] ,y4 [i]); fy2[i] :=f2(x[i] ,y 1 [i] ,y2[i] ,y3 [i] ,y4 [i]); fy3 [i] :=f3 (x[i] ,y 1 [i] ,y2[i] ,y3 [i] ,y4 [i]); fy4[i] :=f4(x[i] ,y 1 [i] ,y2[i] ,y3 [i] ,y4 [i]) end;

Newton(fy1,n,A1); Newton(fy2,n,A2); Newton(fy3,n,A3);Newton(fy4,n,A4); C1[0]:=y1[0]; C1[-1]:=x[0]; C1[-2]:=h; C1[-3]:=n+1;C1[-4]:=k;C1[-5]:=n*h; C2[0]:=y2[0]; C2[-1]:=x[0]; C2[-2]:=h; C2[-3]:=n+1;C2[-4]:=k;C2[-5]:=n*h; C3[0]:=y3[0]; C3[-1]:=x[0]; C3[-2]:=h; C3[-3]:=n+1;C3[-4]:=k;C3[-5]:=n*h; C4[0]:=y4[0]; C4[-1]:=x[0]; C4[-2]:=h; C4[-3]:=n+1;C4[-4]:=k;C4[-5]:=n*h;

for i:=1 to n+1 do begin C1[i]:=A1[i-1]*h/i; C2[i]:=A2[i-1]*h/i; C3[i]:=A3[i-1]*h/i;C4[i]:=A4[i-1]*h/i;end; for i:=1 to n do begin y1[i]:=Gorner(C1,x[i]); y2[i]:=Gorner(C2,x[i]); y3[i]:=Gorner(C3,x[i]); y4[i] :=Gorner(C4,x[i]);end;

sum1:=0; for i:=1 to n do sum1:=sum1+abs(y1[i]-ytemp1[i]); sum2:=0; for i:=1 to n do sum2:=sum2+abs(y2[i]-ytemp2[i]); sum3:=0; for i:=1 to n do sum3:=sum3+abs(y3[i]-ytemp3[i]); sum4:=0; for i:=1 to n do sum4:=sum4+abs(y4[i]-ytemp4[i]); if sum1>sum2 then sum:=sum1 else sum:=sum2; if sum3>sum then sum:=sum3; if sum4>sum then sum:=sum4; if (sum<1e-30) or (sum>=1e50) then break; end; end;

//построение приближения на текущем интервале

procedure Subinterval(k,n,K_iter:integer; a0,b0,Ynach1,Ynach2,Ynach3,Ynach4:extended; var

Ck1,Ck2,Ck3,Ck4:matrC_); var hpd,a00,b00,y01,y02,y03,h:extended;

m,pod:longint; x:vect; j:byte; begin

hpd:=(b0-a0)/exp(k*ln(2));

a00:=a0; b00:=a00+hpd; y01:=Ynach1; y02:=Ynach2; y03:=Ynach3; y04:=Ynach4; x[0]:=a0; m:=0; pod:=0; while a00<=b0-hpd/2 do begin

h:=(b00-a00)/n;

for j:=1 to n do begin inc(m); x[j]:=a0+m*h end;

Polynomial(x,h,y01,y02,y03,y04,n,k,K_iter,Ck1A[pod],Ck2A[pod],Ck3A[pod],Ck4A[pod]);

y01:=Gorner(Ck1A[pod],x[n]); y02:=Gorner(Ck2A[pod],x[n]);

y03:=Gorner(Ck3A[pod],x[n]);y04:=Gorner(Ck4A[pod],x[n]); x[0]:=x[n]; inc(pod); a00:=a00+hpd; b00:=a00+hpd end end;

//вычисление интегральной невязки на интервале function Integral(a0,b0,a00,b00:extended; Ck:matrC_):extended; var pod1,pod2,m:longint;

x1,x2,h,ss:extended; begin

h:=(b00-a00)/5; m:=0; x1:=a00; x2:=a00+h; ss:=0; repeat

pod1:=trunc((x1-a0)/CkA[0,-5]);

if abs(x2-b0)<1e-15 then pod2:=trunc(exp(CkA[0,-4]*ln(2)))-1 else pod2:=trunc((x2-a0)/CkA[0,-5]); ss:=ss+abs(Gorner(CkA[pod2],x2)-Gorner(CkA[pod1],x1)); inc(m); x1:=a00+m*h;x2:=x1+h; until x2>b00+h/2; Integral:=ss; end;

function S_min(xx: extended): extended;

var pod1,pod11:longint;s1,s2,s3,s4,s:extended; begin

pod1 :=trunc((xx-a0)/ Ck1_optA[0,-5]); pod11 :=trunc((xx-a0)/Ck11_optA[0,-5]); s1 :=abs(Gorner(Ck1_optA[pod1],xx)-Gorner(Ck11 s2:=abs(Gorner(ck2_optA[pod1] ,xx)-Gorner(ck21 s3 :=abs(Gorner(Ck3_optA[pod1],xx)-Gorner(Ck31 s4:=abs(Gorner(Ck4_optA[pod1] ,xx)-Gorner(Ck41 if s1>s2 then S:=s1 else S:=s2; if s3>S then S:=s3; if s4>S then S:=s3; S_min:=S; end;

begin Viet(nn,d);

writeln('x':4,'y':15,'Pogr':25); writeln; New(Ck1);New(Ck11);New(Ck12);New(Ck1 New(Ck2);New(Ck21);New(Ck22);New(Ck2 New(Ck3);New(Ck31);New(Ck32);New(Ck3 New(Ck4);New(Ck41);New(Ck42);New(Ck4 a0:=Anach; b0:=Anach+Vel_int; while a0 < Bkonech do begin

inc(int);MinGL:=MaxExtended; n:=Nmin; repeat

k:=Kmin; Min:=MaxExtended; repeat

Subinterval(k,n,K_iter,a0,b0,Ynach1,Ynach2,Ynach3,Ynach4,Ck11,Ck21,Ck31,Ck41);

Subinterval(k+1,n,K_iter,a0,b0,Ynach1,Ynach2,Ynach3,Ynach4,Ck12,Ck22,Ck32,Ck42);

max:=0; a00:=a0; b00:=a00+otrezok_integr; i:=0;

while b00<=b0 do

begin

if Nev= 1 then //выбор алгоритма вычисления невязки begin

s1:=abs(Integral(a0,b0,a00,b00,Ck12)-Integral(a0,b0,a00,b00,Ck11)); s2:=abs(Integral(a0,b0,a00,b00,Ck22)-Integral(a0,b0,a00,b00,Ck21)); s3:=abs(Integral(a0,b0,a00,b00,Ck32)-Integral(a0,b0,a00,b00,Ck31)); s4:=abs(Integral(a0,b0,a00,b00,Ck42)-Integral(a0,b0,a00,b00,Ck41)); end else begin

s1:=abs(Integral(a0,b0,a00,b00,Ck12)-Integral(a0,b0,a00,b00,Ck11))/(1e-7+abs(Integral(a0,b0,a00,b00,Ck12))); s2:=abs(Integral(a0,b0,a00,b00,Ck22)-Integral(a0,b0,a00,b00,Ck21))/(1e-7+abs(Integral(a0,b0,a00,b00,Ck22))); s3:=abs(Integral(a0,b0,a00,b00,Ck32)-Integral(a0,b0,a00,b00,Ck31))/(1e-7+abs(Integral(a0,b0,a00,b00,Ck32))); s4:=abs(Integral(a0,b0,a00,b00,Ck42)-Integral(a0,b0,a00,b00,Ck41))/(1e-7+abs(Integral(a0,b0,a00,b00,Ck42))); end;

if s1>s2 then s:=s1 else s:=s2; if s3>s then s:=s3; if s4>s then s:=s4; if s>max then max:=s;

inc(i); a00:=a0+i*otrezok_integr; b00:=a00+otrezok_integr; end;

if max<Min then begin Min:=max; Ck1_A:=Ck12A; Ck11_A:=Ck11A; Ck2_A:=Ck22A; Ck21_A:=Ck21A; Ck3_A:=Ck32A; Ck31_A:=Ck31A; Ck4_A:=Ck42A; Ck41_A:=Ck41A end; inc(k);

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

until k>Kmax-1; if Min<MinGL then begin

MinGL:=Min;

Ck1_optA:=Ck1_A;Ck11_optA:=Ck11_A;Ck2_optA:=Ck2_A;Ck21_optA:=Ck21_A;Ck3_optA:=Ck3_A;Ck31_optA:=Ck31 _A;Ck4_optA:=Ck4_A;Ck41_optA:=Ck41_A

optA[pod11],xx)); optA[pod11],xx)); optA[pod11],xx)); optA[pod11],xx));

);New(Ck1_opt);New(Ck11_);New(Ck11_opt); );New(Ck2_opt);New(Ck21_);New(Ck21_opt); );New(Ck3_opt);New(Ck31_);New(Ck31_opt); );New(Ck4_opt);New(Ck41_);New(Ck41_opt);

end; inc(n);

until n>Nmax;

writeln('PogrMax= ',MinGL,' N= ',(Ck1_optA[0,-3]-1):3:0,' K= ',Ck1_optA[0,-4]:3:0); pod:=trunc(exp(trunc(Ck1_optA[0,-4])*ln(2)))-1; Ynachl :=Gorner(Ck1_optA[pod],b0); Ynach2 :=Gorner(ck2_optA[pod],b0); Ynach3 :=Gorner(ck3_optA[pod],b0); Ynach4 :=Gorner(ck4_optA[pod],b0); writeln(b0,' ',abs(Ynach1-0.5)); writeln(b0,' ',abs(Ynach2-0)); writeln(b0,' ',abs(Ynach3-o)); writeln(b0,' ',abs(Ynach4-sqrt(3))); writeln;

a0:=b0; b0:=a0+Vel_int; end;

Dispose(Ck1);Dispose(Ck11);Dispose(Ck12);Dispose(Ck1_);Dispose(Ck1_opt);

Dispose(ck11_);Dispose(Ck11_opt);Dispose(Ck2);Dispose(Ck21);Dispose(Ck22);

Dispose(ck2_);Dispose(Ck2_opt);Dispose(Ck21_);Dispose(ck21_opt);

Dispo se(ck3);Dispo se(Ck31) ;Dispose(Ck3 2);

Dispose(Ck3_);Dispose(Ck3_opt);Dispose(Ck31_);Dispose(Ck31_opt);

Dispo se(ck4) ;Dispo se(Ck41) ;Dispose(Ck42);

Dispose(Ck4_);Dispose(Ck4_opt);Dispose(Ck41_);Dispose(Ck41_opt);

end;

begin

tnach:=Gettime;

Ynach1 Ynach2 Ynach3 Ynach4

=0.5;//начальные условия

=0; =0;

=sqrt(3);

K_iter_nach:=50;//начальное количество итераций для выбора степени полинома и количества подынтервалов Vel_int:=2*Pi;

Nmin:=3; Nmax:=8;//диапазон вариации степени полинома Kmin:=3; Kmax:=8; //диапазон вариации k (соответствует 2Ak подынтервалам) Nev:=1;//Выбор вида невязки: 1- абсолютная погрешность, 2- относительная погрешность K_iter:=K_iter_nach;

otrezok_integr:=vel_int; //величина отрезка интегрирования

RD(Ynach1,Ynach2,Ynach3,Ynach4,Vel_int,K_iter,Nmin,Nmax,Kmin,Kmax,otrezok_integr); tkonech:=Gettime;

DecodeTime(tnach-tkonech, Hour, Minut, Sec, MSec); writeln; writeln('Calculation time ',Hour,':',Minut,':', Sec,':',MSec);

readln; end.

В [12] на серии тестовых задач представлено сравнение вычислительных качеств наиболее эффективных методов высокоточного решения нежестких задач (1): метода Дормана-Принса 8 (7) и экстраполяционной программы ODEX. Типичные результаты дает тестовая задача двух тел

x = —^rx, (15)

|x|

где x = (Xj, x2) - вектор положения, / - гравитационный параметр. В экспериментах значение гравитационного параметра принимается равным единице (/ = 1), а начальные условия

Xj = 1 -e, x2 = 0, Xj = 0, X2 = -J(1 + e)/(1 -e) , (16)

x 22

соответствующими однопараметрическому семейству орбит (x1 + e)2 +--- = 1 с эксцентриситетом e в

1-e

качестве параметра и с единичной большой полуосью.

Ниже, как и в работе [12], задача представлена с указанными значениями начальных данных в форме отличной от (15), (16) с целью соответствия стандартными обозначениям в области вычислительной математики:

У = У> У = .у 4> Уз = ■

У

(У2+ у2)3/2

У =■

У

(y2+ у2)3/2

У(0) = 0.5, у2(0) = 0, уз(0) = 0, у4(0) = л/3. На отрезке [0, 6я] метод Дормана-Принса 8-го порядка позволяет получить приближенное решение задачи (17) (случай эллиптической орбиты со значением эксцентриситета е = 0.5) с границей абсолютной погрешности порядка 1014 при « 39000 обращений к функции правой части, экстраполяционная программа ODEX на том же интервале достигает границы погрешности порядка 1013 при « 36000 обращений к функции правой части.

Метод Булирша-Штера, реализованный в Ma/hCAD, не превышает погрешности порядка 10 9, графики решения представлены на рис. 1.

Рис. 1. Решение задачи (17) на отрезке [0, 6л] методом Булирша-Штера

Наименьшей границы абсолютной погрешности, порядка 10-16 на том же отрезке, среди современных методов численного приближения уравнений движения [1] достигает интегратор Гаусса-Эверхарта 19-го порядка -GAUSS_32 [10], программно реализованный в среде Delphi [2]. В исходной реализации метода на языке Fortran использованы переменные типа Real*8. Использование типа данных extended в Delphi повышает точность приближения на 2 - 3 десятичных порядка. Интегратор Эверхарта основан на видоизмененных формулах неявных коллокационных методов Рунге-Кутта бутчеровского типа, однако, благодаря оригинальному представлению вычислительной схемы, с точки зрения численного интегрирования имеет ряд преимуществ [1]. При этом следует отметить, что метод адаптирован специально для решения задач небесной механики, в частности, механизм выбора величины шага интегрирования осуществлен с учетом специфики именно плоской задачи двух тел [1]. Для других задач, в частности, при исследовании математических моделей химических и биологических осцилляторов, метод не дает такой эффективности.

Излагаемый в работе метод варьируемого кусочно-интерполяционного решения задачи Коши для систем ОДУ дает решение этой же задачи с погрешностью, не превышающей порядок 10-17 при * 36000 обращений к функции правой части (количество обращений рассчитано при фиксированных значениях параметров программы). Указанная граница абсолютной погрешности достигнута при вr - ar = 2л и следующих границах параметров: 3<n <8 и 3<k< 8, расширение диапазона изменения параметров, замедляя процесс, не приводит к повышению точности. При этом, метод не специализируется на решении задач небесной механики, а является инвариантным для различных классов задач, включая жесткие. Аналогичные результаты получаются при решении других задач вида (1) [4].

ЛИТЕРАТУРА

1. Авдюшев, В.А. Интегратор Гаусса-Эверхарта // Вычислительные технологии. - 2010. - Т. 15. - № 4. -С. 31 - 47.

2. Борисов, В.Г. Модифицированная версия интегратора Гаусса-Эверхарта // Вестник Кемеровского госуд. университета. - 2015. - № 2 (62). - T.5. - С. 38 - 42.

3. Демидович, Б.П. Основы вычислительной математики. / Б.П. Демидович, И.А. Марон. - СПб.: Лань, 2011. - 672 с.

4. Джанунц, Г.А., Ромм, Я.Е. Варьируемое кусочно-интерполяционное решение задачи Коши для обыкновенных дифференциальных уравнений с итерационным уточнением // Ж. вычисл. матем. и матем. физ. - 2017. - Т. 57. - № 10. - С. 1641 - 1660.

5. Корн, Г.А. Справочник по математике для научных работников и инженеров: Определения. Теоремы. Формулы: Пер. с англ. под ред. И.Г. Арамановича. 6. изд. / Г.А. Корн, Т.М. Корн. - СПб.: Лань, 2003. - 831 с.

6. Ромм, Я.Е. Локализация и устойчивое вычисление нулей многочлена на основе сортировки. II // Кибернетика и системный анализ. -2007. - № 2. - С. 161 - 174.

7. Ромм, Я.Е., Джанунц, Г.А. Итерационное уточнение кусочно-полиномиального приближения решения задачи Коши для обыкновенных дифференциальных уравнений. Таганрог, 2015. Деп. в ВИНИТИ 07.12.2015. № 201-В2015. - 79 с.

8. Ромм, Я.Е., Джанунц, Г.А. Компьютерный метод варьируемой кусочно-полиномиальной аппроксимации функций и решений обыкновенных дифференциальных уравнений // Кибернетика и системный анализ. - 2013. - № 3. - С. 169 - 189.

9. Ромм, Я.Е. Кусочно-полиномиальные приближения функций и решений дифференциальных уравнений в применении к моделям периодических реакций / Я.Е. Ромм, Г.А. Джанунц. - Таганрог: Изд-во ТГПИ, 2013. - 240 с.

10. Татевян, С.К., Сорокин, Н.А., Залеткин, С.Ф. Численное интегрирование обыкновенных дифференциальных уравнений на основе локальных многочленных приближений // Вычислительные методы и программирование. - 2010. - Т. 1. - С. 28 - 61.

11. Хайрер, Э. Решение обыкновенных дифференциальных уравнений. Жесткие и дифференциально-алгебраические задачи / Э. Хайрер, Г. Ваннер. - М.: Мир, 1999. - 685 с.

12. Хайрер, Э. Решение обыкновенных дифференциальных уравнений. Нежесткие задачи / Э. Хайрер, С. Нёрсетт, Г. Ваннер. - М.: Мир, 1990. - 512 с.

13. Butcher, J.C. Numerical Methods for Ordinary Differential Equations / J.C. Butcher. - Chichester. John Wiley & Sons, Ltd. 2016. - xxiv+519 p. DOI:10.1002/9781119121534.

С.А. Донских, С.В. Полякова

ИСПОЛЬЗОВАНИЕ ЭЛЕКТРОННОГО УЧЕБНОГО ПОСОБИЯ ПО МЕХАНИКЕ В ДИСТАНЦИОННОМ ОБУЧЕНИИ ФИЗИКЕ

Аннотация. Электронные издания активно входят в нашу жизнь, что, несомненно, не обходит стороной и образовательные организации. Использование электронных учебников становится неизбежным в современных условиях, поэтому в данной статье рассматривается вопрос применения электронных учебных пособий в образовательном процессе, приводятся примеры получения «обратной связи» от обучающихся после изучения тем из предлагаемого пособия.

Ключевые слова: Электронный учебник, механика, физика, образовательный процесс, тест, задачи.

S.A. Donskih, S.V. Polyakova

USING AN ELECTRONIC TEXTBOOK ON MECHANICS IN DISTANCE LEARNING IN PHYSICS

Abstract. Electronic publications are actively included in our life, which, of course, does not pass by educational organizations. The use of electronic textbooks is becoming inevitable in modern conditions, so this article discusses the use of electronic textbooks in the educational process, provides examples of receiving "feedback" from students after studying the topics from the proposed manual.

Key words: Electronic textbook, mechanics, physics, educational process, test, tasks.

Электронные учебные пособия - это электронные издания, содержащие систематизированную информацию, изложенную в любой форме, удобной как для самостоятельного изучения обучающимися, так и для использования учителем на уроке.

Электронное учебное пособие - это комплекс обучающих, моделирующих и иных программ, размещающихся на съёмных носителях (флэшках или диске) и/или в Интернете. Оно, как правило, дополняет традиционный учебник какой-либо информацией, поясняющими материалами, видеофрагментами, виртуальными лабораторными работами. Помимо этого, оно может использоваться как инструмент для выполнения лабораторных и практических работ, как в ходе урока, так и в процессе самостоятельного изучения предмета обучающимся. Обучающийся, использующий электронное учебное пособие, может осваивать материал в своём индивидуальном ритме, исходя из своих возможностей и уровня подготовки [2, 3]. Применение электронных учебных пособий в учебном процессе даёт возможность более глубоко изучить материал, ознакомиться подробнее с заинтересовавшими или затруднительными для усвоения темами. Обширный и красочный иллюстративный материал электронного пособия даёт возможность продемонстрировать наглядно теоретическую информацию во всём её многообразии и комплексности. При использовании электронных учебных пособий осуществляется абстрактно-логическая деятельность обучающихся, что ведёт к лучшему осознанию и усвоению учебного материала

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

В настоящее время имеется широкий набор программного обеспечения, в котором можно создавать электронные учебники: /'Spring Swife, CowrseLab, Microsof PowerPoint и ряд других.

Проанализировав возможности всех вышеперечисленных программ, существующие требования к использованию программного обеспечения, нами было создано интерактивное электронное учебное пособие по теме «Механика. Законы сохранения в механике» на основе презентации в программе Microsoft PowerPoint. Эта программа пользуется популярностью в настоящее время, проста в использовании, имеется в распоряжении практически каждого пользователя персонального компьютера.

Электронное учебное пособие, построенное по модульному принципу, содержит в себе всю необходимую информацию и обычно состоит из нескольких частей:

i Надоели баннеры? Вы всегда можете отключить рекламу.