Аналитические методы решения дифференциальных уравнений это

Глава 7

Решение дифференциальных уравнений

Дифференциальные уравнения лежат в основе математического моделирования различных, в том числе физических, систем и устройств [1, 38, 46]. Решению таких уравнений посвящена эта глава. В ней рассмотрено как аналитическое, так и численное решение дифференциальных уравнений различного вида — линейных и нелинейных, классических и специальных, например, в частных производных и с учетом двухсторонних граничных условий. Описание сопровождается множеством наглядных примеров, реализованных в СКМ Maple 9.5/10.

7.1. Введение в решение дифференциальных уравнений

7.1.1. Дифференциальные уравнения первого порядка

Дифференциальные уравнения (ДУ) это уравнения, связывающие неизвестную функцию с какими либо ее производными и, возможно, с независимыми переменными. Если неизвестная функция зависит только от одной независимой переменной, то такое уравнение называется обыкновенным дифференциальным уравнением, а если от двух и более многих независимых переменных — дифференциальным уравнением в частных производных.

Простейшее дифференциальное уравнение первого порядка

(7.1)

в общем случае имеет множество решений в виде зависимостей y(х). Однако можно получить единственное решение, если задать начальные условия в виде начальных значений х0 и у0= у(х0). Это решение может быть аналитическим, конечно-разностным или численным.

7.1.2. Решение дифференциального уравнения радиоактивного распада

В качестве примера аналитического решения дифференциального уравнения первого порядка (файл der) запишем дифференциальное уравнение радиоактивного распада атомов (N — число атомов в момент времени t, g=1/c):

Используя функцию dsolve, которая более подробно будет описана чуть позже, получим его общее аналитическое решение:

В решении присутствует произвольная постоянная _С1. Но ее можно заметить на постоянную N(0)=N0, означающую начальное число атомов в момент t=0:

Если конкретно N0=100 и g=4, то получим:

Хотя dsolve выдает решение N(t) в символьном виде, оно пока недоступно для построения графика этого решения или просто вычисления в любой точке. Однако, используя функции assign или subs можно сделать это решение доступным. Например, используем такую конструкцию:

Теперь мы можем воспользоваться полученной зависимостью N(t) и построить график ее:

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

7.1.3. Модели популяций Мальтуса и Ферхюльса-Пирла

Еще одним классическим примером применения дифференциального уравнения первого порядка является давно известная и довольно грубая модель популяции Мальтуса. Не вдаваясь в хорошо известное описание этой модели, отметим, что она описывает численность особей или их биомассу x(t) в любой момент времени (для момента времени х(0)=N) Эта зависимость характеризуется коэффициентами рождаемости α и смертности β. При этом вводится их разность k=α-β.

Представим задание дифференциального уравнения динамики популяций по модели Мальтуса и его решение в аналитическом виде:

dsol1 := x(t) = Ne (k1)

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

Более правдоподобную модель популяций предложили Ферхюльст и Пирл. Эта модель учитывает (коэффициентом внутривидовую конкуренцию и позволяет учесть приближение популяций к некоторому состоянию равновесия. На рис. 7.1 представлено дифференциальное уравнение динамики популяций Ферхюльста-Пирла. Решения приведены в общем виде, а также для k=g= k/g=1 и разных x(0)=1, 0.5 и 2.

Рис. 7.1. Моделирование популяций по модели Ферхюльста и Пирла

Поведение системы зависит от соотношения k/g и x(0)=N. При их равенстве количество биомассы популяции не меняется. При N>k/g биомасса экспоненциально уменьшается, приближаясь к значению k/g, а при N (n) =f(x, у, у’, y», …, y( n-1) ),

Теперь решение этого уравнения можно свести к решению системы ОДУ:

В таком виде ДУ n-го порядка может решаться стандартными средствами решения систем ОДУ, входящими в большинство математических систем.

7.1.6. Решение задачи на полет камня

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

Модель должна позволять:

Вычислять положение камня в любой момент времени.

Масса камня, начальные координаты, начальная скорость и угол броска мяча.

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

Гипотезы, принятые для модели:

• камень будем считать материальной точкой массой m, положение которой совпадает с центром масс камня;

• движение происходит в поле силы тяжести с постоянным ускорением свободного падения g и описывается уравнениями классической механики Ньютона;

• движение камня происходит в одной плоскости, перпендикулярной поверхность Земли;

• сопротивлением воздуха на первых порах пренебрегаем.

В качестве параметров движения будем использовать координаты (х, у) и скорость v(vx, vy) центра масс камня.

Концептуальная постановка задачи на основе принятых гипотез заключается в определении закона движения материальной точки массой m под действием силы тяжести, если известны начальные координаты точки х0 и ее начальная скорость v0 и угол броска α0.

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

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

По оси x на камень не действуют никакие силы, по оси y — действует сила тяжести. Согласно законам Ньютона имеем уравнения движения по оси x и оси y.

(7.2)

при следующих начальных условиях

Надо найти зависимости x(t), y(y), vx(r), vy(t).

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

Решение этой задачи есть в любом учебнике физики. Тем не менее, выполним его средствами системы Maple. Из (7.2) запишем систему ОДУ первого порядка:

(7.3)

После интегрирования получим:

(7.4)

Определив константы интегрирования из начальных условий, окончательно запишем:

Из аналитического решения вытекает, что полет камня при отсутствии сопротивления воздуха происходит строго по параболической траектории, причем она на участках полета камня вверх и вниз симметрична. Необходимые для расчета уравнения заданы в параметрической форме — как зависимости от времени, что, кстати говоря, облегчает моделирование по ним полета камня. Немного позже мы решим эту задачу, используя средства Maple 9.5 для решения систем дифференциальных уравнений.

7.1.7. Классификация дифференциальных уравнений

Дифференциальные уравнения могут быть самого разного вида. На рис. 7.2 представлен раздел справки Maple 9.5 с классификацией дифференциальных уравнений. В ней представлено:

• 20 дифференциальных уравнений первого порядка;

• 25 дифференциальных уравнений второго порядка;

• 6 типов дифференциальных уравнений высшего порядка;

• основные функции решения дифференциальных уравнений.

Рис. 7.2. Классификация дифференциальных уравнений

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

В качестве примера работы с классификатором выберем решение дифференциального уравнения Бернулли. Для этого активизируем на рис. 7.2 гиперссылку с его именем — Bernoulli. Появится окно справки по этому уравнению, показанное на рис. 7.3 с открытой позицией меню Edit.

Рис. 7.3. Окно справки по решению дифференциального уравнения Бернулли

С помощью команды Copy Examples в позиции Edit меню можно перенести примеры решения с окна справки в буфер Clipboard операционной системы Windows. После этого командой Paste в меню Edit окна документа можно перенести примеры в текущий документ — желательно (но не обязательно) новый. Теперь можно наблюдать решение выбранного дифференциального уравнения — рис. 7.4.

Рис. 7.4. Пример решения дифференциального уравнения Бернулли из справки

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

В Maple 9.5 средства решения дифференциальных уравнений подверглись значительной переработке. Введены новые методы решения для дифференциальных уравнений Абеля, Риккати и Матье, новые методы инициализации и решения уравнений с кусочными функциями, улучшены алгоритмы решения численными методами. Детальное описание этих новинок можно найти в справке по разделу What’s New…. Это относится и к версии Maple 10.

7.1.8. Функция решения дифференциальных уравнений dsolve

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

Для решения системы простых дифференциальных уравнений (задача Коши) используется функция dsolve в разных формах записи:

Здесь ODE — одно обыкновенное дифференциальное уравнение или система из дифференциальных уравнений первого порядка с указанием начальных условий, у(х) —функция одной переменной, Ics — выражение, задающее начальные условия, —множество дифференциальных уравнений, — множество неопределенных функций, extra_argument —опция, задающая тип решения.

Параметр extra_argument задает класс решаемых уравнений. Отметим основные значения этого параметра:

• exact — аналитическое решение (принято по умолчанию);

• explicit — решение в явном виде;

• system — решение системы дифференциальных уравнений;

• ICs — решение системы дифференциальных уравнений с заданными начальными условиями;

• formal series — решение в форме степенного многочлена;

• integral transform — решение на основе интегральных преобразований Лапласа, Фурье и др.;

• series — решение в виде ряда с порядком, указываемым значением переменной Order;

• numeric — решение в численном виде.

Возможны и другие опции, подробное описание которых выходит за рамки данной книги. Его можно найти в справке по этой функции, вызываемой командой ?dsolve.

Для решения задачи Коши в параметры dsolve надо включать начальные условия, а при решении краевых задач — краевые условия. Если Maple способна найти решение при числе начальных или краевых условий меньше порядка системы, то в решении будут появляться неопределенные константы вида _С1, _С2 и т.д. Они же могут быть при аналитическом решении системы, когда начальные условия не заданы. Если решение найдено в неявном виде, то в нем появится параметр _Т. По умолчанию функция dsolve автоматически выбирает наиболее подходящий метод решения дифференциальных уравнений. Однако в параметрах функции dsolve в квадратных скобках можно указать предпочтительный метод решения дифференциальных уравнений. Допустимы следующие методы:

[quadrature, linear, Bernoulli, separable, inverse_linear, homogeneous, Chini, lin_sym, exact, Abel, pot_sym ]

Более полную информацию о каждом методе можно получить, используя команду ?dsolve,method и указав в ней конкретный метод. Например, команда ?dsolve,linear вызовет появление страницы справочной системы с подробным описанием линейного метода решения дифференциальных уравнений.

7.1.9. Уровни решения дифференциальных уравнений

Решение дифференциальных уравнений может сопровождаться различными комментариями. Команда

где n — целое число от 0 до 5 управляет уровнями детальности вывода. По умолчанию задано n = 0. Значение n = 5 дает максимально детальный вывод.

Производные при записи дифференциальных уравнений могут задаваться функцией diff или оператором дифференцирования D. Выражение sysODE должно иметь структуру множества и содержать помимо самой системы уравнений их начальные условия.

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

7.2. Примеры решения дифференциальных уравнений

7.2.1. Примеры аналитического решение ОДУ первого порядка

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

ln(sin(x)) — ln(у(x)) + _C1 = 0

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

7.2.2. Полет тела, брошенного вверх

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

В соответствии со вторым законом Ньютона многие физические явления, связанные с движением объектов, описываются дифференциальными уравнениями второго порядка. Ниже дан пример задания и решения такого уравнения (файл

dem), описывающего движение тела, брошенного вверх на высоте h0 со скоростью v0 при ускорении свободного падения g:

Итак, получено общее уравнение для временной зависимости высоты тела h(t). Разумеется, ее можно конкретизировать, например, для случая, когда g=9,8, h0=10 и v0=100:

Зависимость высоты тела от времени h(t) представлена на рис. 7.5. Нетрудно заметить, что высота полета тела вначале растет и достигнув максимума начинает снижаться. Оговоримся, что сопротивление воздуха в данном примере не учитывается, что позволяет считать задачу линейной. Полученное с помощью Maple 9.5 для этого случая решение совпадает с полученным вручную в примере, описанном в разделе 7.1.3.

Рис. 7.5. Зависимость высоты полета тела от времени h(t)

7.2.3. Поведение идеального гармонического осциллятора

Еще одним классическим применением дифференциальных уравнений второго порядка является решение уравнение идеального гармонического осциллятора (файл deio):

у(t) = _C1 sin(ω) + _C2 cos(ω)

График решения этого уравнения (рис. 7.6) представляет хорошо известную синусоидальную функцию. Интересно, что амплитуда колебаний в общем случае отлична от 1 и зависит от значения у(0) — при у(0)=0 она равна 1 (в нашем случае синусоида начинается со значение у(0)=-1). Подобным осциллятором может быть LC-контур или механический маятник без потерь.

Рис. 7.6. Решение дифференциального уравнения идеального осциллятора

7.2.4. Дополнительные примеры решения дифференциальных уравнений второго порядка

Ниже представлено решение еще двух дифференциальных уравнений второго порядка в аналитическом виде (de2a):

у(x) = -½sin(x) + ½cos(x) + e x _C1 + _C2

Ряд примеров на применение дифференциальных уравнений второго порядка при решении практических математических и физических задач вы найдете в главе 11.

7.2.5. Решение систем дифференциальных уравнений

Функция dsolve позволяет также решать системы дифференциальных уравнений. Для этого она записывается в виде

dsolve(ODE_sys, optional_1, optional_2. )

Здесь ODE_sys — список дифференциальных уравнений, образующих систему, остальные параметры опциональные и задаются по мере необходимости. Они могут задавать начальные условия, явно представлять искомые зависимости, выбирать метод решения и т.д. Детали задания опциональных параметров можно найти в справке.

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

Рис. 7.7. Решение системы из двух дифференциальных уравнений различными методами

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

7.2.6. Модель Стритера-Фелпса для динамики кислорода в воде

В качестве еще одного примера решении системы из двух дифференциальных уравнений рассмотрим модель Стритера-Фелпса, предложенную для описания динамики содержания растворенного в воде кислорода. Описание этой модели можно найти в [41]. Ниже представлено задание этой модели в виде системы из двух дифференциальных уравнений и их аналитическое решение (файл demp):

Здесь: x1(t) — концентрация в воде растворенного кислорода в момент времени t; x2(t) — концентрация биохимического потребления кислорода (БПК), С — концентрация насыщения воды кислородом, K1 — постоянная скорости аэрации, K2 — постоянная скорости уменьшения (БПК), a — начальное значение x1(t) и b — начальное значение х2(t) при t=0.

В данном случае получены два варианта аналитического решения — основное и упрощенное с помощью функции simplify. Читатель может самостоятельно построить графики зависимостей x1(t) и x2(t).

7.3. Специальные средства решения дифференциальных уравнений

7.3.1. Численное решение дифференциальных уравнений

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

Для этого вернемся к дифференциальному уравнению (7.1). Заменим приращение dx на малое, но конечное приращение dx=h. Тогда приращение dy будет равно

Если, к примеру, известно начальное значение у=у0, то новое значение у будет равно

Распространяя этот подход на последующие шаги решения получим конечно-разностную формулу для решение приведенного уравнения в виде:

Эта формула известна как формула простого метода Эйлера первого порядка для решения дифференциального уравнения (7.1). Можно предположить (так оно и есть), что столь простой подход дает большую ошибку — отбрасываемый член порядка O(h 2 ). Тем не менее, физическая и математическая прозрачность данного метода привела к тому, что он широко применяется на практике.

Существует множество более совершенных методов решения дифференциальных уравнений, например, усовершенствованный метод Эйлера, метод трапеций, метод Рунге-Кутта, метод Рунге-Кутта-Фельберга и др. Ряд таких методов реализован в системе Maple и может использоваться при численном решении дифференциальных уравнений и систем с ними.

Для решения дифференциальных уравнений в численном виде в Maple используется та же функция dsolve с параметром numeric или type=numeric. При этом решение возвращается в виде специальной процедуры, по умолчанию реализующей широко известный метод решения дифференциальных уравнений Рунге-Кутта-Фельберга порядков 4 и 5 (в зависимости от условий адаптации решения к скорости его изменения). Эта процедура называется rkf45 и символически выводится (без тела) при попытке решения заданной системы дифференциальных уравнений. Последнее достаточно наглядно иллюстрирует рис. 7.8.

Рис. 7.8. Решение системы дифференциальных уравнений численным методом rkf45 с выводом графика решения

Указанная процедура возвращает особый тип данных, позволяющих найти решение в любой точке или построить график решения (или решений). Для графического отображения Maple 9.5 предлагает ряд возможностей и одна из них представлена на рис. 7.8 — см. последнюю строку ввода. При этом используется функция plot[odeplot] из пакета odeplot, предназначенного для визуализации решений дифференциальных уравнений. Можно воспользоваться и функцией plot, выделив тем или иным способом (примеры уже приводились) нужное решение.

В список параметров функции dsolve можно явным образом включить указание на метод решения, например опция method=dverk78 задает решение непрерывным методом Рунге-Кутта порядка 7 или 8. Вообще говоря, численное решение дифференциальных уравнений можно производить одним из следующих методов:

• classical — одна из восьми версий классического метода, используемого по умолчанию;

• rkf45 — метод Рунге-Кутта 4 или 5 порядка, модифицированный Фелбергом;

• dverk78 — непрерывный метод Рунге-Кутта порядка 7 или 8;

• gear — одна из двух версий одношагового экстраполяционного метода Гира;

• mgear — одна из трех версий многошагового экстраполяционного метода Гира;

• lsode — одна из восьми версий Ливенморского решателя жестких дифференциальных уравнений;

• taylorseries — метод разложения в ряд Тейлора.

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

С помощью параметра ‘abserr’=aerr можно задать величину абсолютной погрешности решения, а с помощью ‘minerr’=mine — минимальную величину погрешности. В большинстве случаев эти величины, заданные по умолчанию, оказываются приемлемыми для расчетов.

Maple реализует адаптируемые к ходу решения методы, при которых шаг решения h автоматически меняется, подстраиваясь под условия решения. Так, если прогнозируемая погрешность решения становится больше заданной, шаг решения автоматически уменьшается. Более того, система Maple способна автоматически выбирать наиболее подходящий для решаемой задачи метод решения.

Еще один пример решения системы дифференциальных уравнений представлен на рис. 7.9. Здесь на одном графике представлены зависимости y(x) и z(x) представляющие полное решение заданной системы. При этом процедура имеет особый вид listprocedure и для преобразования списка выходных данных в векторы решения Y и Z используется функция subs.

Рис. 7.9. Решение системы дифференциальных уравнений численным методом с выводом всех графиков искомых зависимостей

Для решения достаточно сложных задач полезны специальная структура DESol для решения дифференциальных уравнений и инструментальный пакет SEtools, содержащий самые изысканные средства для графической визуализации результатов решения дифференциальных уравнений. Эти средства мы более подробно рассмотрим в дальнейшем.

При решении некоторых задач физики и радиоэлектроники выбираемый по умолчанию шаг изменения аргумента х или t-h может привести к неустойчивости решения. Неустойчивости можно избежать рядом способов. Можно, например, нормировать уравнения, избегая необходимости использования малого шага. А можно задать заведомо малый шаг. Например, при method=classical для этого служит параметр stepsize=h.

7.3.2. Дифференциальные уравнения с кусочными функциями

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

Ниже представлено задание дифференциального уравнения первого порядка, содержащего кусочную функцию:

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

Приведем пример решения дифференциального уравнения второго порядка с кусочной функцией:

> eq := diff(y(х), х$2) + x*diff(y(x), х) + y(х) = piecewise(х > 0, 1);

В заключении этого раздела приведем пример решения нелинейного дифференциального уравнения Риккати с кусочной функцией:

В ряде случаев желательна проверка решения дифференциальных уравнений. Ниже показано, как она делается для последнего уравнения:

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

7.3.3. Структура неявного представления дифференциальных уравнений — DESol

В ряде случаев иметь явное представление дифференциальных уравнений нецелесообразно. Для неявного их представления в Maple введена специальная структура

где exprs — выражение для исходной системы дифференциальных уравнений, vars — заданный в виде опции список переменных (или одна переменная).

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

На рис. 7.10 показаны примеры применения структуры DESol.

Рис. 7.10. Примеры применения структуры DESol

Обратите внимание на последний пример — в нем структура DESol использована для получения решения дифференциального уравнения в виде степенного ряда.

7.4. Инструментальный пакет решения дифференциальных уравнений DEtools

7.4.1. Средства пакета DEtools

Решение дифференциальных уравнений самых различных типов — одно из достоинств системы Maple. Пакет DEtools предоставляет ряд полезных функций для решения дифференциальных уравнений и систем с такими уравнениями. Для загрузки пакета используется команда:

Этот пакет дает самые изысканные средства для аналитического и численного решения дифференциальных уравнений и систем с ними. По сравнению с версией Maple V R5 число функций данного пакета в Maple 9.5 возросло в несколько раз. Многие графические функции пакета DEtools были уже описаны. Ниже приводятся полные наименования тех функций, которые есть во всех реализациях системы Maple:

• DEnormal — возвращает нормализованную форму дифференциальных уравнений;

• DEplot — строит графики решения дифференциальных уравнений;

• DEplot3d — строит трехмерные графики для решения систем дифференциальных уравнений;

• Dchangevar — изменение переменных в дифференциальных уравнениях;

• PDEchangecoords — изменение координатных систем для дифференциальных уравнений в частных производных;

• PDEplot — построение графиков решения дифференциальных уравнений в частных производных;

• autonomous — тестирует дифференциальные уравнения на автономность;

• convertAlg — возвращает список коэффициентов для дифференциальных уравнений;

• convertsys — преобразует систему дифференциальных уравнений в систему одиночных уравнений;

• dfieldplot — строит график решения дифференциальных уравнений в виде векторного поля;

• indicialeq — преобразует дифференциальные уравнения в полиномиальные;

• phaseportrait — строит график решения дифференциальных уравнений в форме фазового портрета;

• reduceOrder — понижает порядок дифференциальных уравнений;

• regularsp — вычисляет регулярные особые точки для дифференциальных уравнений второго порядка;

• translate — преобразует дифференциальные уравнения в список операторов;

• untranslate — преобразует список операторов в дифференциальные уравнения;

• varparam — находит общее решение дифференциальных уравнений методом вариации параметров.

Применение этих функций гарантирует совместимость документов реализаций Maple R5, 6 и 9.

7.4.2. Консультант по дифференциальным уравнениям

Для выявления свойств дифференциальных уравнений в Maple 9.5 в составе пакета DEtools имеется консультант (адвизор), вводимый следующей функцией:

odeadvisor(ODE) odeadvisor(ODE, y(х), [type1, type2. ], help)

Здесь ODE — одиночное дифференциальное уравнение, y(x) — неопределенная (определяемая функция), type1, type2, … — опционально заданные множество типов, которые классифицируются и help — опционально заданное указание на вывод страницы справки по методу решения.

Примеры работы с классификатором представлены ниже:

Аналитические методы решения дифференциальных уравнений это

Для нахождения аналитических решений дифференциальных уравнений в Maple применяется команда dsolve(eq,var,options), где eq – дифференциальное уравнение, var – неизвестные функции, options – параметры. Параметры могут указывать метод решения задачи, например, по умолчанию ищется аналитическое решение: type=exact. При составлении дифференциальных уравнений для обозначения производной применяется команда diff, например, дифференциальное уравнение y»+y=x записывается в виде: diff(y(x),x$2)+y(x)=x.

Общее решение дифференциального уравнения зависит от произвольных постоянных, число которых равно порядку дифференциального уравнения. В Maple такие постоянные, как правило, обозначаются как _С1, _С2, и т.д.

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

Команда dsolve выдает решение дифференциального уравнения в невычисляемом формате. Для того, чтобы с решением можно было бы работать далее (например, построить график решения) следует отделить правую часть полученного решения командой rhs(%).

1. Найти общее решение дифференциального уравнения y’+ycosx=sinxcosx.

Итак, решение искомого уравнения есть функция

Замечание: при записи решения диффреренциального уравнения в Maple в строке вывода произвольная постоянная обозначена как _С1.

Найти общее решение дифференциального уравнения второго порядка y» — 2y’+y=sinx+e — x.

Замечание: так как исходное уравнение было второго порядка, то полученное решение содержит две произвольные константы, которые в Maple обычно обознаются как _С1 и _С2. Первые два слагаемых представляют собой общее решение соответствующего однородного дифференциального уравнения, а вторые два – частное решение неоднородного дифференциального уравнения.

3. Найти общее решение дифференциального уравнения порядка y»+k2y=sin(qx) в двух случаях: q ¹ k и q=k (резонанс).

Теперь найдем решение в случае резонанса. Для этого перед вызовом команды dsolve следует приравнять q=k.

Фундаментальная (базисная) система решений.

Команда dsolveпредставляет возможность найти фундаментальную систему решений (базисные функции) дифференциального уравнения. Для этого в параметрах команды dsolve следует указать output=basis.

Найти фундаментальную систему решений дифференциального уравнения: y(4)+2y»+y=0.

>dsolve(de, y(x), output=basis);

Решение задачи Коши или краевой задачи.

Команда dsolve может найти решение задачи Коши или краевой задачи, если помимо дифференциального уравнения задать начальные или краевые условия для неизвестной функции. Для обозначения производных в начальных или краевых условиях используется дифференциальный оператор , например, условие y»(0)=2 следует записать в виде

1. Найти решение задачи Коши: y(4)+y»=2cosx, y(0)= — 2, y'(0)=1, y»(0)=0, y»'(0)=0.

y(x)= — 2cos(x) — xsin(x)+ х

2. Найти решение краевой задачи:кккк

y(x)=2x — p + p cos(x)

Замечание: для построения графика решения предварительно следует отделить правую часть полученного выражения.

Системы дифференциальных уравнений.

Команда dsolve может найти решение системы дифференциальных уравнений (или задачи Коши), если в ней указать: dsolve(,), где sys — система дифференциальных уравнений, x(t),y(t),… — набор неизвестных функций.

Найти решение системы дифференциальных уравнений:

Найдены две функции x(t) и y(t), которые зависят от двух произвольных постоянных _С1 и _С2.

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

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

Чтобы найти приближенное решение дифференциального уравнения в виде степенного ряда, в команде dsolve следует после переменных указать параметр type=series (или просто series). Для того, чтобы указать порядок разложения n, т.е. порядок степени, до которой производить разложение, следует перед командой dsolve вставить определение порядка с помощью команды Order:=n.

Если ищется общее решение дифференциального уравнения в виде разложения в степенной ряд, то коэффициенты при степенях х найденного разложения будут содержать неизвестные значения функции в нуле y(0) и ее производных D(y)(0), (D@@2)(y)(0) и т.д. Полученное в строке вывода выражение будет иметь вид, похожий на разложение искомого решения в ряд Маклорена, но с другими коэффициентами при степенях х. Для выделения частного решения следует задать начальные условия y(0)=у1, D(y)(0)=у2, (D@@2)(y)(0)=у3 и т.д., причем количество этих начальных условий должно совпадать с порядком соответствующего дифференциального уравнения.

Разложение в степенной ряд имеет тип series, поэтому для дальнейшей работы с этим рядом его следует преобразовать в полином с помощью команды convert(%,polynom), а затем выделить правую часть полученного выражения командой rhs(%).

1. Найти решение задачи Коши:

y(0)=0>, y(x), type=series);

В полученном решении слагаемое O(x^5) означает, что точность разложения была до 5-го порядка.

2. Найти общее решение дифференциального уравнения y»(х) — y3(х)=е — хcosx, в виде разложения в степенной ряд до 4-го порядка. Найти разложение при начальных условиях: y(0)=1, y'(0)=0.

>restart; Order:=4: de:=diff(y(x),x$2)-

Замечание: в полученном разложении запись D(y)(0) обозначает производную в нуле: y'(0). Для нахождения частого решения осталось задать начальные условия:

3. Найти приближенное решение в виде степенного ряда до 6-го порядка и точное решение задачи Коши:

Замечание: тип решения дифференциального уравнения в виде ряда есть series, поэтому для дальнейшего использования такого решения (вычислений или построения графика) его обязательно следует конвертировать в полином с помощью команды convert

На этом рисунке видно, что наилучшее приближение точного решения степенным рядом достигается примерно на интервале — 1

Численное решение дифференциальных уравнений

Численное решение дифференциальных уравнений с помощью команды dsolve. Построение графиков решений дифференциальных уравнений с помощью команды odeplot.

Для того, чтобы найти численное решение дифференциального уравнения (задачи Коши или краевой задачи) в команде dsolve следует указать параметр type=numeric (или просто numeric). Тогда команда решения дифференциального уравнения будет иметь вид dsolve(eq, vars, type=numeric, options), где eq – уравнения, vars – список неизвестных функций, options – параметры, позволяющие указать метод численного интегрирования дифференциального уравнения. В Maple реализованы такие методы: method=rkf45 — метод Рунге-Кутта-Фельберга 4-5-ого порядка (установлен по умолчанию); method=dverk78 – метод Рунге-Кутта 7-8 порядка; mtthod=classical – классический метод Рунге-Кутта 3-его порядка; method=gear и method=mgear – одношаговый и многошаговый методы Гира.

График численного решения дифференциального уравнения можно построить с помощью команды odeplot(dd, [x,y(x)], x=x1..x2), где в качестве функции используется команда dd:=dsolve(, y(x), numeric) численного решения, после нее в квадратных скобках указывают переменную и неизвестную функцию [x,y(x)], и интервал x=x1..x2 для построения графика.

1. Найти численное и приближенное решение в виде степенного ряда до 6-ого порядка задачи Коши: ,

Сначала найдем численное решение задачи Коши

Замечание: в строке вывода появляется сообщение о том, что при решении использован метод rkf45. Во избежание вывода строк, не несущих полезной информации, рекомендуется отделять промежуточные команды двоеточием. Если необходимо получить значение решения при каком-то фиксированном значении переменной х (заодно будет выведено значение производной решения в этой точке), например, при х=0.5, то следует набрать:

Теперь найдем приближенное решение задачи Коши в виде степенного ряда и построим графики численного решения и полученного степенного ряда в интервале их наилучшего совпадения.

Наилучшее приближение решения степенным рядом достигается примерно на интервале — 1

2. Построить графики решений задачи Коши системы дифференциальных уравнений:

х ‘(t)=2y(t)sin(t) — х (t) — t,

Пакет графического представления решений дифференциальных уравнений Detools.

Для численного решения задачи Коши, построения графиков решения и фазовых портретов в Maple имеется специальный пакет DEtools.

Команда DEplot из пакета DEtools строит численными методами графики решения или фазовые портреты. Эта команда аналогична команде odeplot, но более функциональна. Она, в отличие от odeplot, сама производит численное решение дифференциального уравнения. Основные параметры DEplot похожи на параметры odeplot: DEplot(de, vars, range, x=х1..х2, y=у1..у2, cond, ptions), где de — дифференциальное уравнение или система дифференциальных уравнений; vars – список неизвестных функций; range – диапазон измерения независимой переменной; cond – начальные условия; x=х1..х2 и y=у1..у2 – диапазоны изменения функций; options – дополнительные параметры.

Наиболее часто используемые параметры: linecolor=цвет линии; scene=[x,y] — определяет, какие зависимости выводить на график; iterations=число итераций, необходимое для повышения точности вычислений (по умолчанию это число равно 1); stepsize=число, равное расстоянию между точками на графике, по умолчанию оно равно (x2 — x1)/20, этот параметр необходим для вывода более гладкой кривой решения;obsrange=true/false — прерывать или нет вычисления, если график решения выходит за установленный для рисования интервал.

Для решения дифференциального уравнения n-ого порядка начальные условия можно задавать в более компактной форме: [x0, y0, y’0, y»0,…], где x0 — точка, в которой задаются начальные условия, y0 — значение искомой функции в точке x0, y’0, y»0,… — значения производных первой, второй и т.д. до (n — 1)-ого порядка.

Нарисовать график решения дифференциального уравнения:

, у(0)=0,у'(0)=1 ,у»(0)=1 , в интервале .

> restart; with(D Е tools):

(D@@2)(y)(0)=1]], stepsize=.1, linecolor=black,

Построение фазовых портретов систем дифференциальных уравнений.

Для дифференциального уравнения порядка выше первого команда DEplot рисует только кривые решений дифференциальных уравнений, а для систем дифференциальных уравнений первого порядка могут быть нарисованы и фазовые портреты.

С помощью команды DEplot можно построить фазовый портрет в плоскости (x, y), для системы двух дифференциальных уравнений:

Если система дифференциальных уравнений является автономной, то на фазовом портрете будет построено поле направлений в виде стрелок. Размер стрелок регулируется параметром arrows=SMALL, MEDIUM, LARGE, LINE или NONE.

Для того, чтобы нарисовать весь фазовый портрет, необходимо для каждой фазовой траектории указывать начальные условия: например, для системы двух дифференциальных уравнений первого порядка несколько начальных условий в команде DEplots указываются после задания диапазона изменения независимой переменной t: [[x(0)=x1, y(0)=y1], [x(0)=x2, y(0)=y2],…, [x(0)=xn, y(0)=yn]].

Начальные условия можно задавать в более компактной форме: [t0, x0, y0], где t0 — точка, в которой задаются начальные условия, x0 и y0 — значения искомых функций в точке t0.

Фазовый протрет системы двух дифференциальных уравнений первого порядка можно также построить с помощью команды phaseportrait(sys, [x,y],x1..x2,[[cond]]), где sys — система двух дифференциальных уравнений первого порядка, [x,y] — имена искомых функций, x1..x2 — интервал, на котором следует построить фазовый портрет, а в фигурных скобках указываются начальные условия. Эта команда находится в пакете DEtools, поэтому данный пакет должен быть предварительно загружен.

1. Построить фазовый портрет системы дифференциальных уравнений:

для нескольких наборов начальных условий: х(0)=1, у(0)=0.2; х(0)=0, у(0)=1; х(0)=1, у(0)=0.4; х(0)=1, у(0)=0.75; х(0)=0, у(0)=1.5; х(0)= — 0.1, у(0)=0.7.

> restart; with(D Е tools):

stepsize=0.1, arrows=none, linecolor=black);

2. Построить фазовый портрет с полем направлений автономной системы

для различных начальных условий х(0)=1, у(0)=0; х(0)= — 1, у(0)=0; х(0)= p , у(0)=1; х(0)= — p , у(0)=1; х(0)=3 p , у(0)=0.2; х(0)=3 p , у(0)=1; х(0)=3 p , у(0)=1.8; х(0)= — 2 p , у(0)=1;.

> restart; with(D Е tools):

3. Построить фазовый портрет системы дифференциальных уравнений:

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

Приближенные аналитические решения обыкновенных дифференциальных уравнений Текст научной статьи по специальности « Компьютерные и информационные науки»

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Васильев Александр Николаевич, Тархов Дмитрий Альбертович, Шемякина Татьяна Алексеевна

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Васильев Александр Николаевич, Тархов Дмитрий Альбертович, Шемякина Татьяна Алексеевна

Текст научной работы на тему «Приближенные аналитические решения обыкновенных дифференциальных уравнений»

Васильев А.Н., Тархов Д.А., Шемякина Т.А.

Санкт-Петербургский политехнический университет Петра Великого, Санкт-Петербург, Россия

ПРИБЛИЖЕННЫЕ АНАЛИТИЧЕСКИЕ РЕШЕНИЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

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

Нейронные сети; приближенные решения; дифференциальные уравнения.

Vasilyev A.N., Tarkhov D.A., Shemyakina T.A.

Peter the Great St. Petersburg Polytechnic University, Saint Petersburg, Russia

APPROXIMATE ANALYTICAL SOLUTIONS OF ORDINARY DIFFERENTIAL

Original approaches to building multi-layered approximate solutions of differential equations are discussed. These approaches are based on classical approximate methods. In contrast to classical approaches, we obtain as the result of the calculation not pointwise approximations but approximate solutions as functions. These methods can be applied for generating arbitrarily accurate approximate neural network solutions without time-consuming learning procedure. Computational experiments were carried out on several test problems.

Neural networks; approximate solutions; differential equations. Введение

Мы неоднократно отмечали в качестве одного из преимуществ неиросетевого моделирования над классическими подходами к построению приближенных решении дифференциальных уравнении (типа метода сеток) то обстоятельство, что неиросетевои подход позволяет получить решение в виде аналитическои формулы, а не набора числовых значении [1-5, 7-14]. В даннои работе показано, что это не совсем верно: задаваемые аналитически приближения для решения можно получить на основе более общих подходов, куда неиросетевои входит как частныи случаи. На примере обыкновенных дифференциальных уравнении с помощью метода Эилера и некоторых его обобщении получены приближенные аналитические решения. Обычные оценки точности исходных классических методов позволяют получить удобные оценки точности полученных приближении.

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

Рассмотрим задачу Коши для системы обыкновенных дифференциальных уравнении

на промежутке D = [х0; х0 + а]. Здесь х е В с □ , у с □ р, f : □ р ^ □ р. Классический метод Эйлера состоит в разбиении промежутка В на п частей: х0 у к), (7)

при этом У1 = У о + ¥ (Хо + Уо + у Ъ (Хо, Уо)).

Применяем уточненныи метод Эилера (7) при п = 2, тогда получаем формулу

уп (х) = 1 — о.5х^т1 (8)

Графики данного приближенного решения уп (х) и решения у(х), построенного с помощью встроеннои операции МаШетайса 10, при а = 1;2;3 выглядят следующим образом:

Рис. 3. Графики приближённого решения yn (x) из (8) и y (x), построенного с помощью Mathematica 10, при

На рис.3 видим, что точность приближённого решения yn (x) из формулы (8) существенно выше, чем приближенного решения, полученного применением метода Эилера по формуле (6).

С увеличением количества разбиении n = 5 уточненныи метод Эилера (7) представим формулои

yn (x) = 1 — 0.0168х2а- 0.32х2а sin Ti — 0.0168x2a]-

— 0.16x2a sin [i- 0.0168x2a — 0.16x2a sin [i — 0.0168x2a]]

Графики данного приближенного решения yn (x) и решения y(x), построенного с помощью встроеннои операции Mathematica 10, при а = 1;2;3 практически сливаются:

Рассмотрим метод средней точки из книги [6]:

y *+1 = y * + hf (** + у, y * + y f(**, y *)) [10]

Применяем метод среднеи точки (10) при n = 2, тогда получаем формулу

yn (x) = 1- 0.316х2а — 0.125×2« sin [1 — 0.105х2а] (11)

Графики данного приближённого решения уп (х) и решения у(х), построенного с помощью встроенной операции МаШетайса 10, при а = 1;2;3 выглядят следующим образом:

Точность приближенного решения (11) еще выше, чем у формулы, получающеися применением уточненного метода Эилера (7) — (9). Применяем метод среднеи точки (10) при п = 5, тогда получаем формулу

уп (х) = 1 — 0.151х2а — 0.12х2а Sin[1 — 0.0337х2а] — 0.02х2а Sin[1 — 0.0168х2а] —

— 0.02х2а Sin[1 — 0.05х2а — 0.02х2а Sin[1 — 0.0168х2а]] —

-0.08×2аSin[1 — 0.0673х2а — 0.02×2аSin[1 — 0.0337х2а] — 0.02х2а Sin[1 — 0.0168х2а]] —

-0.02х2а Sin[1 — 0.0841х2а — 0.04х2а Sin[1 — 0.0337х2а] -0.02х2аЗт[1 — 0.0168х2а] —

— 0.02х2а Sin[1 — 0.05х2а — 0.02х2а Sin[1 — 0.0168х2а]]] —0.04х2а Sin[1 — 0.1х2а — 0.06х2а Sin[1 — 0.0337х2а] — 0.02х2а Sin[1 — 0.0168х2а] —0.02х2а Sin[1 — 0.05х2а — 0.02х2а Sin[1 — 0.0168х2а]] —

-0.02х2а Sin[1 — 0.0673х2а — 0.02х2а Sin[1 — 0.0337х2а] — 0.02х2а Sin[1 — 0.0168х2а]]] —0.02х2а Sin[1 — 0.119х2а — 0.08х2а Sin[1 — 0.0337х2а] — 0.02х2а Sin[1 — 0.0168х2а] —0.02х2а Sin[1 — 0.05х2а — 0.02х2а Sin[1 — 0.0168х2а]] —

-0.04х2а Sin[1 — 0.0673х2а — 0.02х2а Sin[1 — 0.0337х2а] — 0.02х2а Sin[1 — 0.0168х2а]] —0.02х2а Sin[1 — 0.0841х2а — 0.04х2а Sin[1 — 0.0337х2а] — 0.02х2а Sin[1 — 0.0168х2а] —0.02х2а Sin[1 — 0.0505х2а — 0.02х2а Sin[1 — 0.0168х2а]]]] Графики данного приближенного решения уп (х) из последнеи формулы и решения у(х), построенного с помощью Mаthemаticа 10, при а = 1;2;3 практически сливаются.

Рассматриваем еще один метод, подобньш выше тестируемым, это метод Хоина из книги [6]:

Уk+1 = y* + у [f(Xk, yk) + f X + К, yk + hf (x*, yk))]. (12)

Результаты применения метода Хоина (12) к рассматриваемой задаче (4) аналогичны результатам применения метода среднеи точки (10).

Рассмотрим тесты исправленного метода Эилера, которыи работает в соответствии с формулои:

у k+1 = у k + hk [f (Xk, y k) + \ (fX (Xk, у k) + fy (Xk, у k )f (Xk, у k))] (13)

Применение данного метода к рассматриваемои задаче (4) дает такие же результаты, как и у предыдущих методов среднеи точки (10) и Хоина (12).

Приведем результаты для стандартного решения задачи (4), полученного с помощью разложения в степеннои ряд в окрестности x0 = 0 для n = 6

yn (x) = 1 — 0.5а sinl X2 + а2 sin2 x4/12 + a3sin1 x6 (3sin21 — cos2l)/720. (14)

Заметим, что первые два слагаемых совпадают с результатом, полученным с помощью

На рис.6 видим, что во второй половине промежутка приближенное решение (14) проигрывает в точности всем приведенным выше решениям, кроме решения, полученного (5) методом Эилера для разбиения п = 2.

Результаты вычислительных экспериментов для промежутка [0,5].

Приведем результаты для значении параметра« = 1 и а=3 .

Графики приближенного решения уп (х), полученного по формуле (14), и решения у(х), построенного с помощью встроеннои операции МаШетайса 10, при а = 1 выглядят следующим образом:

Рис. 7. Графики приближённого решения уп (х) из (14) и у(х), построенного с помощью МаАетаИса 10,

при а = 1 и для ( в), г), д), е)) — п = 10

На рис.7 видим, что метод Эйлера (2) существенно проигрывает всем остальным методам, причем ситуацию не спасает значительное увеличение числа разбиении п .

Графики приближенного решения уп (х), полученного по формуле (14), и решения у(х), построенного с помощью встроеннои операции МаШетайса 10, приа = 3 выглядят следующим образом:

г) Метод средней точки (10)

д) Метод Хойна (12)

е) Исправленный метод Эйлера (13)

Рис. 8. Графики приближённого решения yn (x) из (14) и y (x), построенного с помощью Mathematica 10

при а = 3 и для ( в), г), д), е)) — n = 10 На рис.8 видим, что в данном случае лучше всего работает метод Хойна (12). По данным графикам может сложиться неверное представление о сравнительной эффективности методов: более точными представляются (2), (7), (10), (12), (13). Однако уточненныи метод Эилера (7) при n = 10 дает вполне обозримое приближение:

yn (x) = 0.02 (50 — 5х2а Sinl — 8x 2а Sin[1 — 0.02x 2а Sinl] —

— 6×2а Sin[0.04(25 — x2а Sinl — x2a Sin[-0.02×2а Sinl])] —

— 4×2аSin[0.02(50 — 3×2а Sinl — 4x2aSin [l — 0.02×2а Sinl] —

— 2×2а Sin[0.04(25 — x2а Sinl — x2aSin[l — 0.02×2а Sinl])])] —

-2x2a Sin[0.04(25 — 2×2а Sinl — 3×2а Sin[l — 0.02×2а Sinl] —2x2a Sin[0.04(25 — x2a Sinl- x2а Sin[l- 0.02×2а Sinl])] —x2aSin[0.02(50 — 3×2а Sinl — 4x2aSin [l — 0.02x2a Sinl] —

-2xa Sin[0.04(25 — x2a Sinl- x2a Sin[l- 0.02Sinl])])])]). Методы, использующие формулы (10) — метод среднеи точки, (12) — метод Хоина, (13) -исправленныи метод Эилера, дают существенно более сложные аналитические выражения.

Первым направлением развития является включение начальных условии в параметры решения. Так, например, в качестве обобщения задачи (4) получаем

í y» (x) + a sin(y) = 0,

1 y(0) = y0,y’ (0) = yl. Методом Эилера при n = 3 получаем приближенное решение

y0 + yl x — 2 x2a sin y0 -1 x2a sin

а при n = 5 — приближенное решение

y0 + y1 x — — (4x2a sin [y0 ] + 3x2asin

3 y1 x 2 2 1 2 y0 +—^—— x asin[y0]+

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

Г y»(x) + a sin(y) = О, 1 У(О) = Уo, У(а) = Уа ,

можно решать, определяя y1 из уравнения y(a) = ya, используя в качестве y(x) полученное параметрическое решение.

Второе направление развития связано с тем, что в формуле (2) и других аналогичных формулах используется не сама функция f (x, y), а ее неиросетевое приближение. Подобныи вариант может возникать, например, когда функция f(x, y) задана таблично или получается решением некоторои другои задачи, когда это решение целесообразно искать в классе неиросетевых функции. В результате даже для однослоиных неиросетевых функции f(x, y) получаем решение в виде многослоинои неироннои сети.

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

Четвёртое направление связано с распространением изложенного подхода на уравнения в частных производных. Для этого можно применить, например, метод прямых.

Работа поддержана Российским фондом фундаментальных исследований (гранты №14-01-00660 и №14-01-00733).

1. Васильев А.Н., Тархов Д.А., Шемякина Т.А. Гибридный метод построения параметрической нейросетевой модели катализатора// Современные информационные технологии и ИТ-образование, 2014. — №10. — С.476-484.

2. Васильев А.Н., Тархов Д.А., Шемякина Т.А. Модель неизотермического химического реактора на основе параметрических нейронных сетей. Гибридный метод// Современные информационные технологии и ИТ-образование, 2015. — Т.2. №11. — С.271-278.

3. Васильев А.Н., Тархов Д.А., Шемякина Т.А. Многоуровневые модели окружающей среды в мегаполисах// Современные информационные технологии и ИТ-образование, 2015. — Т. 2. № 11. — С. 267-270.

4. Васильев А.Н., Тархов Д.А., Шемякина Т.А. Мезо-уровневая нейросетевая модель загрязнения атмосферного воздуха Санкт-Петербурга по данным мониторинга// Современные информационные технологии и ИТ-образование, 2015. — Т. 2. № 11. — С. 279-283.

5. Васильев А.Н., Тархов Д.А., Шемякина Т.А. Нейросетевой подход к задачам математической физики. — СПб.: «Нестор-История», 2015. — 260 с.

6. Вержбицкий В.М. Численные методы. Математический анализ и обыкновенные дифференциальные уравнения. -М.: Оникс 21 век, 2005. — 400 с.

7. Романова А.Г., Тархов Д.А, Шемякина Т.А. О применении нейросетевых моделей в экологии// Современные информационные технологии и ИТ-образование, 2013. — № 9. — С.534 -539.

8. Budkina E. M., Kuznetsov E. B., Lazovskaya T. V., Leonov S. S., Tarkhov D. A., Vasilyev A. N. Neural Network Technique in Boundary Value Problems for Ordinary Differential Equations // Springer International Publishing Switzerland 2016 L. Cheng et al. (Eds.): ISNN 2016, LNCS 9719. 2016. — pp. 277-283.

9. Gorbachenko V. I., Lazovskaya T. V., Tarkhov D. A., Vasilyev A. N., Zhukov M.V. Neural Network Technique in Some Inverse Problems of Mathematical Physics // Springer International Publishing Switzerland 2016 L. Cheng et al. (Eds.): ISNN 2016, LNCS 9719. 2016. — pp. 310-316.

10. Kainov N.U., Tarkhov D.A., Shemyakina T.A. Application of neural network modeling to identication and prediction problems in ecology data analysis for metallurgy and welding industry// Nonlinear Phenomena in Complex Systems, 2014. — vol. 17, 1. — pp. 57-63.

11. Lazovskaya T.V., Tarkhov D.A. Fresh approaches to the construction of parameterized neural network solutions of a stiff differential equation. St. Petersburg Polytechnical University Journal: Physics and Mathematics (2015), http://dx.doi.org/10.1016/j.spjpm.2015.07.005

12. Shemyakina T. A., Tarkhov D. A., Vasilyev A. N.// Springer International Publishing Switzerland 2016 L. Cheng et al. (Eds.): ISNN 2016, LNCS 9719. 2016. — pp. 547-554.

13. Tarkhov D., Vasilyev A. New neural network technique to the numerical solution of mathematical physics problems. I: Simple problems Optical Memory and Neural Networks (Information Optics), 2005. — 14. — pp. 59-72.

14. Tarkhov D., Vasilyev A. New neural network technique to the numerical solution of mathematical physics problems. II: Complicated and nonstandard problems Optical Memory and Neural Networks (Information Optics), 2005. — 14. — pp. 97122.

15. Vasilyev A., Tarkhov D. Mathematical Models of Complex Systems on the Basis of Artificial Neural Networks// Nonlinear Phenomena in Complex Systems, 2014. — vol. 17, 2. — pp. 327-335.

1. Vasil’ev A.N., Tarkhov D.A., Shemyakina T.A. Gibridnyy metod postroeniya parametricheskoy neyrosetevoy modeli katalizatora// Sovremennye informatsionnye tekhnologii i IT-obrazovanie, 2014. — №10. — S.476-484.

2. Vasil’ev A.N., Tarkhov D.A., Shemyakina T.A. Model’ neizotermicheskogo khimicheskogo reaktora na osnove parametricheskikh neyronnykh setey. Gibridnyy metod// Sovremennye informatsionnye tekhnologii i IT-obrazovanie,

2015. — T.2. №11. — S.271-278.

3. Vasil’ev A.N., Tarkhov D.A., Shemyakina T.A. Mnogourovnevye modeli okruzhayushchey sredy v megapolisakh// Sovremennye informatsionnye tekhnologii i IT-obrazovanie, 2015. — T. 2. № 11. — S. 267-270.

4. Vasil’ev A.N., Tarkhov D.A., Shemyakina T.A. Mezo-urovnevaya neyrosetevaya model’ zagryazneniya atmosfernogo vozdukha Sankt-Peterburga po dannym monitoringa// Sovremennye informatsionnye tekhnologii i IT-obrazovanie, 2015. — T. 2. № 11. — S. 279-283.

5. Vasil’ev A.N., Tarkhov D.A., Shemyakina T.A. Neyrosetevoy podkhod k zadacham matematicheskoy fiziki. — SPb.: «Nestor-Istoriya», 2015. — 260 s.

6. Verzhbitskiy V.M. Chislennye metody. Matematicheskiy analiz i obyknovennye differentsial’nye uravneniya. — M.: Oniks 21 vek, 2005. — 400 s.

7. Romanova A.G., Tarkhov D.A, Shemyakina T.A. O primenenii neyrosetevykh modeley v ekologii// Sovremennye informatsionnye tekhnologii i IT-obrazovanie, 2013. — № 9. — S.534 -539.

8. Budkina E. M., Kuznetsov E. B., Lazovskaya T. V., Leonov S. S., Tarkhov D. A., Vasilyev A. N. Neural Network Technique in Boundary Value Problems for Ordinary Differential Equations // Springer International Publishing Switzerland 2016 L. Cheng et al. (Eds.): ISNN 2016, LNCS 9719. 2016. — pp. 277-283.

9. Gorbachenko V. I., Lazovskaya T. V., Tarkhov D. A., Vasilyev A. N., Zhukov M.V. Neural Network Technique in Some Inverse Problems of Mathematical Physics // Springer International Publishing Switzerland 2016 L. Cheng et al. (Eds.): ISNN

2016, LNCS 9719. 2016. — pp. 310-316.

10. Kainov N.U., Tarkhov D.A., Shemyakina T.A. Application of neural network modeling to identication and prediction problems in ecology data analysis for metallurgy and welding industry// Nonlinear Phenomena in Complex Systems, 2014. — vol. 17, 1. — pp. 57-63.

11. Lazovskaya T.V., Tarkhov D.A.: Fresh approaches to the construction of parameterized neural network solutions of a stiff differential equation. St. Petersburg Polytechnical University Journal: Physics and Mathematics (2015), http://dx.doi.org/10.1016/j.spjpm.2015.07.005

12. Shemyakina T. A., Tarkhov D. A., Vasilyev A. N.// Springer International Publishing Switzerland 2016 L. Cheng et al. (Eds.): ISNN 2016, LNCS 9719. 2016. — pp. 547-554.

13. Tarkhov D., Vasilyev A. New neural network technique to the numerical solution of mathematical physics problems. I: Simple problems Optical Memory and Neural Networks (Information Optics), 2005. — 14. — pp. 59-72.

14. Tarkhov D., Vasilyev A. New neural network technique to the numerical solution of mathematical physics problems. II: Complicated and nonstandard problems Optical Memory and Neural Networks (Information Optics), 2005. — 14. — pp. 97122.

15. Vasilyev A., Tarkhov D. Mathematical Models of Complex Systems on the Basis of Artificial Neural Networks// Nonlinear Phenomena in Complex Systems, 2014. — vol. 17, 2. — pp. 327-335.


источники:

http://www.sites.google.com/site/camoucitelmaple13/urok-7-analiticeskoe-resenie-differencialnyh-uravnenij-cislennoe-resenie-differencialnyh-uravnenij

http://cyberleninka.ru/article/n/priblizhennye-analiticheskie-resheniya-obyknovennyh-differentsialnyh-uravneniy