На практике
Прямолинейное движение тела, движущегося под действием переменной силы $$F(t, S, \dot S)$$,где S=S(t), описывается дифференциальным уравнением второго порядка в форме уравнения Ньютона:
где
m - масса тела,
S - перемещение тела,
$$\dot S$$ -линейная скорость,
$$\ddot S$$ -линейное ускорение.
При этом задаваемые начальные условия$$S \left|_{t=0}= S_0$$ $$\dot S \left|_{t=0}= \dot S_0$$ имеют четкий физический смысл. Это - начальное положение тела и его начальная скорость.
Вращательное движение тела под действием крутящего момента $$Mкр(t,\varphi, \dot \varphi)$$, где $$\varphi = \varphi(t)$$, описывается аналогично
$$Ip \cdot \ddot \varphi = M(t,\varphi,\dot \varphi),$$Где
Iр - полярный момент инерции тела,
$$\varphi$$ -угол поворота,
$$\dot \varphi$$ - угловая скорость,
$$\ddot \varphi$$ - угловое ускорение.
При
На практике лишь небольшое число дифференциальных уравнений допускает интегрирование в квадратурах. Еще реже удается получить решение в элементарных функциях. Поэтому большое распространение при решении математических моделей с помощью ЭВМ получили численные методы
Нахождение
Итак, дана функция y=f(x).
Найти интеграл этой функции на участке [a,b], т.е. найти$$\int\limits_a^b f(x)dx.$$
Если подынтегральная функция f(x) задана в аналитическом виде;
если функция f(x) непрерывна на отрезке [a,b] ;
если известна ее
то интеграл может быть вычислен по формуле Ньютона-Лейбница как приращение первообразной на участке [a,b], т.е.$$\int \limits_a^b f(x)dx = F(b)-F(a).$$
Но на практике формула Ньютона-Лейбница для вычисления интеграла используется редко. Численные методы интегрирования применяются в следующих случаях:
f(x) задана таблично на участке [a,b] ;f(x) задана аналитически, но ее f(x) задана аналитически, имеет В численных методах интегрирования не используется нахождение первообразной. Основу алгоритма численных методов интегрирования составляет f(x) на участке [a,b] (рис.12.1).
(рис 12.1) Геометрический смысл определенного интеграла
Суть всех численных методов интегрирования состоит в приближенном вычислении указанной площади. Поэтому все численные методы являются приближенными.
При вычислении интеграла подынтегральная функция f(x) аппроксимируется интерполяционным [a,b] делят на части и интерполяционные многочлены строят для каждой части деления.
Порядок вычисления интеграла численными методами следующий (рис.12.2):
[a,b] делим на n равных частей с шагом h=(b-a)/n.f(x) аппроксимируем интерполяционным n = 0,1,2:I равно сумме площадей частичных трапеций$$I=\sum \limits_{i=0}^{n-1}S_i$$
(рис 12.2) Вычисление определенного интеграла
Нахождение приближенного значения интеграла называется квадратурой, а формулы для приближенного вычисления интеграла - квадратурными формулами или квадратурными суммами.
Разность R между точным значением интеграла и приближенным значением называется остаточным членом или погрешностью квадратурной формулы, т.е.
Если в каждой из частей деления интервала [a,b] подынтегральная функция аппроксимируется OX, то квадратурная формула называется формулой прямоугольников, а метод -
Если в каждой из частей деления интервала [a,b] подынтегральная функция аппроксимируется
Если в каждой из частей деления интервала [a,b] подынтегральная функция аппроксимируется
Словесный алгоритм
[a,b] делим на n равных частей с шагом h=(b-a)/n.yi подынтегральной функции f(x) в каждой части деления, т.е.$$y_i=f(x_i), i=\overline{0,n}.$$
f(x) аппроксимируем интерполяционным n = 0, т.е. прямой, параллельной оси OX. В результате вся подынтегральная функция на участке [a,b] аппроксимируется ломаной линией.Si частичного прямоугольника.I равно сумме площадей частичных прямоугольников.Если высота каждого частичного прямоугольника равна значению подынтегральной функции в левых концах каждого шага, то метод называется методом левых прямоугольников (рис.12.3). Тогда квадратурная формула имеет вид
$$I=\sum \limits_{i=0}^{n-1}S_i = \sum \limits_{i=0}^{n-1}h \cdot y_i = h \cdot \sum \limits_{i=0}^{n-1}y_i.$$
(рис 12.3) Метод левых прямоугольников
Если высота каждого частичного прямоугольника равна значению подынтегральной функции в правых концах каждого шага, то метод называется методом правых прямоугольников (рис.12.4). Тогда квадратурная формула имеет вид
$$I=\sum \limits_{i=1}^{n}S_i = \sum \limits_{i=1}^{n}h \cdot y_i = h \cdot \sum \limits_{i=1}^{n}y_i.$$
(рис 12.4) Метод правых прямоугольников
Точность каждого h.
Алгоритм вычисления интеграла построим в виде итерационного процесса поиска с автоматическим выбором шага. На каждом шаге будем уменьшать шаг в два раза, то есть увеличивать число шагов n в два раза. Выход из процесса поиска организуем по точности вычисления интеграла. Начальное число шагов n=2.Схема алгоритма
(рис 12.5) Схема алгоритма метода прямоугольников (с автоматическим выбором шага)
Условные обозначения:
a,b - концы интервала,
$$\varepsilon$$ - заданная точность,
с=0 - метод левых прямоугольников,
с=1 - метод правых прямоугольников,
S1 - значение интеграла на предыдущем шаге,
S - значение интеграла на текущем шаге.
Словесный алгоритм
[a,b] делим на n равных частей с шагом h=(b-a)/n.f(x) аппроксимируем прямой, соединяющей две соседние узловые точки. В результате вся подынтегральная функция на участке [a,b] заменяется ломаной линией проходящей через все узловые точки.Найдем площади Si частичных трапеций:
Приближенное значение интеграла равно
$$I=\sum \limits_{i=1}^{n-1}S_i = \frac{h}{2} \sum \limits_{i=1}^{n}(y_i + y_{i+1}) = \frac{h}{2}(y_0 + y_n + 2\sum \limits_{i=1}^{n-1}y_i).$$Точность h2.
Схема алгоритма
(рис 12.6) Схема алгоритма метода трапеций (с автоматическим выбором шага)
В a0x2+a1x+a2. В результате вся кривая подынтегральной функции на участке [a,b] заменяется кусочно-непрерывной линией, состоящей из отрезков квадратичных парабол. Приближенное значение интеграла I равно сумме площадей под квадратичными
Т.к. для построения квадратичной
Lk=2h.
В результате количество частей деления N2=n/2. Тогда n в
Определим площадь S1 на участке [x0, x2] (рис.12.2).
Исходя из S1 равна определенному интегралу от квадратичной [x0, x2]:
Неизвестные коэффициенты квадратичной а0 , а1, а2 определяем из условия прохождения (x0y0), (x1y1), (x2y2).
На основании этого условия строим систему линейных уравнений:
$$\left\{ \begin{array}{l} a_0x_0^2 + a_1x_0 + a_2 = y_0,\\ a_0x_1^2 + a_1x_1 + a_2 = y_1,\\ a_0x_2^2 + a_1x_2 + a_2 = y_2. \end{array} \right.$$Решая эту систему, найдем коэффициенты
В результате имеем: $$S_1=\frac{h}{3}(y_0+4y_1+y_2)$$..
Для участка [x2, x4]: $$S_2=\frac{h}{3}(y_2+4y_3+y_4)$$..
:::::::::::::::::::
Для участка [xi-1, xi+1]: $$S_k=\frac{h}{3}(y_{i-1}+4y_i+y_{i+1})$$.,
где $$k=\frac{i+1}{2}$$.
Суммируя все площади S1 под квадратичными
где
N2 - количество частей деления.
Точность (h3/h4).
Схема алгоритма
(рис 12.7) Схема алгоритма Симпсона (с автоматическим выбором шага)
Общий вид дифференциального уравнения
$$F(x,y,y')=0.$$Нормальная форма дифференциального уравнения
$$y'=f(x,y),$$где
y=y(x) -неизвестная функция, подлежащая определению,
f(x,y) - правая часть дифференциального уравнения в нормальной форме, равная первой y(x). В функцию f(x,y) помимо аргумента x входит и сама неизвестная функция y(x).
Пример:
$$x \cdot y'-(x^2-1) \cdot y=0$$ - общий вид дифференциального уравнения первого порядка,
$$y'=\frac{x^2-1}{x} \cdot y$$ - нормальная форма этого же уравнения.
Если неизвестная функция у зависит от одного аргумента x, то дифференциальное уравнение вида$$y'=f(x,y),$$
называется
Если функция у зависит от нескольких аргументов, то такое дифференциальное уравнение называется дифференциальным
Общим решением обыкновенного дифференциального уравнения$$y'=f(x,y),$$ является семейство функций у=у(х,с) (рис 12.8):
(рис 12.8)
При решении прикладных задач ищут частные
Нахождение
В численных методах [a,b] с шагом h, то есть найти таблицу
| i | x | y |
|---|---|---|
| 0 | x0 | y0 |
| 1 | x1 | y1 |
| 2 | x2 | y2 |
| 3 | x3 | y3 |
| ... | ... | ... |
| n | xn | yn |
Здесь
h - шаг интегрирования дифференциального уравнения,
a=x0 - начало участка интегрирования уравнения,
b=xn - конец участка,
n=(b-a)/h - число шагов интегрирования уравнения.
На графике (рис 12.9) решение (xi ,yi), $$i=\overline{1,n}$$.
(рис 12.9)
Наиболее эффективными и часто встречаемыми методами решениями у(х) в пределах каждого шага у(х) в окрестности шага h каждой i-ой точки в ряд Тейлора:
Усекая ряд Тейлора в различных точках и отбрасывая правые члены ряда, Рунге и Кутта получали различные методы для определения значений функции у(х) в каждой
Отбросим в (12.4) члены ряда, содержащие h2, h3, h4.
Тогда $$y(x_i+h)=y(x_i)+h \cdot y'(x_i)$$.
Так как $$y'(x_i)=f(x_i,y_i)$$
Получим формулу Эйлера:
$$y_{i+1}=y_i + h \cdot f(x_i,y_i)$$Так как точность
Алгоритм
(рис 12.10) Схема алгоритма метода Эйлера
Здесь
(x,y) -при вводе начальная точка, далее текущие значения табличной функции,
h -шаг
b -конец интервала интегрирования.
Рассмотрим геометрический смысл
Формула Эйлера имеет вид:
$$y_{i+1}=y_i + h \cdot f(x_i,y_i),$$где $$f(x_i,y_i) = y'(x_i) = \tg\alpha_i$$.
Тогда формула Эйлера принимает вид:
$$y_{i+1}=y_i + h \cdot \tg\alpha_i,$$где
$$\tg\alpha_i$$ - тангенс угла наклона касательной к искомой функции у(x) в начальной точке каждого шага.
(рис 12.11) Геометрический смысл метода Эйлера
В результате в y(x) на участке [a,b] аппроксимируется ломаной линией, каждый отрезок которой на шаге h линейно аппроксимирует искомую функцию. Поэтому
В xi. В действительности производная, а, значит, и тангенс угла наклона касательной к кривой y(x) в пределах каждого шага меняется. Поэтому в точке xi+h наклон касательной не должен быть равен наклону в точке xi. Следовательно, на каждом шаге вносится погрешность.
Первый отрезок ломаной действительно касается искомой интегральной кривой y(x) в точке (x0,y0). На последовательных же шагах касательные проводятся из точек (xi,yi), подсчитанных с погрешностью. В результате с каждым шагом ошибки накапливаются.
Основной недостаток
Отбросим в (12.4) члены ряда, содержащие h3, h4, h5:.
Тогда
$$y(x_i+h)=y(x_i)+h\cdot y'(x_i)+\frac{h^2}{2!} \cdot y"(x_i).$$Чтобы сохранить член ряда, содержащий h2, надо определить y"(xi).Ее можно аппроксимировать разделенной разностью 2-го порядка
Подставляя это выражение в (12.6), получим
$$y=(x_i+h) =y(x_i) + h\cdot y'(x_i) + \frac{h}{2} \cdot \frac{y'(x_i+h)-y'(x_i)}{h}=\\ =y(x_i) + \frac{h}{2}y'(x_i) + \frac{h}{2}y'(x_i+h).$$Окончательно, модифицированная или уточненная формула Эйлера имеет вид:
$$y_{i+1}=y_i + \frac{h}{2}f(x_i,y_i) + \frac{h}{2}f(x_{i+1},y_{i+1}).$$Как видно, для определения функции y(x) в точке i+1 необходимо знать значение правой части дифференциального уравнения f(xi+1, yi+1) в этой точке, для определения которой необходимо знать предварительное значение yi+1.
Для определения предварительного значения yi+1 воспользуемся формулой Эйлера. Тогда все вычисления на каждом шаге по модифицированной или уточненной формуле Эйлера будем выполнять в два этапа:
На первом этапе вычисляем предварительное значение $$y_{i+1}^Э$$ по формуле Эйлера
$$y_{i+1}^Э = y_i + hf(x_i,y_i).$$На втором этапе уточняем значение y=i+1 по модифицированной или уточненной формуле Эйлера
Точность метода определяется отброшенными членами ряда Тейлора (12.4), т.е. точность уточненного или
Рассмотрим геометрический смысл
Так как$$f(x_i,y_i) = y'(x) = \tg\alpha_i,\\ f(x_{i+1},y_{i+1}) = y'(x_{i+1}) = \tg\alpha_{i+1},$$ то модифицированную формулу Эйлера можно представить в виде:
$$y_{i+1} = y_I + \frac{h}{2}\tg\alpha_i + \frac{h}{2}\tg\alpha_{i+1},$$где
$$\tg \alpha_i$$ - тангенс угла наклона касательной к искомой функции у(х) в начальной точке каждого шага,
$$\tg \alpha_{i+1}$$ - тангенс угла наклона касательной к искомой функции у(х) в конечной точке каждого шага.
(рис 12.12) Геометрический смысл модифицированного метода Эйлера
Здесь
P1 - накопленная ошибка в (i+1)й точке по
P2 - накопленная ошибка в (i+1)й точке по
Как видно из рис.12.11, в первой половине каждого шага, то есть на участке [xi, xi+h/2], искомая функция y(x) аппроксимируется прямой, которая выходит из точки (xi, yi) под углом, тангенс которого $$\tg \alpha_i = f(x_i,y_i)$$.
Во второй половине этого же шага, т.е. на участке [xi + h/2,xi + h], искомая функция y(x) аппроксимируется прямой, которая выходит из точки с координатами
под углом, тангенс которого
$$\tg \alpha_{i+1} = f(x_{i+1},y_{i+1}^Э).$$В результате в у(х) на каждом шаге аппроксимируется не одной прямой, а двумя.
Алгоритм
(рис 12.13) Схема алгоритма модифицированного метода Эйлера
Здесь
(x,y) -при вводе начальная точка, далее текущие значения табличной функции,
h -шаг
b -конец интервала интегрирования.
Самое большое распространение из всех численных методов
В этом методе на каждом шаге интегрирования дифференциальных уравнений искомая функция y(x) аппроксимируется рядом Тейлора (12.4), содержащим члены ряда с h4:
В результате ошибка на каждом шаге имеет порядок h5.
Для сохранения членов ряда, содержащих h2,h3,h4 необходимо определить вторую y", третью y"' и четвертую y(4) y(x). Эти производные аппроксимируем
В результате для получения значения функции yi+1 по методу Рунге-Кутта выполняется следующая последовательность вычислительных операций:
Вывод формулы не приведен. Предоставляется возможность вывод формул выполнить самостоятельно.
Алгоритм метода Рунге-Кутта (4-го порядка) можно построить в виде двух программных модулей: основной программы и подпрограммы Rk4, реализующей метод (рис 12.14).
(рис 12.14) Схема алгоритма метода Рунге-Кутта 4-го порядка.
Здесь
(x,y) -при вводе начальная точка, далее текущие значения табличной функции,
h -шаг
b -конец интервала интегрирования.
Любое дифференциальное уравнение m-го порядка
$$y^{(m)}=f(x,y,y',y",\ldots,y^{(m-1)})$$можно свести к системе, состоящей из m уравнений первого порядка при помощи замен.
Заменим:
$$y_1=y',\\ y_2=y''=y'_1,\\ y_3=y'''=y'_2,\\ \ldots\\ y_m=y^{(m)}=y'_{(m-1)}.$$В результате дифференциальное уравнение m -го порядка (12.8) сводится к системе, состоящей из m дифференциальных уравнений первого порядка:
Решением системы (12.2), а значит и дифференциального уравнения m -го порядка (12.1) является m табличных функций $$y, y_1=y', y_2=y_1^{''}, \ldots, y_m=y_{(m-1)}$$
В задачах моделирования
Общий вид дифференциальных уравнений второго порядка:
$$F(x,y,y',y'')=0$$Нормальная форма дифференциальных уравнений второго порядка:
$$y''=f(x,y,y')$$Пример
Уравнение в общем виде
$$x^2y'' - xy' + (x^2 - 1)y = 0.$$Его нормальная форма
$$y''=\frac{1}{x}y' - \frac{x^2-1}{x^2}y.$$Дифференциальное уравнение второго порядка (12.11) можно свести к системе, состоящей из двух дифференциальных уравнений первого порядка при помощи замен.
Заменим y1=y',
Тогда y'1=y".
В результате уравнение (12.11) сводится к системе, состоящей из двух дифференциальных уравнений первого порядка:
$$\left\{ \begin{array}{l} y_1=y'\\ y'_1=f(x,y,y_1). \end{array} \right.$$Для примера (12.12) эта система имеет вид:
$$\left\{ \begin{array}{l} y'=y_1\\ y_1^{'}=\frac{1}{x}y_1-\frac{x^2-1}{x^2}y \end{array} \right.$$Решением этой системы являются две функции y(x) и y1(x),
где
$$y_1(x)=y'(x).$$Сформулируем
Дана система
$$\left\{ \begin{array}{l} y'=f_1(x,y,y_1),\\ y_1^{'}=f_2(x,y,y_1). \end{array} \right.$$Даны два начальных условия:
$$y(x_0) = y_0,\\ y_1(x_0)=(y_1)_0.$$Необходимо проинтегрировать систему на участке [a, b] с шагом h.
В численных методах
Найти табличные функции
$$y_i(x_i)$$ и $$(y_1)_i(x_i), i=\overline{1,n}$$, т.е. найти таблицу
| i | x | y | y1 |
|---|---|---|---|
| 0 | x0 | y0 | (y1)0 |
| 1 | x1 | y1 | (y1)1 |
| 2 | x2 | y2 | (y1)2 |
| 3 | x3 | y3 | (y1)3 |
| ... | ... | ... | ... |
| n | xn | yn | (y1)n |
Здесь
h - шаг интегрирования дифференциального уравнения,
a=x0 - начало участка интегрирования уравнения,
b=xn - конец участка,
n=(b-a)/h - число шагов интегрирования уравнения.
На графике решением
При этом на каждом шаге, т.е. для каждого значения xi решением являются две узловые точки с координатами (xi, yi), (xi, (y1)i).
(рис 12.15)
Для решения системы дифференциальных уравнений используем те же методы, что и для решения одного дифференциального уравнения первого порядка. При этом необходимо соблюдать условие: на каждом шаге интегрирования, т. е. в точках с координатами х1 , х2 , х3 , : , хn все уравнения системы надо решать параллельно.
Для вычисления правых частей уравнений системы (12.14) необходимо сформировать подпрограмму PRAV.
Вернемся к примеру (12.13). Здесь на каждом шаге в подпрограмме PRAV будем вычислять правые части каждого уравнения системы:
Схема алгоритма решения системы (12.13) представлена на рис 12.16.
(рис 12.16) Схема алгоритма решения системы (12.6)
Здесь
h - шаг
b - конец участка,
n - число шагов интегрирования уравнения,
x, y, y1 - при вводе начальные значения, далее - текущие значения табличной функции.
Как уже было сказано, любое дифференциальное уравнение m-го порядка
$$y_{(m)}=f(x,y,y',y'',\ldots,y^{(m-1)})$$сводится к системе, состоящей из m дифференциальных уравнений 1-го порядка
$$\left\{ \begin{array}{l} y' = y_1\\ y'_1 = y_2\\ y'_2 = y_3\\ \ldots\\ y'_{(m-1)} = f(x,y_1,y_2,\ldots,y_{(m-1)} \end{array} \right.$$Численным решением системы (12.9), а значит и дифференциального уравнения m-го порядка (12.8) является m табличных функций
$$y, y_1=y', y_2=y'', \ldots, y_m=y^{(m-1)},$$т.е. функция y(x) и все ее производные, включая производную (m-1)-го порядка.
При этом каждая из табличных функций определяется на промежутке [a, b] с шагом h и включает n
| i | x | y | y1=y', | y1=y''1, | : | y_m-1=y^(m-1) |
|---|---|---|---|---|---|---|
| 0 | x0 | y0 | (y1)0 | (y2)0 | : | (ym-1)0 |
| 1 | x1 | y1 | (y1)1 | (y2)1 | : | (ym-1)1 |
| 2 | x2 | y2 | (y1)2 | (y2)2 | : | (ym-1)2 |
| 3 | x3 | y3 | (y1)3 | (y2)3 | : | (ym-1)3 |
| : | : | : | : | : | : | : |
| n | xn | yn | (y1)n | (y2)n | : | (ym-1)n |
где
m -
n = (b-a)/h - количество шагов интегрирования, равно количеству строк матрицы.
Каждый j -й столбец матрицы - это массив решений одной j -й табличной функции по всем n шагам интегрирования.
Каждая i -ая строка матрицы - это массив решений m табличных функций на одном i -ом шаге интегрирования.
На графике m -го порядка (12.8) является совокупность $$(n\times m)$$ xi, $$i=\overline{1,n}$$, соответствуют m
При построении алгоритма задачи будем как и ранее расчет вести по шагам интегрирования, т.е. в цикле по $$i=\overline{1,n}.$$ При этом, как и ранее, на каждом i -ом шаге цикла будем рассчитывать решение дифференциального уравнения и тут же его печатать. Тогда нет необходимости формировать матрицу решений, а можно ограничиться формированием массива решений (12.15), который соответствует одной i-й строке матрицы:
где
$$y(1)= y(x),\\ y(2)= y'(x),\\ y(3)= y"(x),\\ \ldots \ldots\\ y(m)= y^{m-1}(x).$$Тогда при построении системы дифференциальных уравнений изменится индексация.
Рассмотрим пример (12.19).
Дано дифференциальное уравнение второго порядка
$$y''=\frac{1}{x}y' - \frac{x^2-1}{x^2}y$$С учетом обозначений (12.18) имеем:
$$y(1)=y(x),\\ y(2)=y'(x)$$Тогда дифференциальное уравнение (12.19) сводится к системе:
$$\left\{ \begin{array}{l} y'(1)=y(2),\\ y'(2)=\frac{1}{x}y(2)-\frac{x^2-1}{x^2}y(1). \end{array} \right.$$Вычисление правых частей уравнений системы (12.20) будем выполнять в подпрограмме PRAV. При этом подпрограмма PRAV будет иметь вид
$$\left\{ \begin{array}{l} f(1)=y(2),\\ f(2)=\frac{1}{x}y(2)-\frac{x^2-1}{x^2}y(1). \end{array} \right.$$Обращение к подпрограмме
PRAV(m, x, Y, F),
где
m -порядок системы,
x - значение x на i -м шаге интегрирования,
Y=[y(1), y(2), y(3), : , y(m)] - входной массив длиной m,
F=[f(1), f(2),:, f(m)] - результат, массив значений правых частей уравнений системы (12.10) длиной m.
Программу решения системы дифференциальных уравнений реализуем в виде 3-х программных модулей:
i -м шаге реализуется метод Рунге Кутта (4-го порядка) для системы дифференциальных уравнений m -го порядка. Здесь на каждом шаге интегрирования вычисляется массив решений Y длиной m. Для этого внутри подпрограммы RGK организуем циклы по j, где $$j=\overline{1,m}$$ ;F длиной m - значений правых частей уравнений системы.Схема алгоритма основной программы представлена на рис.12.17.
(рис 12.17) Схема алгоритма основной программы
Здесь
m -порядок системы,
h -шаг интегрирования,
n -количество шагов интегрирования,
x -начальное и далее - текущее значение x,
Y -массив длиной m, куда заносим начальные и далее - текущие значения решений системы на одном шаге интегрирования.
В подпрограмме RGK для вычисления элементов массива Y, используем те же формулы, что и для решения одного дифференциального уравнения 1-го порядка
Тогда
$$T(1,j)=h\cdot f_ j(x, Y),\\ y1(j)=y(j)+T(1,j)/2, j=\overline{1,m},\\ T(2,j)=h\cdot f_ j(x+h/2, Y1),\\ y1(j)=y(j)+T(2,j)/2, j=\overline{1,m},\\ T(3,j)=h\cdot f_ j(x+h/2, Y1),\\ y1(j)=y(j)+T(3,j)/2, j=\overline{1,m},\\ T(4,j)=h\cdot f_ j(x+h, Y1),\\ y(j)=y(j)+\frac{1}{6}(T(1,j)+2T(2,j)+2T(3,j)+T(4,j)).$$Здесь
Y - массив решений длиной m,
Y1 - рабочий массив длиной m,
T - рабочая матрица порядка ( $$4\times m$$ ).
Для вычисления значений fj правых частей дифференциальных уравнений системы перед вычислением каждого элемента матрицы Т на каждом j -ом шаге необходимо выполнить обращение к подпрограмме PRAV.
Схема алгоритма подпрограммы RGK представлена на рис.12.18
(рис 12.18) Схема алгоритма подпрограммы RGK
На практике
Прямолинейное движение тела, движущегося под действием переменной силы $$F(t, S, \dot S)$$,где S=S(t), описывается дифференциальным уравнением второго порядка в форме уравнения Ньютона:
где
m - масса тела,
S - перемещение тела,
$$\dot S$$ -линейная скорость,
$$\ddot S$$ -линейное ускорение.
При этом задаваемые начальные условия$$S \left|_{t=0}= S_0$$ $$\dot S \left|_{t=0}= \dot S_0$$ имеют четкий физический смысл. Это - начальное положение тела и его начальная скорость.
Вращательное движение тела под действием крутящего момента $$Mкр(t,\varphi, \dot \varphi)$$, где $$\varphi = \varphi(t)$$, описывается аналогично
$$Ip \cdot \ddot \varphi = M(t,\varphi,\dot \varphi),$$Где
Iр - полярный момент инерции тела,
$$\varphi$$ -угол поворота,
$$\dot \varphi$$ - угловая скорость,
$$\ddot \varphi$$ - угловое ускорение.
При
На практике лишь небольшое число дифференциальных уравнений допускает интегрирование в квадратурах. Еще реже удается получить решение в элементарных функциях. Поэтому большое распространение при решении математических моделей с помощью ЭВМ получили численные методы
Нахождение
Итак, дана функция y=f(x).
Найти интеграл этой функции на участке [a,b], т.е. найти$$\int\limits_a^b f(x)dx.$$
Если подынтегральная функция f(x) задана в аналитическом виде;
если функция f(x) непрерывна на отрезке [a,b] ;
если известна ее
то интеграл может быть вычислен по формуле Ньютона-Лейбница как приращение первообразной на участке [a,b], т.е.$$\int \limits_a^b f(x)dx = F(b)-F(a).$$
Но на практике формула Ньютона-Лейбница для вычисления интеграла используется редко. Численные методы интегрирования применяются в следующих случаях:
f(x) задана таблично на участке [a,b] ;f(x) задана аналитически, но ее f(x) задана аналитически, имеет В численных методах интегрирования не используется нахождение первообразной. Основу алгоритма численных методов интегрирования составляет f(x) на участке [a,b] (рис.12.1).
(рис 12.1) Геометрический смысл определенного интеграла
Суть всех численных методов интегрирования состоит в приближенном вычислении указанной площади. Поэтому все численные методы являются приближенными.
При вычислении интеграла подынтегральная функция f(x) аппроксимируется интерполяционным [a,b] делят на части и интерполяционные многочлены строят для каждой части деления.
Порядок вычисления интеграла численными методами следующий (рис.12.2):
[a,b] делим на n равных частей с шагом h=(b-a)/n.f(x) аппроксимируем интерполяционным n = 0,1,2:I равно сумме площадей частичных трапеций$$I=\sum \limits_{i=0}^{n-1}S_i$$
(рис 12.2) Вычисление определенного интеграла
Нахождение приближенного значения интеграла называется квадратурой, а формулы для приближенного вычисления интеграла - квадратурными формулами или квадратурными суммами.
Разность R между точным значением интеграла и приближенным значением называется остаточным членом или погрешностью квадратурной формулы, т.е.
Если в каждой из частей деления интервала [a,b] подынтегральная функция аппроксимируется OX, то квадратурная формула называется формулой прямоугольников, а метод -
Если в каждой из частей деления интервала [a,b] подынтегральная функция аппроксимируется
Если в каждой из частей деления интервала [a,b] подынтегральная функция аппроксимируется
Словесный алгоритм
[a,b] делим на n равных частей с шагом h=(b-a)/n.yi подынтегральной функции f(x) в каждой части деления, т.е.$$y_i=f(x_i), i=\overline{0,n}.$$
f(x) аппроксимируем интерполяционным n = 0, т.е. прямой, параллельной оси OX. В результате вся подынтегральная функция на участке [a,b] аппроксимируется ломаной линией.Si частичного прямоугольника.I равно сумме площадей частичных прямоугольников.Если высота каждого частичного прямоугольника равна значению подынтегральной функции в левых концах каждого шага, то метод называется методом левых прямоугольников (рис.12.3). Тогда квадратурная формула имеет вид
$$I=\sum \limits_{i=0}^{n-1}S_i = \sum \limits_{i=0}^{n-1}h \cdot y_i = h \cdot \sum \limits_{i=0}^{n-1}y_i.$$
(рис 12.3) Метод левых прямоугольников
Если высота каждого частичного прямоугольника равна значению подынтегральной функции в правых концах каждого шага, то метод называется методом правых прямоугольников (рис.12.4). Тогда квадратурная формула имеет вид
$$I=\sum \limits_{i=1}^{n}S_i = \sum \limits_{i=1}^{n}h \cdot y_i = h \cdot \sum \limits_{i=1}^{n}y_i.$$
(рис 12.4) Метод правых прямоугольников
Точность каждого h.
Алгоритм вычисления интеграла построим в виде итерационного процесса поиска с автоматическим выбором шага. На каждом шаге будем уменьшать шаг в два раза, то есть увеличивать число шагов n в два раза. Выход из процесса поиска организуем по точности вычисления интеграла. Начальное число шагов n=2.Схема алгоритма
(рис 12.5) Схема алгоритма метода прямоугольников (с автоматическим выбором шага)
Условные обозначения:
a,b - концы интервала,
$$\varepsilon$$ - заданная точность,
с=0 - метод левых прямоугольников,
с=1 - метод правых прямоугольников,
S1 - значение интеграла на предыдущем шаге,
S - значение интеграла на текущем шаге.
Словесный алгоритм
[a,b] делим на n равных частей с шагом h=(b-a)/n.f(x) аппроксимируем прямой, соединяющей две соседние узловые точки. В результате вся подынтегральная функция на участке [a,b] заменяется ломаной линией проходящей через все узловые точки.Найдем площади Si частичных трапеций:
Приближенное значение интеграла равно
$$I=\sum \limits_{i=1}^{n-1}S_i = \frac{h}{2} \sum \limits_{i=1}^{n}(y_i + y_{i+1}) = \frac{h}{2}(y_0 + y_n + 2\sum \limits_{i=1}^{n-1}y_i).$$Точность h2.
Схема алгоритма
(рис 12.6) Схема алгоритма метода трапеций (с автоматическим выбором шага)
В a0x2+a1x+a2. В результате вся кривая подынтегральной функции на участке [a,b] заменяется кусочно-непрерывной линией, состоящей из отрезков квадратичных парабол. Приближенное значение интеграла I равно сумме площадей под квадратичными
Т.к. для построения квадратичной
Lk=2h.
В результате количество частей деления N2=n/2. Тогда n в
Определим площадь S1 на участке [x0, x2] (рис.12.2).
Исходя из S1 равна определенному интегралу от квадратичной [x0, x2]:
Неизвестные коэффициенты квадратичной а0 , а1, а2 определяем из условия прохождения (x0y0), (x1y1), (x2y2).
На основании этого условия строим систему линейных уравнений:
$$\left\{ \begin{array}{l} a_0x_0^2 + a_1x_0 + a_2 = y_0,\\ a_0x_1^2 + a_1x_1 + a_2 = y_1,\\ a_0x_2^2 + a_1x_2 + a_2 = y_2. \end{array} \right.$$Решая эту систему, найдем коэффициенты
В результате имеем: $$S_1=\frac{h}{3}(y_0+4y_1+y_2)$$..
Для участка [x2, x4]: $$S_2=\frac{h}{3}(y_2+4y_3+y_4)$$..
:::::::::::::::::::
Для участка [xi-1, xi+1]: $$S_k=\frac{h}{3}(y_{i-1}+4y_i+y_{i+1})$$.,
где $$k=\frac{i+1}{2}$$.
Суммируя все площади S1 под квадратичными
где
N2 - количество частей деления.
Точность (h3/h4).
Схема алгоритма
(рис 12.7) Схема алгоритма Симпсона (с автоматическим выбором шага)
Общий вид дифференциального уравнения
$$F(x,y,y')=0.$$Нормальная форма дифференциального уравнения
$$y'=f(x,y),$$где
y=y(x) -неизвестная функция, подлежащая определению,
f(x,y) - правая часть дифференциального уравнения в нормальной форме, равная первой y(x). В функцию f(x,y) помимо аргумента x входит и сама неизвестная функция y(x).
Пример:
$$x \cdot y'-(x^2-1) \cdot y=0$$ - общий вид дифференциального уравнения первого порядка,
$$y'=\frac{x^2-1}{x} \cdot y$$ - нормальная форма этого же уравнения.
Если неизвестная функция у зависит от одного аргумента x, то дифференциальное уравнение вида$$y'=f(x,y),$$
называется
Если функция у зависит от нескольких аргументов, то такое дифференциальное уравнение называется дифференциальным
Общим решением обыкновенного дифференциального уравнения$$y'=f(x,y),$$ является семейство функций у=у(х,с) (рис 12.8):
(рис 12.8)
При решении прикладных задач ищут частные
Нахождение
В численных методах [a,b] с шагом h, то есть найти таблицу
| i | x | y |
|---|---|---|
| 0 | x0 | y0 |
| 1 | x1 | y1 |
| 2 | x2 | y2 |
| 3 | x3 | y3 |
| ... | ... | ... |
| n | xn | yn |
Здесь
h - шаг интегрирования дифференциального уравнения,
a=x0 - начало участка интегрирования уравнения,
b=xn - конец участка,
n=(b-a)/h - число шагов интегрирования уравнения.
На графике (рис 12.9) решение (xi ,yi), $$i=\overline{1,n}$$.
(рис 12.9)
Наиболее эффективными и часто встречаемыми методами решениями у(х) в пределах каждого шага у(х) в окрестности шага h каждой i-ой точки в ряд Тейлора:
Усекая ряд Тейлора в различных точках и отбрасывая правые члены ряда, Рунге и Кутта получали различные методы для определения значений функции у(х) в каждой
Отбросим в (12.4) члены ряда, содержащие h2, h3, h4.
Тогда $$y(x_i+h)=y(x_i)+h \cdot y'(x_i)$$.
Так как $$y'(x_i)=f(x_i,y_i)$$
Получим формулу Эйлера:
$$y_{i+1}=y_i + h \cdot f(x_i,y_i)$$Так как точность
Алгоритм
(рис 12.10) Схема алгоритма метода Эйлера
Здесь
(x,y) -при вводе начальная точка, далее текущие значения табличной функции,
h -шаг
b -конец интервала интегрирования.
Рассмотрим геометрический смысл
Формула Эйлера имеет вид:
$$y_{i+1}=y_i + h \cdot f(x_i,y_i),$$где $$f(x_i,y_i) = y'(x_i) = \tg\alpha_i$$.
Тогда формула Эйлера принимает вид:
$$y_{i+1}=y_i + h \cdot \tg\alpha_i,$$где
$$\tg\alpha_i$$ - тангенс угла наклона касательной к искомой функции у(x) в начальной точке каждого шага.
(рис 12.11) Геометрический смысл метода Эйлера
В результате в y(x) на участке [a,b] аппроксимируется ломаной линией, каждый отрезок которой на шаге h линейно аппроксимирует искомую функцию. Поэтому
В xi. В действительности производная, а, значит, и тангенс угла наклона касательной к кривой y(x) в пределах каждого шага меняется. Поэтому в точке xi+h наклон касательной не должен быть равен наклону в точке xi. Следовательно, на каждом шаге вносится погрешность.
Первый отрезок ломаной действительно касается искомой интегральной кривой y(x) в точке (x0,y0). На последовательных же шагах касательные проводятся из точек (xi,yi), подсчитанных с погрешностью. В результате с каждым шагом ошибки накапливаются.
Основной недостаток
Отбросим в (12.4) члены ряда, содержащие h3, h4, h5:.
Тогда
$$y(x_i+h)=y(x_i)+h\cdot y'(x_i)+\frac{h^2}{2!} \cdot y"(x_i).$$Чтобы сохранить член ряда, содержащий h2, надо определить y"(xi).Ее можно аппроксимировать разделенной разностью 2-го порядка
Подставляя это выражение в (12.6), получим
$$y=(x_i+h) =y(x_i) + h\cdot y'(x_i) + \frac{h}{2} \cdot \frac{y'(x_i+h)-y'(x_i)}{h}=\\ =y(x_i) + \frac{h}{2}y'(x_i) + \frac{h}{2}y'(x_i+h).$$Окончательно, модифицированная или уточненная формула Эйлера имеет вид:
$$y_{i+1}=y_i + \frac{h}{2}f(x_i,y_i) + \frac{h}{2}f(x_{i+1},y_{i+1}).$$Как видно, для определения функции y(x) в точке i+1 необходимо знать значение правой части дифференциального уравнения f(xi+1, yi+1) в этой точке, для определения которой необходимо знать предварительное значение yi+1.
Для определения предварительного значения yi+1 воспользуемся формулой Эйлера. Тогда все вычисления на каждом шаге по модифицированной или уточненной формуле Эйлера будем выполнять в два этапа:
На первом этапе вычисляем предварительное значение $$y_{i+1}^Э$$ по формуле Эйлера
$$y_{i+1}^Э = y_i + hf(x_i,y_i).$$На втором этапе уточняем значение y=i+1 по модифицированной или уточненной формуле Эйлера
Точность метода определяется отброшенными членами ряда Тейлора (12.4), т.е. точность уточненного или
Рассмотрим геометрический смысл
Так как$$f(x_i,y_i) = y'(x) = \tg\alpha_i,\\ f(x_{i+1},y_{i+1}) = y'(x_{i+1}) = \tg\alpha_{i+1},$$ то модифицированную формулу Эйлера можно представить в виде:
$$y_{i+1} = y_I + \frac{h}{2}\tg\alpha_i + \frac{h}{2}\tg\alpha_{i+1},$$где
$$\tg \alpha_i$$ - тангенс угла наклона касательной к искомой функции у(х) в начальной точке каждого шага,
$$\tg \alpha_{i+1}$$ - тангенс угла наклона касательной к искомой функции у(х) в конечной точке каждого шага.
(рис 12.12) Геометрический смысл модифицированного метода Эйлера
Здесь
P1 - накопленная ошибка в (i+1)й точке по
P2 - накопленная ошибка в (i+1)й точке по
Как видно из рис.12.11, в первой половине каждого шага, то есть на участке [xi, xi+h/2], искомая функция y(x) аппроксимируется прямой, которая выходит из точки (xi, yi) под углом, тангенс которого $$\tg \alpha_i = f(x_i,y_i)$$.
Во второй половине этого же шага, т.е. на участке [xi + h/2,xi + h], искомая функция y(x) аппроксимируется прямой, которая выходит из точки с координатами
под углом, тангенс которого
$$\tg \alpha_{i+1} = f(x_{i+1},y_{i+1}^Э).$$В результате в у(х) на каждом шаге аппроксимируется не одной прямой, а двумя.
Алгоритм
(рис 12.13) Схема алгоритма модифицированного метода Эйлера
Здесь
(x,y) -при вводе начальная точка, далее текущие значения табличной функции,
h -шаг
b -конец интервала интегрирования.
Самое большое распространение из всех численных методов
В этом методе на каждом шаге интегрирования дифференциальных уравнений искомая функция y(x) аппроксимируется рядом Тейлора (12.4), содержащим члены ряда с h4:
В результате ошибка на каждом шаге имеет порядок h5.
Для сохранения членов ряда, содержащих h2,h3,h4 необходимо определить вторую y", третью y"' и четвертую y(4) y(x). Эти производные аппроксимируем
В результате для получения значения функции yi+1 по методу Рунге-Кутта выполняется следующая последовательность вычислительных операций:
Вывод формулы не приведен. Предоставляется возможность вывод формул выполнить самостоятельно.
Алгоритм метода Рунге-Кутта (4-го порядка) можно построить в виде двух программных модулей: основной программы и подпрограммы Rk4, реализующей метод (рис 12.14).
(рис 12.14) Схема алгоритма метода Рунге-Кутта 4-го порядка.
Здесь
(x,y) -при вводе начальная точка, далее текущие значения табличной функции,
h -шаг
b -конец интервала интегрирования.
Любое дифференциальное уравнение m-го порядка
$$y^{(m)}=f(x,y,y',y",\ldots,y^{(m-1)})$$можно свести к системе, состоящей из m уравнений первого порядка при помощи замен.
Заменим:
$$y_1=y',\\ y_2=y''=y'_1,\\ y_3=y'''=y'_2,\\ \ldots\\ y_m=y^{(m)}=y'_{(m-1)}.$$В результате дифференциальное уравнение m -го порядка (12.8) сводится к системе, состоящей из m дифференциальных уравнений первого порядка:
Решением системы (12.2), а значит и дифференциального уравнения m -го порядка (12.1) является m табличных функций $$y, y_1=y', y_2=y_1^{''}, \ldots, y_m=y_{(m-1)}$$
В задачах моделирования
Общий вид дифференциальных уравнений второго порядка:
$$F(x,y,y',y'')=0$$Нормальная форма дифференциальных уравнений второго порядка:
$$y''=f(x,y,y')$$Пример
Уравнение в общем виде
$$x^2y'' - xy' + (x^2 - 1)y = 0.$$Его нормальная форма
$$y''=\frac{1}{x}y' - \frac{x^2-1}{x^2}y.$$Дифференциальное уравнение второго порядка (12.11) можно свести к системе, состоящей из двух дифференциальных уравнений первого порядка при помощи замен.
Заменим y1=y',
Тогда y'1=y".
В результате уравнение (12.11) сводится к системе, состоящей из двух дифференциальных уравнений первого порядка:
$$\left\{ \begin{array}{l} y_1=y'\\ y'_1=f(x,y,y_1). \end{array} \right.$$Для примера (12.12) эта система имеет вид:
$$\left\{ \begin{array}{l} y'=y_1\\ y_1^{'}=\frac{1}{x}y_1-\frac{x^2-1}{x^2}y \end{array} \right.$$Решением этой системы являются две функции y(x) и y1(x),
где
$$y_1(x)=y'(x).$$Сформулируем
Дана система
$$\left\{ \begin{array}{l} y'=f_1(x,y,y_1),\\ y_1^{'}=f_2(x,y,y_1). \end{array} \right.$$Даны два начальных условия:
$$y(x_0) = y_0,\\ y_1(x_0)=(y_1)_0.$$Необходимо проинтегрировать систему на участке [a, b] с шагом h.
В численных методах
Найти табличные функции
$$y_i(x_i)$$ и $$(y_1)_i(x_i), i=\overline{1,n}$$, т.е. найти таблицу
| i | x | y | y1 |
|---|---|---|---|
| 0 | x0 | y0 | (y1)0 |
| 1 | x1 | y1 | (y1)1 |
| 2 | x2 | y2 | (y1)2 |
| 3 | x3 | y3 | (y1)3 |
| ... | ... | ... | ... |
| n | xn | yn | (y1)n |
Здесь
h - шаг интегрирования дифференциального уравнения,
a=x0 - начало участка интегрирования уравнения,
b=xn - конец участка,
n=(b-a)/h - число шагов интегрирования уравнения.
На графике решением
При этом на каждом шаге, т.е. для каждого значения xi решением являются две узловые точки с координатами (xi, yi), (xi, (y1)i).
(рис 12.15)
Для решения системы дифференциальных уравнений используем те же методы, что и для решения одного дифференциального уравнения первого порядка. При этом необходимо соблюдать условие: на каждом шаге интегрирования, т. е. в точках с координатами х1 , х2 , х3 , : , хn все уравнения системы надо решать параллельно.
Для вычисления правых частей уравнений системы (12.14) необходимо сформировать подпрограмму PRAV.
Вернемся к примеру (12.13). Здесь на каждом шаге в подпрограмме PRAV будем вычислять правые части каждого уравнения системы:
Схема алгоритма решения системы (12.13) представлена на рис 12.16.
(рис 12.16) Схема алгоритма решения системы (12.6)
Здесь
h - шаг
b - конец участка,
n - число шагов интегрирования уравнения,
x, y, y1 - при вводе начальные значения, далее - текущие значения табличной функции.
Как уже было сказано, любое дифференциальное уравнение m-го порядка
$$y_{(m)}=f(x,y,y',y'',\ldots,y^{(m-1)})$$сводится к системе, состоящей из m дифференциальных уравнений 1-го порядка
$$\left\{ \begin{array}{l} y' = y_1\\ y'_1 = y_2\\ y'_2 = y_3\\ \ldots\\ y'_{(m-1)} = f(x,y_1,y_2,\ldots,y_{(m-1)} \end{array} \right.$$Численным решением системы (12.9), а значит и дифференциального уравнения m-го порядка (12.8) является m табличных функций
$$y, y_1=y', y_2=y'', \ldots, y_m=y^{(m-1)},$$т.е. функция y(x) и все ее производные, включая производную (m-1)-го порядка.
При этом каждая из табличных функций определяется на промежутке [a, b] с шагом h и включает n
| i | x | y | y1=y', | y1=y''1, | : | y_m-1=y^(m-1) |
|---|---|---|---|---|---|---|
| 0 | x0 | y0 | (y1)0 | (y2)0 | : | (ym-1)0 |
| 1 | x1 | y1 | (y1)1 | (y2)1 | : | (ym-1)1 |
| 2 | x2 | y2 | (y1)2 | (y2)2 | : | (ym-1)2 |
| 3 | x3 | y3 | (y1)3 | (y2)3 | : | (ym-1)3 |
| : | : | : | : | : | : | : |
| n | xn | yn | (y1)n | (y2)n | : | (ym-1)n |
где
m -
n = (b-a)/h - количество шагов интегрирования, равно количеству строк матрицы.
Каждый j -й столбец матрицы - это массив решений одной j -й табличной функции по всем n шагам интегрирования.
Каждая i -ая строка матрицы - это массив решений m табличных функций на одном i -ом шаге интегрирования.
На графике m -го порядка (12.8) является совокупность $$(n\times m)$$ xi, $$i=\overline{1,n}$$, соответствуют m
При построении алгоритма задачи будем как и ранее расчет вести по шагам интегрирования, т.е. в цикле по $$i=\overline{1,n}.$$ При этом, как и ранее, на каждом i -ом шаге цикла будем рассчитывать решение дифференциального уравнения и тут же его печатать. Тогда нет необходимости формировать матрицу решений, а можно ограничиться формированием массива решений (12.15), который соответствует одной i-й строке матрицы:
где
$$y(1)= y(x),\\ y(2)= y'(x),\\ y(3)= y"(x),\\ \ldots \ldots\\ y(m)= y^{m-1}(x).$$Тогда при построении системы дифференциальных уравнений изменится индексация.
Рассмотрим пример (12.19).
Дано дифференциальное уравнение второго порядка
$$y''=\frac{1}{x}y' - \frac{x^2-1}{x^2}y$$С учетом обозначений (12.18) имеем:
$$y(1)=y(x),\\ y(2)=y'(x)$$Тогда дифференциальное уравнение (12.19) сводится к системе:
$$\left\{ \begin{array}{l} y'(1)=y(2),\\ y'(2)=\frac{1}{x}y(2)-\frac{x^2-1}{x^2}y(1). \end{array} \right.$$Вычисление правых частей уравнений системы (12.20) будем выполнять в подпрограмме PRAV. При этом подпрограмма PRAV будет иметь вид
$$\left\{ \begin{array}{l} f(1)=y(2),\\ f(2)=\frac{1}{x}y(2)-\frac{x^2-1}{x^2}y(1). \end{array} \right.$$Обращение к подпрограмме
PRAV(m, x, Y, F),
где
m -порядок системы,
x - значение x на i -м шаге интегрирования,
Y=[y(1), y(2), y(3), : , y(m)] - входной массив длиной m,
F=[f(1), f(2),:, f(m)] - результат, массив значений правых частей уравнений системы (12.10) длиной m.
Программу решения системы дифференциальных уравнений реализуем в виде 3-х программных модулей:
i -м шаге реализуется метод Рунге Кутта (4-го порядка) для системы дифференциальных уравнений m -го порядка. Здесь на каждом шаге интегрирования вычисляется массив решений Y длиной m. Для этого внутри подпрограммы RGK организуем циклы по j, где $$j=\overline{1,m}$$ ;F длиной m - значений правых частей уравнений системы.Схема алгоритма основной программы представлена на рис.12.17.
(рис 12.17) Схема алгоритма основной программы
Здесь
m -порядок системы,
h -шаг интегрирования,
n -количество шагов интегрирования,
x -начальное и далее - текущее значение x,
Y -массив длиной m, куда заносим начальные и далее - текущие значения решений системы на одном шаге интегрирования.
В подпрограмме RGK для вычисления элементов массива Y, используем те же формулы, что и для решения одного дифференциального уравнения 1-го порядка
Тогда
$$T(1,j)=h\cdot f_ j(x, Y),\\ y1(j)=y(j)+T(1,j)/2, j=\overline{1,m},\\ T(2,j)=h\cdot f_ j(x+h/2, Y1),\\ y1(j)=y(j)+T(2,j)/2, j=\overline{1,m},\\ T(3,j)=h\cdot f_ j(x+h/2, Y1),\\ y1(j)=y(j)+T(3,j)/2, j=\overline{1,m},\\ T(4,j)=h\cdot f_ j(x+h, Y1),\\ y(j)=y(j)+\frac{1}{6}(T(1,j)+2T(2,j)+2T(3,j)+T(4,j)).$$Здесь
Y - массив решений длиной m,
Y1 - рабочий массив длиной m,
T - рабочая матрица порядка ( $$4\times m$$ ).
Для вычисления значений fj правых частей дифференциальных уравнений системы перед вычислением каждого элемента матрицы Т на каждом j -ом шаге необходимо выполнить обращение к подпрограмме PRAV.
Схема алгоритма подпрограммы RGK представлена на рис.12.18
(рис 12.18) Схема алгоритма подпрограммы RGK
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.