110
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение высшего образования «УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ » П. А. Вельмисов, С. В. Киреев ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCAD Учебное пособие Ульяновск УлГТУ 2016

ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение

высшего образования «УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

П. А. Вельмисов, С. В. Киреев

ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCAD

Учебное пособие

Ульяновск УлГТУ

2016

Page 2: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

УДК 004.42 : 517.9 (075) ББК 32.973.26 – 018.2 я7 В 28

Рецензенты: кафедра прикладной математики УлГУ (зав. кафедрой д-р физ.-мат. наук, профессор А. А. Бутов); д-р физ.-мат. наук, профессор кафедры информационной безопасности и теории управления УлГУ В. Л. Леонтьев. Утверждено редакционно-издательским советом университета в качестве учебного пособия.

В 28

Вельмисов, Петр Александрович Дифференциальные уравнения в Mathcad : учебное пособие / П. А. Вельмисов, С. В. Киреев. – Ульяновск : УлГТУ, 2016. – 109 с. ISBN 978-5-9795-1578-6

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

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

Работа выполнена на кафедре «Высшая математика» УлГТУ. Печатается в авторской редакции.

УДК 004.42 : 517.9 (075) ББК 32.973.26 – 018.2 я7

© Вельмисов П. А., Киреев С. В., 2016 ISBN 978-5-9795-1578-6 © Оформление. УлГТУ, 2016

Page 3: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Введение

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

Учебное пособие состоит из введения, четырех разделов, заключения и библиографического списка.

В первом разделе рассматриваются динамические системы, в частности дифференциальные уравнения N-го порядка и системы N дифференциальных уравнений. Представлены сведения о жестких системах ОДУ и о новых возможностях Mathcad 14.

Во втором разделе рассматривается решение краевых задач средствами Mathcad, в том числе двухточечных краевых задач, краевых задач с условием во внутренней точке, а также задач на собственные значения для ОДУ. Представлена также информация о разностных схемах для ОДУ и жестких краевых задачах.

В третьем разделе приводятся примеры построения аналитических решений дифференциальных уравнений в Mathcad. Рассматриваются «метод интегрирования» (по терминологии из [3]) для уравнений с разделяющимися переменными, задача Коши, однородные дифференциальные уравнения первого порядка, линейные дифференциальные уравнения с постоянными коэффициентами.

В четвертом разделе приводятся аналитические решения некоторых классов дифференциальных уравнений в Mathcad. Представлены примеры решения в Mathcad дифференциальных уравнений из сборника заданий по высшей математике Кузнецова Л.А. [1]: дифференциальные уравнения с разделяющимися переменными, однородные дифференциальные уравнения первого порядка и сводящиеся к однородным, линейные дифференциальные уравнения первого порядка, уравнения Бернулли, линейные дифферен-циальные уравнения с постоянными коэффициентами.

Учебное пособие подготовлено в рамках государственного задания №2014/232 Минобрнауки РФ и при поддержке грантов РФФИ №15-01-08599, №15-41-02455р_поволжье_а.

3

Page 4: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

1. Обыкновенные дифференциальные уравнения: динамические системы

В этой главе рассматриваются численные методы решений задач с

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

1.1. О постановке задач

Решение задач Коши для ОДУ – давно и детально разработанная технология. С «хорошими» ОДУ вообще никаких вычислительных проблем обычно не возникает (чаще всего они решаются при помощи алгоритма Рунге-Кутты), а для ОДУ особого типа, называемых жесткими, необходимо применять специальные методы. Все эти возможности заложены в Mathcad, причем пользователю позволено выбирать конкретный алгоритм решения ОДУ.

1.1.1. Задачи Коши для ОДУ

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

ОДУ с неизвестной функцией y(t), в которое входят производные этой

функции вплоть до (N)y (t), называется ОДУ N-го порядка. В частности, уравнение первого порядка может по определению содержать помимо самой искомой функции y(t) только ее первую производную y (t), второго

порядка  –  (t)y и y (t), и т. д. Во многих практических случаях дифферен-циальное уравнение первого порядка можно записать в стандартной форме (форме Коши): y (t) f(y(t),t) . Листинг 1.1 демонстрирует решение простого ОДУ второго порядка, описывающего модель затухающего гармонического осциллятора. Само уравнение приведено во второй строке листинга, после

4

Page 5: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

задания параметров модели, а вычисленный результат, т. е. искомая функция y(t),показан на рис. 1.1

Модель гармонического осциллятора описывает, в частности, колебания маятника: y(t) описывает изменения угла его отклонения от вертикали,

(t)y – угловую скорость маятника, (t)y – ускорение, а начальные условия, соответственно, начальное отклонение маятника 1.0y(0) и начальную скорость y (0) 0. Важно отметить, что модель является линейной, т. е. неизвестная функция (и ее производные) входят в уравнение линейно. Листинг 1.1. Решение задачи Коши для ОДУ второго порядка (модель затухающего гармонического осциллятора)

)10,t(Odesolve:y

0.1)0(y0)0(y

0)t(y)t(ydt

d)t(y

dt

d

Given

2.0:5.0:

2

22

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

Как показывает листинг 1.1, помимо самого уравнения потребовалось определить два начальных условия (третья и четвертая строки листинга) – начальные значения y(t) и (t)y при 0t . Вообще говоря, ОДУ (или система ОДУ) имеет единственное решение, если помимо уравнения определенным образом заданы начальные или граничные условия. В соответствующих курсах высшей математики доказываются теоремы о существовании и единственности решения в зависимости от тех или иных условий.

Рис. 1.1. Решение уравнения 2ω y βy y 0 (продолжение листинга 1.1)

5

Page 6: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Имеются два типа задач, которые возможно решать с помощью Mathcad:

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

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

(t)y0 , (t)y1 , … , (t)y 1-N система ОДУ должна быть записана в форме:

t);(t),y,(t),y(t),(yf(t)y

t);(t),y,(t),y(t),(yf(t)y

t);(t),y,(t),y(t),(yf(t)y

1N101-N1-N

1N1011

1N1000

(1.1)

что эквивалентно следующему векторному представлению: .t)F(Y(t),(t)Y (1.2)

Здесь Y и Y – соответствующие неизвестные векторные функции переменной t размера N 1, а F – векторная функция того же размера и количества переменных 1)(N ( N компонент вектора и, возможно, t ). Именно векторное представление (1.2) используется для ввода системы ОДУ в среде Mathcad. Для того чтобы определить задачу Коши для системы из N ОДУ первого порядка, следует определить еще ровно N начальных условий, задающих значение каждой из функций )(ty 0i в начальной точке интегрирования системы 0t . В векторной форме они могут быть записаны в виде:

0Y(t ) B, (1.3) где B – вектор начальных условий размера 1N , составленный из )(ty 0i .

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

1N уравнений – N . Стандартные процедуры Mathcad применимы для систем ОДУ первого

порядка, записанных в форме (1.2) – (1.3). Тем не менее, если в систему входят и уравнения высших порядков, то ее можно свести к системе большего числа уравнений первого порядка. Рассмотрим в качестве примера уравнение второго порядка модели осциллятора 0yyβyω2 , решенное в листинге 1.1. Если ввести обозначение y(t)(t)y0 , (t)y(t)y1 , то уравнение сведется к эквивалентной системе:

6

Page 7: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

0 1

21 1 0

y (t) y (t),

ω y βy y 0,

форма которой соответствует представлению (1.2), и уравнение может быть решено средствами Mathcad, предназначенными для систем ОДУ. Именно эта система решена ниже в листинге 1.3. Отметим, что на рис. 1.1 показаны как зависимость y(t), так и (t)y(t)y1 .

1.1.2. Фазовый портрет динамической системы

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

Решение ОДУ часто удобнее изображать не в виде графика 0y (t),

1y (t), ... , как на рис. 1.1, а в фазовом пространстве, по каждой из осей которого откладываются значения каждой из найденных функций. При таком построении графика аргумент t будет присутствовать на нем лишь параметрически. В рассматриваемом случае двух ОДУ фазовое пространство является координатной плоскостью, а решение представляет собой кривую, или, по-другому, траекторию, выходящую из точки, координаты которой соответствуют начальным условиям (рис. 1.2). В общем случае, если система состоит из N ОДУ, то фазовое пространство является N-мерным. При 3N наглядность теряется, и для визуализации фазового пространства приходится строить его различные проекции или прибегать к другим специальным приемам (например, отображению Пуанкаре).

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

7

Page 8: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

Рис. 1.2. Решение уравнения 0yyβyω2 на фазовой плоскости

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

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

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

8

Page 9: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

всегда необходимо решить систему ОДУ большое количество раз с самыми разными начальными условиями (и, возможно, с разным набором параметров модели), чтобы посмотреть, к каким аттракторам сходятся различные траектории.

Рис. 1.3. Решение уравнения 2ω y y 0 для различных начальных условий

(коллаж графиков)

Резюмируя содержание вводного раздела главы, перечислим еще раз типичные постановки задач, характерные для динамических систем: решение задачи Коши для ОДУ; исследование фазового портрета (поиск аттракторов); отыскание зависимости положения аттракторов в фазовом пространстве

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

мы будем в первую очередь описывать решение первой (базовой) задачи, для которой предусмотрен целый арсенал средств. А именно: вычислительный блок для решения ОДУ, несколько встроенных функций для решения систем ОДУ, в том числе жестких, которые не поддаются решению стандартными методами. Сводка алгоритмов с рекомендациями по их применению в зави-симости от типа задачи приведена конспективно, без детального разбора.

1.2. Дифференциальное уравнение N-го порядка

Для решения ОДУ порядка 1N в Mathcad предусмотрены две возможности: вычислительный блок Given/Odesolve (начиная с версии 2000) – в этом

случае решение имеет вид функции от t ; встроенные функции решения систем ОДУ, причем уравнения высших

порядков необходимо предварительно свести к эквивалентной системе уравнений первого порядка, – в этом случае решение имеет формат вектора.

9

Page 10: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

Вычислительный блок для решения ОДУ, реализующий численный метод Рунге-Кутты, состоит из трех частей: Given – ключевое слово; ОДУ и начальные условия в формате b)y(t0 , записанные с помощью логических операторов, которые должны набираться на панели инструментов Boolean (Булевы операторы); )t,Odesolve(t 1 – встроенная функция для решения ОДУ относительно переменной t на интервале )t,(t 10 , причем 10 tt .

Примечание 1 На запись ОДУ в пределах вычислительного блока накладывается несколько ограничений. Во-первых, ОДУ должно быть линейно относительно старшей производной, т. е. фактически должно быть представлено в стандартной форме. Во-вторых, начальные условия должны иметь форму b)y(t0 или

b)(ty 0(N) , а не более сложную (как, например, встречающаяся в некоторых

математических приложениях форма b)(ty)y(t 00 ). Примечание 2 Допустимо, и даже часто предпочтительнее, задание функции

step),t,Odesolve(t 1 с тремя параметрами, где step – внутренний параметр численного метода, определяющий количество шагов, в которых метод Рунге-Кутты будет рассчитывать решение дифференциального уравнения. Чем больше step, тем с лучшей точностью будет получен результат, но тем больше времени будет затрачено на его поиск. Помните, что подбором этого параметра можно заметно (в несколько раз) ускорить расчеты без существенного ухудшения их точности. Листинг 1.2. Решение задачи Коши для ОДУ второго порядка (модель нелинейного осциллятора)

)20,t(Odesolve:y

0)0(y3)0(y

0)t(y)t(y)t(ydt

d)t(y

dt

d

Given

95.0:2.0:5.0:

22

22

10

Page 11: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Пример решения задачи Коши для ОДУ второго порядка, являющегося усложнением уравнения для модели из листинга 1.1 на нелинейный случай (с квадратичной нелинейностью у), приведен в листинге 1.2, а результат – на рис. 1.4.

Рис. 1.4. Решение уравнения 2 2ω y βy y γy 0 (продолжение листинга 1.2)

Учтите, что символ производной допускается вводить как средствами

панели Calculus (Вычисления), как это сделано в листинге 1.1, так и в виде штриха, набрав его с помощью сочетания клавиш <Ctrl>+<F7> (как в листинге 1.2). Выбирайте тот или иной способ представления производной из соображений наглядности представления результатов – на ход расчетов он не влияет.

Еще раз подчеркнем, что результатом применения блока Given/Odesolve является функция y(t), определенная на промежутке 0 1(t ,t ). Следует воспользоваться обычными средствами Mathcad, чтобы построить ее график или получить значение функции в какой-либо точке указанного интервала, например: 0.048y(10) .

Пользователь имеет возможность выбирать между тремя модифи-кациями численного метода Рунге-Кутты. Для смены метода необходимо нажатием правой кнопки мыши на области функции Odesolve вызвать контекстное меню и выбрать в нем один из трех пунктов: Fixed (С фиксированным шагом), Adaptive (Адаптивный) или Stiff (Для жестких ОДУ).

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

При помощи Mathcad можно решать системы 1N ОДУ первого порядка, если они записаны в стандартной форме (Коши) в виде векторного соотношения: t)F(Y(t),(t)Y .

11

Page 12: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

1.3.1. Встроенные функции для решения систем ОДУ

В Mathcad имеется несколько встроенных функций, которые позволяют решать задачу Коши различными численными методами. Для «хороших» нежестких систем ОДУ применяются следующие функции: D)M,,t,t,rkfixed(y 100 – метод Рунге-Кутты с фиксированным шагом;

D)M,,t,t,Rkadapt(y 100 – метод Рунге-Кутты с переменным шагом;

D)M,,t,t,Bulstoer(y 100 – метод Булирша-Штера; 0y – вектор начальных значений в точке 0t размера 1N ; 0t – начальная точка расчета; 1t – конечная точка расчета;

M – число шагов, на которых численный метод находит решение; D – векторная функция размера 1N двух аргументов – скалярного t

и векторного y. При этом y – искомая векторная функция аргумента t того же размера 1N .

Примечание 1 Соблюдайте регистр первой буквы рассматриваемых функций, поскольку это влияет на выбор алгоритма счета, в отличие от многих других встроенных функций Mathcad, например, findFind . Примечание 2 Несколько новых функций для решения жестких и нежестких ОДУ, основанных на более современных численных алгоритмах, появились в Mathcad 14.

Каждая из приведенных функций выдает решение в виде матрицы размера 1)(N1)(M . В ее левом столбце находятся значения аргумента t , делящие интервал на равномерные шаги, а в остальных N столбцах – значения искомых функций 0y (t), 1y (t), … , N-1y (t), рассчитанные для этих значений аргумента (рис. 1.5). Поскольку всего точек (помимо начальной) M, то строк в матрице решения будет всего 1M .

В листинге 1.3 приведен пример решения той же самой системы ОДУ осциллятора с затуханием (см. разд. 1.1 и 1.2) при помощи первой из функций rkfixed. Результат расчетов представлен на рис. 1.5 как содержимое матрицы и на рис. 1.6 в виде графика. Точки, в которых получено решение, отмечены на графике рис. 1.6 кружками. Чтобы использовать другой численный алгоритм, достаточно поменять имя функции rkfixed в последней строке листинга на другое (на практике как раз более эффективны функции Rkadapt и Bulstoer).

12

Page 13: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Листинг 1.3. Решение системы двух ОДУ (модель осциллятора)

)D,M,40,0,y(rkfixed:u

yy

y:)y,t(D

50:M

0

1:y

2.0:5.0:

0

10

1

0

Первая строка листинга представляет задание параметров модели,

вторая – начального условия задачи Коши, а в третьей строке листинга определено число шагов, на которых рассчитывается решение. Самая важная – это предпоследняя строка листинга, в которой, собственно, определяется система ОДУ. Последняя строка присваивает матричной переменной u результат действия функции rkfixed. Решение системы ОДУ будет осуществлено на промежутке (0,40).

Сравните рассматриваемую систему (см. разд. 1.1.1), записанную в стандартной форме, с формальной ее записью в Mathcad, чтобы не делать впоследствии ошибок. Во-первых, функция D , входящая в число параметров встроенных функций для решения ОДУ, должна быть функцией обязательно двух аргументов. Во-вторых, второй ее аргумент должен быть вектором того же размера, что и сама функция D . В-третьих, точно такой же размер должен быть и у вектора начальных значений 0y . Не забывайте, что векторную функцию y)D(t, следует определять через компоненты вектора y с помощью кнопки Subscript (Нижний индекс) с наборной панели Calculator (Калькулятор) или нажатием клавиши <[>.

Рис. 1.5. Результат, выдаваемый встроенной функцией в качестве решения системы ОДУ

(продолжение листинга 1.3)

13

Page 14: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Матрица, представляющая решение, показана на рис. 1.5. Размер полученной матрицы будет равен (M 1) (N 1), т. е. 351 . Просмотреть все компоненты матрицы и, которые не помещаются на экране, можно с помощью вертикальной полосы прокрутки. Как нетрудно сообразить, на этом рисунке отмечены выделением расчетные значения искомых векторов на 10-м шаге. Это соответствует, с математической точки зрения, найденным значениям 307.0)0.8(0 y и 1(8.0) 0.204.y Для вычисления элементов

решения в последней точке интервала используйте вывод элемента M,1u .

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

0u – вдоль оси X , а 1u и 2u – вдоль оси Y (рис. 1.6).

Рис. 1.6. График решения системы ОДУ осциллятора (продолжение листинга 1.3)

Обратите внимание на некоторое разночтение в обозначении индексов

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

1.3.2. Решение одного уравнения (N = 1)

Метод решения ОДУ при помощи встроенных функций rkfixed, Rkadapt

или Buistoer (в противоположность вычислительному блоку Given/Odesolve) сохранился с прежних версий Mathcad (до 2000-й). В большинстве случаев лучше использовать вычислительный блок Given/Odesolve, который выигрывает в простоте и в наглядности, однако иногда предпочтительнее решать ОДУ первого порядка с помощью второго способа, например, при следующих обстоятельствах: вы работаете одновременно с более старыми (до 2001-й включительно)

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

одно ОДУ решается в контексте решения более сложных задач, в которые входят системы дифференциальных уравнений (для которых

14

Page 15: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

вычислительный блок неприменим) – в этом случае может потребоваться единый стиль программирования;

ответ предпочтительнее получить в виде вектора, а не функции; вы привыкли к записи ОДУ в старых версиях Mathcad, у вас много доку-

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

решения систем ОДУ, приведем пример его использования (листинг 1.4) практически без комментариев. Отметим лишь в случае одного ОДУ, что как само уравнение, так и начальное условие можно задавать не в векторной, а в скалярной форме. Результат выдается в виде матрицы размерности 2M , которая состоит из двух столбцов: в одном находятся значения аргумента t (от t0 до tl включительно), а в другом соответствующие значения искомой функции у(t).

Рис. 1.7. Решение уравнения 21 yy (продолжение листинга 1.4)

Построение графика (рис. 1.7) осуществляется так же, как и в

рассмотренном в предыдущем разделе случае N уравнений, при помощи выделения столбцов из матрицы решения посредством оператора < >. Листинг 1.4. Решение задачи Коши для ОДУ первого порядка

)D,M,5,0,y(rkfixed:u

y1:)y,t(D

20:M

0:y

0

2

0

15

Page 16: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

1.3.3. Решение систем ОДУ в одной заданной точке

Зачастую при решении дифференциальных уравнений требуется определить значения искомых функций не на всем интервале (t0,t1), а только в одной его последней точке. Например, весьма распространены задачи поиска аттракторов динамических систем. Известно, что для широкого класса ОДУ одна и та же система при разных (или даже любых, как рассмотренный выше пример осциллятора с затуханием) начальных условиях при t приходит в одну и ту же точку (аттрактор). Поэтому часто нужно определить именно эту точку.

Такая задача требует меньше ресурсов компьютера, чем решение системы ОДУ на всем интервале, поэтому в Mathcad имеются модификации встроенных функций Rkadapt и Bulstoer. Они имеют несколько другой набор параметров и работают значительно быстрее своих аналогов: rkadapt (у0,t0,tl,асс,D,k,s) – метод Рунге-Кутты с переменным шагом; bulstoer (у0,t0,tl,асс,D,k,s) – метод Булирша-Штера: у0 – вектор начальных значений в точке t0; t0,t1 – начальная и конечная точки расчета; асc – погрешность вычисления (чем она меньше, тем с лучшей

точностью будет найдено решение; рекомендуется выбирать значения погрешности в районе 0.001);

D – векторная функция, задающая систему ОДУ; k – максимальное число шагов, на которых численный метод будет

находить решение; s – минимально допустимая величина шага.

Как легко заметить, вместо числа шагов на интервале интегрирования ОДУ в этих функциях необходимо задать точность расчета численным методом значения функций в последней точке. В этом смысле параметр асc похож на константу TOL, которая влияет на большинство встроенных численных алгоритмов Mathcad. Количество шагов и их расположение определяются численным методом автоматически, чтобы обеспечить эту точность. Два последних параметра нужны для того, чтобы пользователь мог искусственно повлиять на разбиение интервала на шаги. Параметр k служит для того, чтобы шагов не было чрезмерно много, причем нельзя сделать k>1000. Параметр s – для того, чтобы ни один шаг не был слишком малым для появления больших погрешностей при разностной аппроксимации дифференциальных уравнений внутри алгоритма. Эти параметры следует задавать явно, исходя из свойств конкретной системы ОДУ. Как правило, проведя ряд тестовых расчетов, можно подобрать их оптимальный набор для каждого конкретного случая.

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

16

Page 17: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

В предпоследней строке листинга осуществлен вывод решения системы ОДУ на конце интервала, т. е. в точке t = 50 в виде вектора. В последней строке для примера еще раз выводится искомое значение первой функции из системы ОДУ (сравните его с соответствующим местом вектора из предыдущей строки). Чтобы попробовать альтернативный численный метод, достаточно в листинге 1.5 заменить имя функции bulstoer на rkadapt. Листинг 1.5. Поиск аттрактора системы двух ОДУ модели осциллятора

14

14NT

50

10

1

0

10128.3

10645.7

300

u

1)u(rows:N

01.0,M,D,10,300,0,ybulstoer:u

y2.0y5.0

y:)y,t(D

50:M

0

1:y

1.3.4. О численных методах

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

Рекомендации по выбору численного алгоритма

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

17

Page 18: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

Функция Rkadapt может быть полезна в случае, когда известно, что решение на рассматриваемом интервале меняется слабо, либо существуют участки медленных и быстрых его изменений. Метод Рунге-Кутты с переменным шагом разбивает интервал не на равномерные шаги, а более оптимальным способом. Там, где решение меняется слабо, шаги выбираются более редкими, а в областях его сильных изменений – частыми. В результате для достижения одинаковой точности требуется меньшее число шагов, чем для rkfixed. Метод Булирша-Штера Bulstoer часто оказывается более эффективным для поиска гладких решений.

Имея в виду сделанные замечания, приведем краткую сводку алгоритмов решения задач Коши для ОДУ, отмечая, какие из встроенных функций следует использовать в конкретных случаях. Если вы пользуетесь Mathcad 14, применяйте универсальную функцию

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

Для решения единственного уравнения (любого порядка) используйте вычислительный блок Given/odesoive. Помните о том, что в последних версиях Mathcad допускается выбирать для этого блока численный алгоритм (в том числе, жесткий) из контекстного меню.

Для стандартных нежестких систем используйте алгоритм Булирша- Штера Bulstoer.

Для систем с участками быстро и медленно меняющихся решений ис-пользуйте адаптивный алгоритм Рунге-Кутты Rkadapt.

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

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

Для жестких систем (см. разд. 1.4) используйте функции Radau Stiffb или Stiffr, причем, если вы затрудняетесь с вводом якобиана, применяйте первую из них.

Мы не будем в этом пособии приводить описание численных алгоритмов, поскольку им посвящено огромное количество книг, и читатель, несомненно, найдет соответствующую литературу с подробным объяснением их работы.

18

Page 19: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Тем не менее, разберем несколько важных моментов, касающихся выбора алгоритма и его параметров.

Число шагов

Все встроенные функции требуют задания для численного метода количества шагов, разбивающих интервал интегрирования ОДУ. Это очень важный параметр, непосредственно влияющий на погрешность результата и скорость расчетов. При решении систем ОДУ многие проблемы могут быть устранены при помощи простой попытки увеличить число шагов численного метода. В частности, сделайте так при неожиданном возникновении ошибки «Found a number with a magnitude greater than 10^307» (Найдено число, превышающее значение 10307). Данная ошибка не обязательно говорит о том, что решение в действительности расходится, а возникает из-за недостатка шагов для корректной работы численного алгоритма.

В качестве иллюстрации приведем результаты простых расчетов (листинг 1.6), в которых определяется пользовательская функция u(М), представляющая решение ОДУ в зависимости от числа шагов M. На рис. 1.8 показано несколько графиков решения системы ОДУ затухающего линейного осциллятора для нескольких значений M.

Рис. 1.8. Решение системы ОДУ в зависимости от числа узлов M

(продолжение листинга 1.6) Листинг 1.6. Решение системы ОДУ как функция числа шагов

1

1

( , ) :0.5 0.2

1( ) : ,0,50, ,

0

o

yD t y

y y

u M Bulstoer M D

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

19

Page 20: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Рис. 1.9. Фазовый портрет решения системы ОДУ при M = 40 и M = 200

(продолжение листинга 1.6)

Видно, что для M = 200 решение получается более гладким (конечно, при этом увеличивается и время расчетов).

Погрешность алгоритмов решения ОДУ в точке

Обратимся теперь к функциям bulstoer и rkadapt (тем, что пишутся со строчной буквы), которые предназначены для нахождения решения в определенной точке интервала интегрирования системы ОДУ. В первую очередь, подчеркнем еще раз, что их нельзя применять для получения решения в промежуточных точках интервала, несмотря на их вывод в матрице-результате. На рис. 1.10 показан фазовый портрет системы ОДУ динамической модели осциллятора, полученный при помощи функции bulstoer в листинге 1.5 (см. разд. 1.3.3) и с помощью rkadapt (при соответствующей замене третьей строки листинга 1.5). Видно, что, несмотря на высокую точность, равную 10-5, и верный результат на конце интервала, график, полученный при помощи функции bulstoer (рис. 1.10, а), мало напоминает правильный фазовый портрет (см. рис. 1.9), начиная быть приемлемым только при предельно допустимом для обсуждаемых функций значении асс = 10-16. В данном случае конкретной системы ОДУ функция rkadapt дает качественно верное решение (рис. 1.10, б), однако его необхо-димая точность обеспечивается только в последней точке временного интервала.

В заключение остановимся на влиянии выбора параметра асc на расчеты. Как правило, разные численные методы работают несколько по-разному. Алгоритм Рунге-Кутты дает результат тем ближе к истинному, чем меньше выбирается параметр асс, а Булирша-Штера часто демонстри-рует менее естественную зависимость у(ε): даже при относительно больших ε реальная погрешность остается хорошей (намного лучше метода Рунге-Кутты).

20

Page 21: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

a

b Рис. 1.10. Фазовый портрет, полученный bulstoer (a) и rkadapt (b)

(продолжение листинга 9.5)

Поэтому для экономии времени расчетов в функции bulstoer можно выбирать и большие значения асc.

Чтобы обеспечить заданную точность, данные алгоритмы могут изменять как количество шагов, разбивающих интервал (t0 ,t1 ), так и их расположение вдоль интервала. Чтобы выяснить, на сколько шагов разбивался интервал при расчетах, воспользуемся простой программой, представленной в листинге 1.7. В ней определены пользовательские функции R(ε) и B(ε), вычисляющие для конкретной задачи (методов Рунге-Кутты и Булирша-Штера соответственно) зависимость числа шагов (т. е. числа строк получающейся матрицы) от параметра ε = асс. Графики функций R(ε) и B(ε) показаны на рис. 1.11. Как видно, методу Рунге-Кутты при увеличении требуемой точности требуется все возрастающее количество шагов (и, соответственно, времени на расчеты), в противоположность методу Булирша-Штера, демонстрирующему большую экономичность.

21

Page 22: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Рис. 1.11. Зависимость числа шагов от параметра acc численных методов (продолжение листинга 1.7)

Листинг 1.7. Число шагов адаптивного численного алгоритма в зависимости от погрешности acc

001.0,k,D,,50,0,0

1.0rkadaptrows:)k,(R

001.0,k,D,,50,0,0

1.0bulstoerrows:)k,(B

300:k

y1.0y

y:)y,t(D

10

1

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

1.4. Жесткие системы ОДУ

До сих пор мы имели дело с «хорошими» уравнениями, которые надежно решались численными методами Рунге-Кутты. Однако имеется класс так называемых жестких (stiff) систем ОДУ, для которых стандартные методы практически неприменимы, поскольку их решение требует исклю-чительно малого значения шага численного метода. Некоторые из специаль-ных алгоритмов, разработанных для этих систем, реализованы в Mathcad.

Исторически интерес к жестким системам возник в середине XX в. при изучении уравнений химической кинетики с одновременным присутствием

22

Page 23: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

Строгого общепринятого математического определения жестких ОДУ нет. В рамках этого пособия будем считать, что жесткие уравнения – это те уравнения, решение которых получить намного проще с помощью определенных неявных методов, чем посредством явных методов (типа тех, что были рассмотрены в предыдущих разделах). Примерно такое опреде-ление было предложено в 1950-х гг. классиками в этой области Кертиссом и Хиршфельдером. Начнем разговор о жестких ОДУ с примера нежесткого уравнения (листинг 1.8), решение которого удается получить численным методом Рунге-Кутты (рис. 1.12).

Листинг 1.8. Решение нежесткого ОДУ

)1,t(Odesolve:y

1)0(y

))tcos()t(y(10)t(ydt

d

Given

Рис. 1.12. Решение нежесткого ОДУ методом Рунге-Кутты (продолжение листинга 1.8)

Обратите внимание на значение коэффициента –10 во второй строке листинга. Если изменить его на –50, то решение меняется до неузнаваемости (рис. 1.13). Вас, несомненно, должен насторожить результат, выданный Mathcad. Характерная «разболтка» решения говорит о неустойчивости алгоритма. Первое, что можно сделать, – увеличить количество шагов в методе Рунге-Кутты. Для этого достаточно добавить третий параметр step в функцию Odesolve (t, l, step). После нескольких экспериментов можно подобрать такое значение step, которое будет обеспечивать устойчивость

23

Page 24: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

решения. Читатель может самостоятельно убедиться, что при step>20 «разболтка» пропадает, и решение принимает вид графика, показанного ниже на рис. 1.14

Рис. 1.13. Неверное решение более жесткого ОДУ методом Рунге-Кутты

(листинг 1.8 с коэффициентом –50)

Таким образом, во-первых, мы выяснили, что одни и те же уравнения с разными параметрами могут быть как жесткими, так и нежесткими. Во-вторых, чем жестче уравнение, тем больше шагов в обычных численных методах требуется для его устойчивого решения. С классическим примером ОДУ из листинга 1.8 все получилось хорошо, т. к. оно было не очень жестким, и небольшое увеличение числа шагов разрешило все проблемы. Дня решения обычными методами более жестких уравнений требуются миллионы, миллиарды и даже большее число шагов.

Функции для решения жестких ОДУ

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

осуществить только с помощью встроенных функций, аналогичных по действию семейству рассмотренных выше функций для обычных ОДУ: Radau(у0,t0,t1,M,F) – алгоритм RADAUS для жестких систем ОДУ; Stiffb(у0,t0,t1,M,F,J) – алгоритм Булирша-Штера для жестких систем

ОДУ; Stiffr(у0,t0,t1,M,F,J) – алгоритм Розенброка для жестких систем ОДУ:

y0 – вектор начальных значений в точке t0; t0,t1 – начальная и конечная точки расчета; M – число шагов численного метода; F – векторная функция F(t, у) размера N1 , задающая систему ОДУ; J – матричная функция J(t,y) размера N1)(N , составленная из

вектора производных функции F(t, у) по t (правый столбец) и ее якобиана (N левых столбцов).

24

Page 25: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

Решение жесткой задачи из предыдущего раздела при помощи функции Radau приведено в листинге 1.9. Результат показан в виде графика на рис. 1.14 вместе с графиком решения менее жесткой задачи (для которого применялся листинг 1.8). Как вы видите, хватило всего пяти точек разбиения интервала интегрирования жесткого ОДУ, чтобы метод с ним справился.

Листинг 1.9. Решение жесткого ОДУ алгоритмом RADAUS

)F,M,1,0,0y(Radau:u

5:M1:0y

))tcos(y(100:)y,t(F

Рис. 1.14. Решение жесткого ОДУ методом RADAUS (продолжение листингов 1.8 и 1.9)

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

radau(у0,t0,tl,асc,F,k,s) – метод RADAUS. stiffb(у0,t0,tl,асc,F,J,k,s) – метод Булирша-Штера. stiffr(у0,t0,tl,асc,F ,J ,k,s) – метод Розенброка. Имена данных функций пишутся со строчной буквы, а их действие и

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

25

Page 26: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

1.5. Новые возможности Mathcad 14

В Mathcad 14 появилось несколько новых встроенных функций для решения как жестких, так и нежестких ОДУ, основанных на более современных численных алгоритмах.

1.5.1. Новые алгоритмы решения жестких и нежестких ОДУ

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

Radau(у0,t0,tl,M,F,[J,A,acc]) – модификация алгоритма RADAU (для жестких систем ОДУ и для систем дифференциальных и алгебраических уравнений);

Adams(у0,t0,t1,M,F,[асc]) – алгоритм Адамса (применяется для нежестких систем ОДУ);

BDF(у0,t0,t1,M,F,[J,асc]) – алгоритм BDF (применяется для жестких систем ОДУ);

AdamsBDF(у0,t0,t1,M,F,[J,асc]) – универсальный гибридный метод Адамса-BDF, применяемый для любых (как жестких, так и нежестких) систем ОДУ (численный алгоритм сам решает, насколько жесткой является система, и какую из разновидностей метода следует использовать): y0 – вектор начальных значений в точке t0; t0,t1 – начальная и конечная точки расчета; M – число шагов численного метода; F – векторная функция F(t,у) размера N1 , задающая систему ОДУ; J – Якобиан (матричная функция Якоби) J(t,y) размера NN , состав

ленная из векторов частных производных векторной функции F(t,у); асc – погрешность вычисления; A – матрица, составленная из действительных чисел, которая задает

связь между неизвестными в форме матричного равенства Ay =F (t, у).

Пример использования новых функций приведен в листингах 1.10 и 1.11. Обратите внимание на то, что листинг 1.10 представляет автоматизированный подсчет матрицы Якоби при помощи новой встроенной функции Jacob.

26

Page 27: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Листинг 1.10. Решение ОДУ химической кинетики методом BDF

)A,J,F,20,50,0,0y(BDF:D

010000

y1001000y1001.0

y100y1001.0

)y,t(J

)y),y,t(F(Jacob:)y,t(J

0

0

1

:0y

y10

y10yy10y1.0

yy10y1.0

:)y,t(F

12

12

13

13

212

0

212

0

Листинг 1.11. Решение системы ОДУ и алгебраического уравнения

)A,J,F,200,50,0,0y(BDF:D

111

y1001000y1001.0

y100y1001.0

)y,t(J

)y),y,t(F(Jacob:)y,t(J

000

010

001

:A

0

0

1

:0y

1yyy

y10yy10y1.0

yy10y1.0

:)y,t(F

12

12

210

13

212

0

212

0

27

Page 28: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

0 0 1 2

31 0 1 2 1

0 1 2

dy -.1 y +100 y y

dtd

y .1 y -100 y y 10 ydt0 y y y 1

посредством модернизированной функции Radau. Результат ее применения показан в виде графика на рис. 1.15.

Рис. 1.15. График решения гибридной системы

(продолжение листинга 1.11)

1.5.2. Решение линейных ОДУ

Разработчики Mathcad 14 предусмотрели дополнительную встроенную функцию statespace решения линейных ОДУ определенного вида у'(t) = А(t)y(t) + В(t)u(t) . statespace(y0,t0,t1,M,A,B,u) – функция решения систем линейных ОДУ.

y0 – вектор начальных значений в точке t0; t0,t1 – начальная и конечная точки расчета; M – число шагов численного метода; асc – погрешность вычисления; A(t) – матричная функция размера NN ; B(t) – векторная функция размера kN ; u(t) – функция (скалярная, если k = 1; или векторная размера 1k ). Пример использования функции statespace иллюстрируется листин-

гом 1.12 и рис. 1.16.

28

Page 29: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Листинг 1.12. Решение системы линейных ОДУ

)u,B,A,500,20,0,0y(statespace:D

)tsin(:)t(u

1

0:0y

1.

3:)t(B

21

10:)t(A

Рис. 1.16. Решение системы линейных ОДУ

(продолжение листинга 1.12)

29

Page 30: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

2. Обыкновенные дифференциальные уравнения: краевые задачи

В этой главе рассматриваются краевые задачи для обыкновенных

дифференциальных уравнений (ОДУ). Средства Mathcad, реализующие алгоритм стрельбы (см. разд. 2.2), позволяют решать краевые задачи для систем ОДУ, в которых часть граничных условий поставлена в начальной точке интервала, а остальная часть – в его конечной точке. Также возможно решать уравнения с граничными условиями, поставленными в некоторой внутренней точке.

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

Несмотря на то, что, в отличие от задач Коши для ОДУ, в Mathcad не предусмотрены встроенные функции для решения жестких краевых задач, с ними все-таки можно справиться, применив программирование разностных схем, подходящих для решения задач этого класса (см. разд. 2.4).

2.1. О постановке задач

Постановка краевых задач для ОДУ отличается от задач Коши, рассмотренных в главе 1, тем, что граничные условия для них ставятся не в одной начальной точке, а на обеих границах расчетного интервала. Если имеется система N обыкновенных дифференциальных уравнений первого порядка, то часть из N условий может быть поставлена на одной границе интервала, а оставшиеся условия – на противоположной границе.

Чтобы лучше понять, что из себя представляют краевые задачи, рассмотрим их постановочную часть на конкретном физическом примере – модели взаимодействия встречных световых пучков. Предположим, что надо определить распределение интенсивности оптического излучения в пространстве между источником (лазером) и зеркалом, заполненном некоторой средой (рис. 2.1). Будем считать, что от зеркала отражается R-Я

часть падающего излучения (т. е. его коэффициент отражения равен R), а среда как поглощает излучение с коэффициентом ослабления а(x), так и рассеивает его. Причем коэффициент рассеяния назад равен r (x ). В этом случае закон изменения интенсивности y0(x) излучения, распростра-няющегося вправо, и интенсивности y1(x) излучения влево определяется системой двух ОДУ первого порядка:

(x).yr(x)(x)ya(x)dx

(x)dy

(x);yr(x)(x)ya(x)dx

(x)dy

011

100

(2.1)

30

Page 31: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Для правильной постановки задачи требуется, помимо уравнений, задать такое же количество граничных условий. Одно из них будет выражать известную интенсивность излучения I0, падающего с левой границы x = 0, а второе – закон отражения на его правой границе x = 1:

(1).yR)1(y

I0;(0)y

01

0

(2.2)

Рис. 2.1. Модель краевой задачи

Полученную задачу называют краевой (boundary value problem), поскольку условия поставлены не на одной, а на обеих границах интервала (0, 1). И, в связи с этим, их нельзя решить методами, описанными в предыдущей главе и предназначенными для задач с начальными условиями. Далее для показа возможностей Mathcad будем использовать этот пример с R = 1 и конкретным видом а(x) = const = 1 и r(x) = const = 0.1, описывающим случай (не зависящего от координаты x) рассеяния. Примечание 1 Модель, представленная на рис. 2.1, привела к краевой задаче для системы линейных ОДУ. Она имеет аналитическое решение в виде комбинации экспонент. Более сложные, нелинейные, задачи возможно решить только численно. Нетрудно сообразить, что модель станет нелинейной, если сделать коэффициенты ослабления и рассеяния зависящими от интенсивности излучения. Физически это будет соответствовать изменению оптических свойств среды под действием мощного излучения. Примечание 2 Модель встречных световых пучков привела к системе уравнений (2.1), в которые входят производные только по одной переменной x. Если рассматривать более сложные эффекты рассеяния в стороны (а не только вперед и назад), то в уравнениях появились бы частные производные по другим пространственным переменным у и z. В этом случае получилась бы краевая задача для уравнений в частных производных, решение которой во много раз сложнее решения ОДУ.

0 1 x

mirror

light source

reflected beam

direct beam

31

Page 32: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

2.2. Решение краевых задач средствами Mathcad

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

2.2.1. Алгоритм стрельбы

Суть метода стрельбы заключается в пробном задании недостающих граничных условий на левой границе интервала, и решении затем полученной задачи Коши хорошо известными методами. В нашем примере не хватает начального условия для y 1 (0), поэтому сначала зададим его произвольное значение, например, у1(0) = 10. Конечно, такой выбор не совсем случаен, поскольку из физических соображений ясно, что, во-первых, интенсивность излучения – величина заведомо положительная, и, во-вторых, отраженное излучение должно быть намного меньше падающего. Решение задачи Коши с помощью функции rkfixed приведено в листинге 2.1, причем в его последней строке выведены расчетные значения у0 и y1 в правой крайней точке интервала х = 1. Разумеется, они не совпадают, т. е. правое краевое условие не выполнено, из чего следует, что полученный результат не является решением поставленной краевой задачи.

Листинг 2.1. Решение пробной задачи Коши для модели (2.1)

372.15S558.37S

)D,M,1,0,y(rkfixed:S

10:M

10

0I:y

100:0I

y)x(ry)x(a

y)x(ry)x(a:)y,x(D

1:R

1:)x(a1.0:)x(r

2,M1,M

01

10

График полученных решений показан на рис. 2.2 (сверху). Из него также видно, что взятое наугад второе начальное условие не обеспечило выполнение граничного условия при х = 1. В целях лучшего выполнения

32

Page 33: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

этого граничного условия следует взять большее значение y1(0), например, y1(0) = 15 и вновь решить задачу Коши.

Рис. 2.2. Иллюстрация метода стрельбы

(продолжение листинга 2.1)

Соответствующий результат показан на том же рис. 2.2 (в центре). Граничное условие выполняется с лучшей точностью, но опять-таки точность оказалась недостаточной. Для еще одного значения y1(0) = 20 получается решение, показанное на рис. 2.2 (снизу). Из сравнения двух правых графиков легко заключить, что недостающее начальное значение y1(0) больше 15, но

33

Page 34: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

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

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

2.2.2. Двухточечные краевые задачи

Решение краевых задач для систем ОДУ методом стрельбы в Mathcad

достигается применением двух встроенных функций. Первая предназначена для двухточечных задач с краевыми условиями, заданными на концах интервала: sbval(z,x0,xl,D,load,score) – поиск вектора недостающих L начальных

условий для двухточечной краевой задачи для системы N ОДУ: z – вектор размера 1L , присваивающий недостающим начальным

условиям (на левой границе интервала) начальные значения; x0 – левая граница расчетного интервала; х1 – правая граница расчетного интервала; load (x0,z) – векторная функция размера 1N левых граничных условий,

причем недостающие начальные условия поименовываются соответствующими компонентами векторного аргумента z;

score(x1,у) – векторная функция размера 1L , выражающая L правых граничных условий для векторной функции у в точке x1;

D(х,у) – векторная функция, описывающая систему N ОДУ, размера 1N и двух аргументов – скалярного х и векторного у. При этом у – это неизвестная векторная функция аргумента х того же размера 1N .

Замечание. Решение краевых задач в Mathcad, в отличие от большинства остальных операций, реализовано не совсем очевидным образом. В частности, помните, что число элементов векторов D и load равно количеству уравнений N, а векторов z, score и результата действия функции sbval – количеству правых граничных условий L. Соответственно, левых граничных условий в задаче должно быть (N-L) .

34

Page 35: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Как видно, функция sbval предназначена не для поиска собственно решения, т. е. неизвестных функций yi(x), а для определения недостающих начальных условий в первой точке интервала, т. е. yi(x0). Чтобы вычислить yi(x) на всем интервале, требуется дополнительно решить задачу Коши.

Разберем особенности использования функции sbval на конкретном примере (листинг 2.2), описанном выше (см. разд. 2.1.1). Краевая задача со-стоит из системы двух уравнений (N = 2), одного левого (L = 1) и одного

правого (N – L = 2 – 1 = 1) граничного условия. Первые три строки листинга задают необходимые параметры задачи и

саму систему ОДУ. В четвертой строке определяется вектор z. Поскольку правое граничное условие всего одно, то недостающее начальное условие тоже одно, соответственно, и вектор z имеет только один элемент z0. Ему необходимо присвоить начальное значение (мы приняли z0 = 10, как в листинге 2.1), чтобы запустить алгоритм стрельбы (см. разд. 2.1.2). Листинг 2.2. Решение краевой задачи

D,10,1,0,1I

0Irkfixed:S

)555.18(1I

)score,load,D,1,0,z(sbval:1I

yyR:)y,1x(score

z

100:)z,0x(load

10:z

y)x(ry)x(a

y)x(ry)x(a:)y,x(D

100:0I1:R

1:)x(a1.0:)x(r

0

10

0

0

01

10

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

В следующей строке листинга векторной функции load(x,z) присваиваются левые граничные условия. Эта функция аналогична векторной переменной, определяющей начальные условия для встроенных функций, решающих задачи Коши. Отличие заключается в записи недостающих условий. Вместо конкретных чисел на соответствующих

35

Page 36: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

местах пишутся имена искомых элементов вектора z. В нашем случае вместо второго начального условия стоит аргумент z0 функции load. Первый аргумент функции load – это точка, в которой ставится левое граничное условие. Ее конкретное значение определяется непосредственно в списке аргументов функции sbval.

Следующая строка листинга определяет правое граничное условие, для введения которого используется функция score(х, у). Оно записывается точно так же, как система уравнений в функции D. Аргумент х функции score аналогичен функции load и нужен для тех случаев, когда граничное условие явно зависит от координаты х. Вектор score должен состоять из такого же числа элементов, что и вектор z. Реализованный в функции sbval алгоритм стрельбы ищет недостающие начальные условия таким образом, чтобы решение полученной задачи Коши делало функцию score(х, у) как можно ближе к нулю. Как видно из листинга, результат применения sbval для интервала (0, 1) присваивается векторной переменной I1. Этот вектор похож на вектор z, только в нем содержатся искомые начальные условия вместо приближенных начальных значений, заданных в z. Вектор содержит, как и z, всего один элемент L. С его помощью можно определить решение краевой задачи у(х) (последняя строка листинга). Тем самым функция sbval сводит решение краевых задач к задачам Коши. График решения краевой задачи показан на рис. 2.3.

На рис. 2.4 показано решение той же самой краевой задачи, но с другим правым граничным условием, соответствующим R = 0. В этом случае слабый обратный пучок света образуется иcключительно за счет обратного рассеяния излучения от лазера. Конечно, многие из читателей уже обратили внимание, что реальная физическая cреда не может создавать такого большого рассеяния назад. Иными словами, более реальны значения r(х)<<а(х).

Рис. 2.3. Решение краевой задачи для R = 1

(продолжение листинга 2.2)

36

Page 37: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Рис. 2.4. Решение краевой задачи для R = 0

(продолжение листинга 2.2 при R = 0) Однако когда коэффициенты в системе ОДУ при разных yi очень

сильно (на порядки) различаются, система ОДУ становится жесткой, и функция sbval не может найти решения, выдавая вместо него сообщение об ошибке «Could not find a solution» (Невозможно найти решение). Замечание! Метод стрельбы не годится для решения жестких краевых задач. Поэтому алгоритмы решения жестких ОДУ в Mathcad приходится программировать самому (см. разд. 2.4).

2.2.3. Краевые задачи с условием во внутренней точке

Иногда дифференциальные уравнения определяются с граничными условиями не только на концах интервала, но и с дополнительным условием в некоторой промежуточной точке расчетного интервала. Чаще всего такие задачи содержат данные о негладких в некоторой внутренней точке интервала решениях. Для них имеется встроенная функция bvalfit, также реализующая алгоритм стрельбы. bvalfit(zl,z2,x0,xl,xf,D,load1,load2,score) – поиск вектора недостающих

граничных условий для краевой задачи с дополнительным условием в промежуточной точке для системы N ОДУ. z1 – вектор, присваивающий недостающим начальным условиям на

левой границе интервала начальные значения. z2 – вектор того же размера, присваивающий недостающим начальным

условиям на правой границе интервала начальные значения. x0 – левая граница расчетного интервала. xl – правая граница расчетного интервала. xf – точка внутри интервала. D(х,у) – векторная функция, описывающая систему N ОДУ размера

37

Page 38: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

1N и двух аргументов – скалярного х и векторного у. При этом у – это неизвестная векторная функция аргумента х того же размера 1N .

loadl(x0,z) – векторная функция размера 1N левых граничных условий, причем недостающие начальные условия поименовываются соответствующими компонентами векторного аргумента z.

load2(xl,z) – векторная функция размера 1N левых граничных условий, причем недостающие начальные условия поименовываются соответствующими компонентами векторного аргумента z.

score(xf,у) – векторная функция размера 1N , выражающая внутреннее условие для векторной функции у в точке xf.

Обычно функция bvalfit применяется для задач, в которых производная решения имеет разрыв во внутренней точке xf. Некоторые из таких задач не удается решить обычным методом пристрелки, поэтому приходится вести пристрелку сразу из обеих граничных точек. В этом случае дополнительное внутреннее условие в точке xf является просто условием сшивки в ней левого и правого решений. Поэтому для данной постановки задачи оно записывается в форме score(xf,у) :=у.

Рассмотрим действие функции bvalfit на знакомом примере модели взаимодействия пучков света (см. рис. 2.1), предположив, что в промежутке между xf = 0.5 и x = 1.0 находится другая, оптически более плотная среда с другим коэффициентом ослабления излучения а(х) = 3. Соответствующая краевая задача решена в листинге 2.3, причем разрывный показатель ослабления определяется в его второй строке. Листинг 2.3. Краевая задача с граничным условием в промежуточной точке

801.13

618.51I

)score,2load,1load,D,5.0,1,0,2z,1z(bvalfit:1I

y:)y,xf(score

2Rz

2z:)2z,1x(2load

1z

100:)1z,0x(1load

30:2z20:1z

y)x(ry)x(a

y)x(ry)x(a:)y,x(D

otherwise3

5.0xif1:)x(a

1:R100:0I1.0:)x(r

T

0

0

0

00

01

10

38

Page 39: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Система, уравнений и левое краевое условие вводится так же, как и в предыдущем листинге для функции sbval. Обратите внимание, что таким же образом записано и правое краевое условие. Для того чтобы ввести условие отражения на правой границе, пришлось определить еще один неизвестный пристрелочный параметр z20. Строка листинга, в которой определена функ-ция score, задает условие стрельбы – сшивку двух решений в точке xf. В самой последней строке листинга выдан ответ – определенные численным методом значения обоих пристрелочных параметров, которые объединены в вектор I1 (мы применили в предпоследней строке операцию транспонирования, чтобы результат получился в форме вектора, а не матрицы-строки).

Для корректного построения графика решения лучше составить его из двух частей – решения задачи Коши на интервале (x0,xf) и другой задачи Коши для интервала (xf,x1). Реализация этого способа приведена в листинге 2.4, который является продолжением листинга 2.3. В последней строке листинга 2.4 выведено значение второй искомой функции на правой границе интервала. Всегда полезно проконтролировать, что оно совпадает с соответствующим пристрелочным параметром (выведенным в последней строке листинга 2.3). Листинг 2.4. Решение краевой задачи (продолжение листинга 2.3)

801.131S

D,M,1,5.0,0S

0Srkfixed:1S

D,M,5.0,0,1I

0Irkfixed:0S

10:M

2,M

2,M

1,M

0

Решение краевой задачи приведено на рис. 2.5. С физической точки

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

Ради справедливости необходимо заметить, что разобранную краевую задачу легко решить и с помощью функции sbval, заменив в листинге 2.2

39

Page 40: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

Рис. 2.5. Решение краевой задачи с разрывом в xf = 0.5

(продолжение листингов 2.3–2.4)

2.3. Задачи на собственные значения для ОДУ

Задачи на собственные значения – это краевые задачи для системы ОДУ, в которую входят один или несколько параметров λ. Значения этих параметров неизвестны, а решение краевой задачи существует только при определенных λk, которые называются собственными значениями (eigenvalues) задачи. Решения, соответствующие этим λk, называют собствен-ными функциями (eigenfunctions) задачи. Правильная постановка таких задач требует формулировки количества граничных условий, равного сумме числа уравнений и числа собственных значений. Физическими примерами задач на собственные значения являются, например, уравнение колебаний струны, уравнение Шредингера в квантовой механике, уравнения волн в резонаторах и многие другие.

С вычислительной точки зрения, задачи на собственные значения очень похожи на рассмотренные выше краевые задачи. В частности, для многих из них также применим метод стрельбы (см. разд. 2.1.2). Отличие заключается в пристрелке не только по недостающим левым граничным условиям, но еще и по искомым собственным значениям. В Mathcad для решения задач на собственные значения используются те же функции sbval и bvalfit. В их первый аргумент, т. е. вектор, присваивающий начальные значения недостающим начальным условиям, следует включить и начальное приближение для собственного значения.

Рассмотрим методику решения на конкретном примере определения

40

Page 41: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

собственных упругих колебаний струны. Профиль колебаний струны у(х) описывается линейным дифференциальным уравнением второго порядка

0y(x)q(x)λdx

dy(x)p(x)

dx

d

, (2.3)

где р(х) и q(x) – жесткость и плотность, которые, вообще говоря, могут меняться вдоль струны. Если струна закреплена на обоих концах, то граничные условия задаются в виде у(0) = у (1) = 0. Сформулированная задача является частным случаем задачи Штурма-Лиувилля. Поскольку решается система двух ОДУ, содержащая одно собственное значение λ, то по идее задача требует задания трех (2 + 1) условий. Однако, уравнение колебаний струны – линейное и однородное, поэтому в любом случае решение у(х) будет определено с точностью до множителя. Это означает, что производную решения можно задать произвольно, например, y'(0) = 1, что и будет третьим условием. Тогда краевую задачу можно решать как задачу Коши, а пристрелку вести только по одному параметру – собственному значению.

Процедура поиска первого собственного значения представлена в листинге 2.5. Листинг 2.5. Решение задачи о собственных колебаниях струны

87.91)478.39(

)score,load,D,b,a,(sbval:

y:)y,b(score

1

0

:),a(load

0

)y)x(qyy)x(p()x(p

1y

:)y,x(D

50:

1:b0:a

0:)x(p1:)x(q1:)x(p

22

0

0

021

1

0

В первых двух строках листинга определяются функции, входящие в

задачу, в том числе р'(х) :=0, и границы расчетного интервала (0,1). В третьей строке дается начальное приближение к собственному значению λ0, в четвертой вводится система ОДУ. Обратите внимание, что она состоит не из

41

Page 42: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

двух, а из трех уравнений. Первые два из них определяют эквивалентную (2.3) систему ОДУ первого порядка, а третье необходимо для задания собственного значения в виде еще одного компонента у2 искомого вектора у. Поскольку по определению собственное значение постоянно при всех х, то его производная должна быть приравнена нулю, что отражено в последнем уравнении. Важно также, что во втором из уравнений собственное значение записано как у2, поскольку является одним из неизвестных.

В следующих двух строках листинга задается левое граничное условие, включающее и недостающее условие на собственное значение для третьего уравнения, и правое граничное условие у0 = 0. В предпоследней строке листинга обычным образом применяется функция sbval, а в последней выводится результат ее работы вместе с известным аналитически собственным значением n2π2. Как легко убедиться, мы нашли первое собственное значение для n = 1, а чтобы найти другие собственные значения, необходимо задать другие начальные приближения к ним (в третьей строке листинга 2.5). Например, выбор λ0 = 50 приводит ко второму собственному значению 22 π2, а λ0 = 100 – к третьему 32 π2.

Чтобы построить график соответствующей собственной функции, надо добавить в листинг строку, программирующую решение задачи Коши, напри-мер, такую: U: =rkfixed(load(а,Λ),a,b,100,D). Полученные кривые показаны на рис. 2.6 в виде коллажа трех графиков, рассчитанных для трех собственных значений. Примечание Примеры решения нескольких задач на собственные значения можно найти в различных ресурсах Mathcad.

Рис. 2.6. Первые три собственные функции задачи колебаний струны (коллаж трех графиков, рассчитанных листингом 2.5 для разных λ0)

42

Page 43: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

2.4. Разностные схемы для ОДУ

Многие краевые задачи не поддаются решению методом стрельбы. Однако в Mathcad 12 других встроенных алгоритмов нет. Тем не менее, это не означает, что по-другому решать краевые задачи невозможно, ведь другие численные алгоритмы несложно запрограммировать самому пользователю. Рассмотрим возможную реализацию наглядного метода, называемого разностным, которым можно решать краевые задачи, как для ОДУ, так и для дифференциальных уравнений в частных производных.

2.4.1. О разностном методе

Разберем идею разностного метода решения краевых задач на примере взаимодействия световых пучков (см. рис. 2.1), переобозначив в системе (2.1) интенсивность излучения вправо на Y, а интенсивность излучения влево на у (просто в целях удобства, чтобы не писать в дальнейшем индекс). Суть метода заключается в покрытии расчетного интервала сеткой из N точек. Тем самым определяются (N–1) шагов (рис. 2.7). Затем надо заменить дифференциальные уравнения исходной краевой задачи аппроксими-рующими их уравнениями в конечных разностях, выписав соответствующие разностные уравнения для каждого i-ro шага. В нашем случае достаточно просто заменить первые производные из (2.1) их разностными аналогами (такой метод называется методом Эйлера):

.Y)r(xy)a(xΔ

yy

;y)r(xY)a(xΔ

YY

iiiii1i

iiiii1i

(2.4)

Рис. 2.7 Сетка, покрывающая расчетный интервал

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

Получилась система (по числу шагов) 2(N – 1) разностных линейных алгебраических уравнений с 2N неизвестными Yi и уi. Для того чтобы она имела единственное решение, надо дополнить число уравнений до 2N.

Y  y 

i=   0   1    2                 i    i+1                  N‐1 

     0                              Δ                       1                  X 

43

Page 44: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

Y0 = I0, yN = RYN. (2.5)

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

Az = B, (2.6) где z – неизвестный вектор, получающийся объединением векторов Y и у. Решив систему (2.6), мы получим решение краевой задачи.

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

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

Листинг 2.6. Реализация разностной схемы

78.31U453.13U

)B,A(lsolve:U

)N2,1,1N2,0,A(submatrix:A

0I:B0:B

1N2..1:i

R:A1:A1:A

)i(r:A1:A1)i(a:A

1N2..1N:i

)i(r:A1:A1)i(a:A

1N..1:i1N

1:5:N

1:R100:0I01.0:)x(r1:)x(a

1NN

0i

N,N2N,N1,0

Ni,i1i,ii,i

Ni,i1i,ii,i

44

Page 45: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

В первой строке листинга определяются функции и константы, входящие в модель, во второй задается число точек сетки N = 5 и ее равномерный шаг. Следующие две строки определяют матричные коэффициенты, аппроксимирующие уравнения для Yi, а пятая и шестая – для уi. Седьмая и восьмая строки листинга задают соответственно левое и правое граничное условие, а с девятой по одиннадцатую – правые части системы (2.6). В следующей строке завершается построение матрицы A вырезанием из нее левого нулевого столбца. В предпоследней строке листинга применена встроенная функция lsolve для решения системы (2.6), а в последней выведены рассчитанные ею неизвестные граничные значения. Графики решения приведены на рис. 2.8, причем первые N элементов итогового вектора есть вычисленное излучение вперед, а последние N элементов – излучение назад.

Рис. 2.8. Решение краевой задачи разностным методом

(продолжение листинга 2.6)

Как мы увидели, реализация в Mathcad разностных схем вполне

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

45

Page 46: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

2.4.2. Жесткие краевые задачи

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

полезным, связан с решением жестких краевых задач. В частности, рассматриваемая задача о встречных световых пучках становится жесткой при увеличении коэффициента ослабления а(х) в несколько десятков раз. Например, при попытке решить ее при a(x):=100 с помощью листинга 2.2 вместо ответа выдается сообщение об ошибке «Can't converge to a solution. Encountered too many integration steps» (He сходится к решению. Слишком много шагов интегрирования). Это и неудивительно, поскольку жесткие системы характерны тем, что требуют исключительно малого значения шага в стандартных алгоритмах.

Для жестких задач неприменимы и явные разностные схемы, о которых рассказывалось в предыдущем разделе (см. разд. 2.3.1). Результат расчетов по программе листинга 2.6, например с а(х):=20 (рис. 2.9), дает характерную для неустойчивых разностных схем «разболтку» – колебания нарастающей амплитуды, не имеющие ничего общего с реальным решением.

Рис. 2.9. Неверное решение жесткой краевой задачи

по неустойчивой явной разностной схеме

 

46

Page 47: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

i 1 ii 1 i 1 i 1 i 1

Y Ya(x ) Y r(x ) y ;

Δ

(2.7)

i 1 ii 1 i 1 i 1 i 1

y ya(x ) y r(x ) Y .

Δ

Граничные условия, конечно, можно оставить в том же виде (2.5). Поскольку мы имеем дело с линейными дифференциальными уравнениями, то и схему (2.7) легко будет записать в виде матричного равенства (2.6), пе-регруппировывая соответствующим образом выражения (2.7) и приводя подобные слагаемые. Разумеется, полученная матрица A будет иной, нежели матрица A для явной схемы (2.4). Поэтому и решение (реализация неявной схемы) может отличаться от изображенного на рис. 2.9 результата расчетов по явной схеме. Программа, составленная для решения системы (2.7), приведена в листинге 2.7. Листинг 2.7. Реализация неявной разностной схемы для жесткой краевой задачи

41NN

0i

N,N2N,N1,0

1Ni,i1i,ii,i

1i,i1Ni,ii,i

10165.1U025.0U

)B,A(lsolve:U

)N2,1,1N2,0,A(submatrix:A

0I:B0:B

1N2..1:i

R:A1:A1:A

)i(r:A)i(a1:A10:A

1N2..1N:i

1)i(a:A)i(r:A10:A

1N..1:i1N

1:20:N

1:R100:0I01.0:)x(r20:)x(a

 

47

Page 48: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

He будем специально останавливаться на обсуждении листинга 2.7, поскольку он почти в точности повторяет предыдущий листинг. Отличие заключается лишь в формировании матрицы A другим способом, согласно неявной схеме. Решение, показанное на рис. 2.10, демонстрирует, что произошло «небольшое чудо»: «разболтка» исчезла, а распределение интенсивностей стало физически предсказуемым.

Рис. 2.10. Решение краевой задачи по неявной разностной схеме

(продолжение листинга 2.7)

Обратите внимание, что (из-за взятого нами слишком большого

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

48

Page 49: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

3.1. «Метод интегрирования»

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

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

( ) ( )y F x f x dx c – первообразная для функции ( ).f x Если искомая (неизвестная) функция зависит от одной переменной, то ДУ называют обыкновенным (ОДУ). Если искомая функция зависит от нескольких переменных, то будем иметь ДУ в частных производных, но в этом пособии такие уравнения не рассматриваются.

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

05 yyy – обыкновенное дифференциальное уравнение третьего порядка.

Обыкновенным дифференциальным уравнением (ОДУ) первого порядка называется уравнение

0 )y,y,x(F , где x – независимая переменная, )x(y – неизвестная функция. В форме, разрешенной относительно производной, уравнение первого порядка записывается так:

)y,x(fy . Если пользоваться другим обозначением производной, то можно

записать

( , ).dy

f x ydx

Общим  решением ДУ первого порядка называется функция )c,x(y , содержащая одну произвольную постоянную и удовлетворяющая условиям:

– функция )c,x( является решением ДУ при любом фиксированном значении c ;

– каким бы ни было начальное условие 00 y)x(y , можно найти такое значение постоянной 0cc , что функция )c;x(y 0 будет удовлетворять данному начальному условию.

49

Page 50: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Частным решением ДУ первого порядка называется любая функция )c;x(y 0 , полученная из общего решения )c,x(y при конкретном

значении постоянной 0cc . С геометрической точки зрения общее решение )c,x(y задает семейство интегральных кривых на плоскости ;Oxy

частное решение )c;x(y 0 определяет одну кривую из этого семейства, проходящую через точку )y,x( 00 .

Теперь перейдем к методам решения дифференциальных уравнений в системе Mathcad.

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

Рассмотрим в подтверждение этому несколько простых примеров. Решить дифференциальное уравнение:

.)ey(1

ey

x

x

Здесь и далее будет подразумеваться, что y есть функция от

переменной x , т. е. )x(y – искомая функция. Для начала решим это дифференциальное уравнение «методом

интегрирования» (по терминологии [3]). Так как это уравнение с разделяющимися переменными, запишем его в виде

.(1 )

x

x

dy e

dx y e

 Переносим функцию y из знаменателя правой части в числитель

левой части и дифференциал dx переносим в правую часть:

.1 (1 )

x

x

ydy edx

y e

Таким образом, здесь имеют место два интеграла, которые необходимо найти:

Первый интеграл: 1 .1

ydyI

Второй интеграл: 2 .(1 )

x

x

eI dx

y e

50

Page 51: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

В системе Mathcad это может выглядеть следующим образом:

0

2

0

: ( )(1 )

1( ) : 1( ) ln( 1) ln 2(1 )

2( ) : 2( )2

2 ln( 1) ln 22( ) 1( ) ,

2 ln( 1) ln 2

0( ) : 2 ln( 1) ln 2 0(0) 0

x

x

x xx

x

y

x

x

x

d eДифференциальное уравнение y x

dx y e

eI x dx I x e

e

yI y ydy I y

eI y I x solve y

e

y x e y

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

методом интегрирования

Как видно из последней строки, которая приведена в примере, график

функции y0(x) проходит через начало координат. Убедиться в этом можно, построив график функции:

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

51

Page 52: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

3.2. Задача Коши

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

Решить дифференциальное уравнение )e(y

ey x

x

1 со следующим

начальным условием: 10 )(y . Далее разберем метод решения дифференциального уравнения с

начальным условием (задачи Коши).

12ln2)1eln(2:)x(y

12ln2)1eln(2

12ln2)1eln(2y,solveC)y,x(0I

5.0C)1,0(0I:C

2ln)1eln(2

y)x(1I)y(2I:)y,x(0I

2

y)y(2Iydy:)y(2I

2ln)1eln()x(1Idx)e1(

e:)x(1I

1)0(y:условиеНачальное

)e1(y

e)x(y

dx

d:уравнениеальноеДифференци

x

x

x

x2

2y

0

xx

0x

x

x

x

Рис. 3.3. Решение дифференциального уравнения с задачей Коши

52

Page 53: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Данный метод решения дифференциальных уравнений в системе Mathcad называется методом непосредственного интегрирования [3]. Этот метод хорош тем, что пользователь может непосредственно отслеживать любой этап решения уравнения и исправлять возможные ошибки. Однако к его недостаткам относится достаточно большая громоздкость в вычисле- ниях – необходимо вводить много переменных, вычислять большое количество интегралов. Поэтому в системе Mathcad введена функция odesolve(x,b, [число шагов]), которая возвращает решение дифференциального уравнения в блоке Given при заданных начальных условиях и в конце интервала интегрирования b.

Эта функция имеет ряд особенностей. Если указан параметр число_шагов, то решение выполняется с фиксированным шагом, иначе – адаптивным методом. Однако одним большим недостатком данной функции является то, что аналитическое значение результирующей функции не выводится, что является неприемлемым для ее дальнейшего использования.

Рассмотрим ниже пример решения задачи Коши для дифференциального

уравнения )e(y

ey x

x

1, 10 )(y при помощи функции odesolve.

10..05.0,0:x

)100,10,x(odesolve:y

1)0(y

)e1()x(y

e)x(y

dx

d

Given

x

x

Рис. 3.4. Решение дифференциального уравнения при помощи оператора odesolve

53

Page 54: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

Далее приведем пример.

)x(ydx

d:)x(z

10..05.0,0:x

)100,10,x(odesolve:y

1)0(y

)e1()x(y

e)x(y

dx

d

Given

x

x

Рис. 3.5. Пример применения функции Odesolve

Обратите внимание, в первом примере для того, чтобы получить

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

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

Разберем еще один пример решения дифференциального уравнения этого типа – уравнение с разделяющимися переменными.

Решить уравнение 0312 2 dyydx)x( ;

начальное условие 12 )(y .

54

Page 55: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

22( 1) 3 ;x dx y dy C 2 3( 1) .x y C

Соотношение Cy)x( 321 – общее решение (общий интеграл)

уравнения. Для того, чтобы найти частное решение, удовлетворяющее начальному условию, надо подставить в общее решение значения 0x и 0y , и

найти значение постоянной С : С)( 32 112 2С . Получим решение

поставленной задачи: 21 32 y)x( . Если явно (в виде )x(fy ) выразить

функцию, то получим: 23 2 ( 1) .y x

Рис. 3.6. Решение дифференциального уравнения методом интегрирования (начало)

55

Page 56: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

методом интегрирования (окончание)

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

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

56

Page 57: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

10..01.010,10:x

)1000,10,x(Odesolve:y

1)2(y

0)x(ydx

d)x(y3)1x(2

Given

2

Рис. 3.7. Решение дифференциального уравнения при помощи оператора odesolve

3.3. Уравнения с разделяющимися переменными

В общем случае уравнения с разделяющимися переменными имеют вид: )y(g)x(fy

или 02211 dy)y(g)x(fdx)y(g)x(f

Эти уравнения легко сводятся к уравнению с разделенными переменными:

– записываем уравнение )y(g)x(fy в форме )y(g)x(fdx

dy ,

затем делим на )y(g и умножаем на dx: dx)x(f)y(g

dy ;

– уравнение 02211 dy)y(g)x(fdx)y(g)x(f делим на 2 1( ) ( ) :f x g y

01

2

2

1 )y(g

dy)y(g

)x(f

dx)x(f.

Получены уравнения с разделенными переменными. Интегрируя, получим

общие решения: ( )( )

dyf x dx C

g y и С

)y(g

dy)y(g

)x(f

dx)x(f

1

2

2

1

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

• если функция )y(g имеет действительные корни 1 2 3, , , ,y y y то функ-ции 1 2 3, , , ,y y y y y y очевидно, являются решениями исходного уравнения;

57

Page 58: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

• если функция )x(f2 имеет действительные корни 1 2 3, , , ,x x x функ-ция )y(g1 имеет действительные корни 1 2 3, , , ,y y y то функции

,xx,xx,xx 321 , ,yy,yy,yy 321 являются решениями исходного уравнения. Приведем пример.

Решить ДУ: )y(xy 1 . Приводим данное уравнение к уравнению с разделенными переменными:

)y(xy 1 )y(xdx

dy1 xdx

y

dy

1

xdx

y

dy

1

2

ln 1 .2

xy C

При такой форме записи общего интеграла решение 1y потеряно. Приведем решение к явной форме:

Cx

y 2

1ln2

C

x

ey

2

2

1 2

21 1.

x

y C e

Разберем этот пример в системе Mathcad.

2

: ( 1)

( 1) ( 1)1

1( ) : 1( )2

12( ) : 2( ) ln( 1)

1

0( , ) : 2( ) 1( ) ln( 1)

Дифференциальное уравнение y x y

Приводим данное уравнение к виду уравнения с

разделенными переменными

dy dyy x y x y xdx

dx y

xI x xdx I x

I y dy I y yy

I x y I y I x y

2

2

2

2

0( , ) , 1x

C

x

I x y C solve y e

4:3C2:2C0:1C

1C2

xexp:)C,x(y

2

Рис. 3.8. Решение дифференциального уравнения с разделяющимися переменными (начало)

58

Page 59: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Рис. 3.8. Решение дифференциального уравнения с разделяющимися переменными (окончание)

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

2 2

2 22 2

2

2

:

( ) ( )

: (2) 5

( 1) ( 1)1 1

ln( 1)1( ) : 1( )

1 2

2( ) :

Дифференциальное уравнение

xy x dx yx y dy

Начальное условие y

Приводим данное уравнение к виду уравнения с

разделенными переменными

xdx ydyx y dx y x dy

x y

x xI x dx I x

x

I y

2

2

2 2

ln( 1)2( )

1 2

ln( 1) ln( 1)0( , ) : 1( ) 2( )

2 2: 0(2,5)

y ydy I y

y

x yI x y I x I y

C I

Рис. 3.9. Решение дифференциального уравнения с разделяющимися переменными (начало)

59

Page 60: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

7x8:)x(y

7x8

7x8y,solveC)y,x(0I

2

2

2

Рис. 3.9. Решение дифференциального уравнения с разделяющимися переменными (окончание)

Внизу производится проверка правильности решения дифферен-

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

Рис. 3.10. График решения и его проверка с помощью функции simplify

3.4. Однородные дифференциальные уравнения

Перейдем к решению однородных дифференциальных уравнений. Так называются уравнения первого порядка следующего вида:

x

yfy .

60

Page 61: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Это уравнение сводится к уравнению с разделяющимися переменными

относительно новой неизвестной функции )x(u заменой )x(ux

)x(y или

)x(ux)x(y . Подставляя в уравнение )x(ux)x(y , )x(ux)x(uy ,

получим ))x(u(f)x(ux)x(u или u)u(fdx

dux (это уравнение с

разделяющимися переменными). Разберем пример. Решить ДУ: y

x

x

yy .

Это уравнение однородное, вводим новую переменную x

yu . Получаем:

,y ux ,y u u x 1

,u u x uu

1

,du

xdx u

,dx

udux

,dx

udux

2ln

2

2 Cx

u , Cu xln22 , C

x

y xln2

2

2

.

Общее решение уравнения )C(xy xln222 . В системе Mathcad этот пример может быть решен следующим образом.

5:2C3:1C0:0C

)xln(Cx2:)C,x(y

)xln(Cx2

)xln(Cx2y,solveC)y,x(0I

)xln(x2

y:)y,x(0I

)xln(2

u)x(2I)u(1I:)u,x(0I

)xln()x(2Idxx

1:)x(2I

2

u)u(1Iudu:)u(1I

x

dxudu

u

1

dx

dux

u

1xu

u

1uxuu

xuuyxuy:Получаемx

yu:переменнуюновуюВводим

y

x

x

yy:ДУРешить

2

2

2

2

Рис. 3.11. Решение однородного дифференциального уравнения (начало)

61

Page 62: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Рис. 3.11. Решение однородного дифференциального уравнения (окончание)

Рассмотрим еще один пример. Решить ДУ: 02 22 dyxdx)xyy( . Здесь коэффициенты при дифференциалах – однородные функции второй степени, т. е. уравнение однородное. Делаем стандартную замену переменной: uxy , xduudxdy . Подставляем в уравнение:

02 2222 )xduudx(xdx)uxxu( . Делим правую часть на 2x (не забывая о потерянном решении 0x ).

022 xduudxudxdxu , 02 xdudx)uu( ,

x

dx

uu

du

2.

Интегрируем правую и левую части:

CCdu

uu)u(u

du

uu

du

1-u

uln1-ulnuln

1

11

12 ,

Cx

dxxln .

Получаем:

C xln1-u

uln ,

xCxeu

u C11

.

Возвращаемся к исходной переменной: x

yu .

62

Page 63: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

11 1

21

11

xC

xCyxC

xy

yxC

xy

x

y

.

Это и есть общее решение. Этот же пример может быть решен в системе Mathcad следующим образом.

0simplify1x

x2

)1x(

xx

1x

x2

)1x(

x

1x

x2

)1x(

xx

1x

x2

)1x(

x)0C,x(y

dx

dx)x)0C,x(y2)0C,x(y(

1:0C1xC

xC:)C,x(y

xCxy

yxC

1x

yxy

x

yuxe

1u

u

:переменнойисходнойксяВозвращаем

)xln()1uln()uln()x(2I)u(1I:)u,x(0I

)xln()x(2Idxx

1:)x(2I

)1uln()uln()u(1Iduuu

1:)u(1I

x

dx

uu

du0xdudx)uu(:xнаДелим

0)udxxdu(xdx)ux2xu(:Получаем

2

22

3

2

4

2

22

3

2

422

2

11C

2

222

2222

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

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

63

Page 64: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

3.5. Линейные дифференциальные уравнения с постоянными коэффициентами

Рассмотрим теперь линейные дифференциальные уравнения II порядка с

постоянными коэффициентами: )x(fqypy ,

где p и q – числа, )x(f – функция, зависящая только от x . Если 0f(x) , то такое уравнение называется однородным. Решение однородного уравнения сводится к решению

характеристического уравнения: 02 qpkk .

Это обычное квадратное уравнение. Возможны следующие варианты: 1) Уравнение имеет два действительных корня; 2) Уравнение имеет один действительный корень; 3) Уравнение не имеет действительных корней (имеет два комплексных). Рассмотрим каждый из этих случаев отдельно.

1) Характеристическое уравнение имеет два различных действительных корня 1k и 2k

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

1 21 2( ) .k x k xy x C e C e

Заметим, что в общее решение уравнения второго порядка входят две произвольные константы, которые находятся из начальных условий (условий Коши): 00 y)x(y , 10 y)x(y . Удовлетворяя этим условиям, получим систему для определения 1C и 2C :

.yekCekC

,yeCeCxkxk

xkxk

12211

021

0201

0201

Приведем примеры: 1) Найти общее решение уравнения

5 6 0.y y y Решение. Запишем характеристическое уравнение:

2 5 6 0.k k

Решаем его:

2

3

2

2425521,k .

Зная корни характеристического уравнения, записываем общее решение дифференциального уравнения:

3 21 2( ) .x xy x C e C e

64

Page 65: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

В системе Mathcad это решение может выглядеть следующим образом

065

:уравнениетическоехарактерисСоставим

0y6y5y

:уравнениярешениеобщееНайти

2

x3x2

xx

21

1,221,11

2

e2Ce1C)2C,1C,x(y

e2Ce1C:)2C,1C,x(y

32

::

3

2solve65:

1:ORIGIN

:уравнениятическогохарактерискорниНаходим

21

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

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

0:C0:C

0)2C,1C,x(y6)2C,1C,x(y5)2C,1C,x(y

e2C9e1C4)2C,1C,x(y

)2C,1C,x(ydx

d:)2C,1C,x(y

e2C3e1C2)2C,1C,x(y

)2C,1C,x(ydx

d:)2C,1C,x(y

:решенияпроверкуСделаем

x3x2

2

2

x3x2

Рис. 3.14. Решение однородного дифференциального уравнения 2 порядка (начало)

65

Page 66: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Рис. 3.14. Решение однородного дифференциального уравнения 2 порядка (окончание)

2) Найти частное решение уравнения

3 4 0,y y y

удовлетворяющее начальным условиям: 00 )(y , 50 )(y .

Решение:

0432 kk ,

4

1

2

169321,k

xx eCeC)x(y 4

21 – общее решение

xx eCeC)x(y 421 4

Для нахождения частного решения удовлетворяем начальным условиям:

.CC)(y

,CC)(y

540

00

21

21

Решая систему, получаем 11 С , 12 С . Тогда частное решение имеет вид: xx ee)x(y 4 .

66

Page 67: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Решим эту задачу Коши в системе Mathcad.

5)2C,1C,0(y

0)2C,1C,0(y

Given

)2C,1C,x(ydx

d:)2C,1C,x(y

e1Ce2C)2C,1C,x(y

e2Ce1C:)2C,1C,x(y

41

::

4

1solve43:

1:ORIGIN

:уравнениятическогохарактерискорниНаходим

043

:уравнениетическоехарактерисСоставим

5)0(y0)0(y:условияНачальные

0y4y3y

:уравнениярешениеобщееНайти

xx4

xx

21

1,221,11

2

2

21

0)x(y4)x(y3)x(y

e16e)x(y)x(ydx

d:)x(y

ee4)x(y)x(ydx

d:)x(y

:решенияпроверкуСделаем

ee)x(y

)C,C,x(y:)x(y

1

1)2C,1C(Find:C

x4x2

2

xx4

x4x

1,21,1

Рис. 3.15. Решение однородного дифференциального уравнения 2 порядка (начало)

67

Page 68: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

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

2 порядка (окончание)

2) Характеристическое уравнение имеет один действительный корень k(кратности 2)

В этом случае общее решение записывается следующим образом: kxkx ekCeC)x(y 21 .

Частное решение по начальным условиям находится аналогично предыдущему случаю. Пример:

Найти частное решение уравнения 044 yyy ,

удовлетворяющее начальным условиям: 20 )(y , 10 )(y . Решение. Записываем характеристическое уравнение

0442 kk . Уравнение имеет единственный корень 2k . Тогда общее решение имеет вид:

xx xeCeC)x(y 22

21

, xxx xeCeCeC)x(y 2

22

22

1 22 . Находим частное решение, удовлетворяя начальным условиям:

12

2

21

1

CC

,С32 21 C,C .

Частное решение: xx xee)x(y 22 32 .

68

Page 69: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

В системе Mathcad эту задачу можно решить следующим образом.

x2x2

x2x2

1,21,1

x2x2

xx

21

1,221,11

2

2

ex6e)x(y)x(ydx

d:)x(y

:решенияпроверкуСделаем

ex3e2)x(y

)C,C,x(y:)x(y

3

2)2C,1C(Find:C

1)2C,1C,0(y

2)2C,1C,0(y

Given

)2C,1C,x(ydx

d:)2C,1C,x(y

ex2Ce1C)2C,1C,x(y

e2Ce1C:)2C,1C,x(y

22

::

2

2solve44:

1:ORIGIN

:уравнениятическогохарактерискорниНаходим

044

:уравнениетическоехарактерисСоставим

1)0(y2)0(y:условияНачальные

0y4y4y

:уравнениярешениеобщееНайти

21

0)x(y4)x(y4)x(y

e4ex12)x(y)x(ydx

d:)x(y x2x2

2

2

Рис. 3.16. Решение однородного дифференциального уравнения 2 порядка с одним действительным корнем (начало)

69

Page 70: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

Рис. 3.16. Решение однородного дифференциального

уравнения 2 порядка с одним действительным корнем (окончание)

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

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

3) Характеристическое уравнение не имеет действительных корней

(имеет два комплексных сопряженных корня i ) Общее решение уравнения в данном случае:

xcosCxsinCe)x(y x 21 .

Пример: Найти общее решение уравнения:

2 2 0 y y y . Решение: Записываем характеристическое уравнение и находим его решения:

0122 2 kk ,

ii

k , 2

1

2

1

4

22

4

84221

.

Следовательно, общее решение уравнения имеет вид:

22 212

1x

cosCx

sinCe)x(yx

.

Рассмотрим этот пример в системе Mathcad.

70

Page 71: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

  

0simplify)2C,1C,x(y)2C,1C,x(y2)2C,1C,x(y2

)2C,1C,x(ydx

d:)2C,1C,x(y

)2C,1C,x(ydx

d:)2C,1C,x(y

:решенияпроверкуСделаем

2

xcos2C

2

xsin1Ce)2C,1C,x(y

))xcos(2C)xsin(1C(e:)2C,1C,x(y

2

1:

2

1:

i5.05.0i5.05.0

::

i2

1

2

1

i2

1

2

1

solve122:

1:ORIGIN

:уравнениятическогохарактерискорниНаходим

0122

:уравнениетическоехарактерисСоставим

0yy2y2

:уравнениярешениеобщееНайти

2

2

2

x

x

21

1,221,11

2

2

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

71

Page 72: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

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

В этом разделе представлены примеры решения в Mathcad дифферен-

циальных уравнений из сборника заданий по высшей математике Кузнецова Л. А.: дифференциальные уравнения с разделяющимися переменными, одно-родные дифференциальные уравнения первого порядка, дифференциальные уравнения первого порядка, сводящиеся к однородным, линейные дифферен-циальные уравнения первого порядка, уравнения Бернулли, линейные диф-ференциальные уравнения с постоянными коэффициентами. Задача 1. Найти общий интеграл дифференциального уравнения. (Ответ представьте в виде Cyx =),(ψ ). Вариант 31. dxxyydyxydyxdx 22 53320 −=− . Решение. Введем функцию:

dxyx5dyyx3dyy3dxx20:dy)dx,y,F(x, 22 ⋅⋅⋅+⋅⋅⋅−⋅⋅−⋅⋅= . Приведем подобные слагаемые относительно dx и dy с помощью встроенной функции Collect:

dyy)3-xy(-3dxx)20yx(5dydx,collect,dy)dx,y,F(x, 22 ⋅⋅⋅⋅+⋅⋅+⋅⋅→ . Выделим коэффициенты при dx и dy с помощью встроенной функции Coeffs:

⋅+⋅⋅⋅⋅−⋅⋅⋅

→=x20yx5

ydy3xydy3-dxcoeffs,dy)dx,y,F(x,:A 2

2

,

⋅−⋅⋅⋅⋅+⋅⋅⋅

→=y3xy3-

xdx20yxdx5dycoeffs,dy)dx,y,F(x,:B 2

2

.

Разложим коэффициенты при dx и dy на множители с помощью встроенной функции Factor:

4)(yx5factorA:y)M(x, 21 +⋅⋅→= ,

1)(xy3-factorB:y)N(x, 21 +⋅⋅→= .

Перенесем члены с dx и dy в разные части равенства. Исходное уравнение примет вид:

1)(xydy34)(yxdx5y)dy-N(x,y)dxM(x, 22 +⋅⋅⋅=+⋅⋅⋅→= . Данное уравнение является уравнением с разделяющимися переменными, поскольку представимо в виде:

dy)y(2N)x(1Ndx)y(2M)x(1M = . Разложим функции y)M(x, на M1(x) и M2(y), а y)N(x, на N1(x) и N2(y):

x5:M1(x) ⋅= , 4y:M2(y) 2 += , 1x:N1(x) 2 += , y3:N2(y) ⋅= .

72

Page 73: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Разделим переменные:

4yydy3

1xxdx5dy

M2(y)N2(y)dx

N1(x)M1(x)

22 +⋅⋅

=+

⋅⋅→= .

Проинтегрируем каждую часть равенства:

∫+⋅

→=2

1)ln(x5dxN1(x)M1(x):I1(x)

2

,

∫+⋅

→=2

4)ln(y3dyM2(y)N2(y):I2(y)

2

.

Введем функцию:

24)ln(y3

21)ln(x5I2(y)-I1(x):y)I0(x,

22 +⋅−

+⋅→= .

Проверим решение на предмет потери части решений. Для этого решим два уравнения 0N1(x) = и 0M2(y) = :

i-i

solveN1(x) ,

2i-2i

solveM2(y) .

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

С2

4)ln(y32

1)ln(x5Сy)I0(x,22

=+⋅

−+⋅

→= .

Задача 2. Найти общий интеграл дифференциального уравнения. (Ответ представьте в виде Cyx =),(ψ ).

Вариант 31. xyx

yxyxy62

522

22

−−+

=′ .

Решение. Данное уравнение является однородным дифференциальным уравнением. Введем функцию:

y(x)x6x2y(x)5y(x)x2xy:)yy,F(x, 2

22

⋅⋅−⋅⋅−⋅⋅+

−′=′ .

Сделаем замену: xu(x):y(x) ⋅= ⇒ u(x)dxdxu(x)y(x)

dxd:y ⋅+→=′ . Тогда:

0u(x)x6x2

xu(x)x5u(x)x2-u(x)dxdxu(x)0)yy,F(x, 22

2222

=⋅⋅−⋅

+⋅⋅−⋅⋅⋅+→=′ .

73

Page 74: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

После подстановки: dxduu(x)

dxd

= , uu(x) = с помощью функции substitute и

упрощения выражения встроенной функции simplify получаем:

0.)udx3dx(2

xdu2dxuxdu6udx

simplify

uu(x),dxduu(x)

dxd,substitute

0u(x)x6x2

xu(x)x5u(x)x2-u(x)dxdxu(x)

2

22

2222

=⋅⋅−⋅

⋅⋅−+⋅⋅⋅+⋅−→==

=⋅⋅−⋅

+⋅⋅−⋅⋅⋅+

Введем функцию:

u(x)x6x2xu(x)x5u(x)x2-u(x)

dxdxu(x))yy,F(x,:du)dx,u,G(x, 22

2222

⋅⋅−⋅+⋅⋅−⋅⋅

⋅+→′=

dxxdu

2u61u

simplify

uu(x),dxduu(x)

dxd,substitute 2 ⋅

+−⋅+

→==.

Умножим данную функцию на dx и пере обозначим: 2dx u 6 du x u dx-2 du xG(x,u,dx,du) : G(x,u,dx,du) dx simplify .

6 u-2⋅ + ⋅ ⋅ ⋅ + ⋅ ⋅

= ⋅ →⋅

Выделим коэффициенты при dx и dy с помощью встроенной функции Coeffs:

⋅+

⋅⋅⋅

−⋅

⋅⋅⋅

→=

2-u6u

2-u61

2-u6xdu2

2-u6xudu6

dxcoeffs,du)dx,u,G(x,:A 2 ,

⋅⋅

−⋅

⋅⋅⋅

⋅+

⋅→=

2-u6x2

2-u6xu6

2-u6udx

2-u6dx

ducoeffs,du)dx,u,G(x,:B

2

.

Разложим коэффициенты при dx и du на множители с помощью встроенной функции Factor:

1)u(321ufactorA:M1(u)

2

1 −⋅⋅+

→= ,

xfactorB:M2(x) 1 →= . Исходное уравнение примет вид:

0M2(x)duM1(u)dx =+ . Данное уравнение является уравнением с разделяющимися переменными. Разделим переменные:

duM1(u)

1dxM2(x)

1=− .

74

Page 75: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Проинтегрируем каждую часть равенства:

∫ ⋅−+⋅→= atan(u)2)1uln(3duM1(u)

1:I1(u) 2 ,

∫ −→−= ln(x)dxM2(x)

1:I2(x) .

Введем функцию: ln(x)atan(u)2)1uln(3I2(x)I1(u):u)I0(x, 2 +⋅−+⋅→−= .

Сделаем обратную замену:

ln(x)xy1atan2

xy1xln3

simplifyxy1u,substituteu)I0(x,:y1)I0(x, 2

22

+

⋅−

+⋅→== .

Ответ записываем в форме:

Сln(x)xy1atan2

xy1xln3Сy)I0(x,:C)y,G(x, 2

22

=+

⋅−

+⋅→== .

Задача 3. Найти общий интеграл дифференциального уравнения.

Вариант 31. 42

2−+

+=′

yxyy .

Решение. Это дифференциальное уравнение, приводящееся к однородному. Введем функцию:

4yx22yy:)yy,F(x,

−+⋅+

−′=′ .

Сделаем замену: α+= u:y , β+= vx : . Тогда:

042vu2

2udvdu0)yy,F(x, =

−++α+β++α

−→=′ .

Найдем α и β . Для этого решим систему уравнений с помощью блока Given-Find: Given

04202

=−α+β=+α ,

( )

−→βα=

βα

32

,Find: .

Введем дополнительную функцию:

4v2u22u

dvdu

dvduy,x,F:dv)du,v,G(u,

−⋅++α+β⋅++α

−→

= .

Введем новую переменную: tv:u ⋅= , dtvtdv:du ⋅+⋅= . Имеем:

( )dv

vdt2tttsimplify)dv,du,v,u(G:dv,dt,v,tG

2 ⋅+

++

→= .

75

Page 76: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Умножим данную функцию на dv и переобозначим:

vdttdvdv2t

dv2simplify dvdv)dt,v,G(t,:dv)dt,v,G(t, ⋅+⋅+−+⋅

→⋅= .

Выделим коэффициенты при dt и dv с помощью встроенной функции Coeffs:

⋅+−+⋅

→=v

tdvdv2t

dv2dtcoeffs,dv)dt,v,G(t,:A ,

++

⋅→= 1

2t2t

vdtdvcoeffs,dv)dt,v,G(t,:B .

Разложим коэффициенты при dt и dv на множители с помощью встроенной функции Factor:

vfactorA:M1(v) 1 −→−= ,

2t1)(ttfactorB:M2(t) 1 +

+⋅→= .

Исходное уравнение примет вид: M2(t)dvM1(v)dt = .

Данное уравнение является уравнением с разделяющимися переменными. Разделим переменные:

dvM1(v)

1dtM2(t)

1= .

Проинтегрируем каждую часть равенства:

∫ −→= )vln(dvM1(v)

1:I1(v) ,

∫ +⋅→= 1)ln(t-ln(t)2dtM2(t)

1:I2(t) .

Введем функцию: ln(v)(t)ln2)1tln(I2(t)I1(v):v)I0(t, −⋅−+→−= .

Сделаем обратную замену:

+

⋅−−−

+

→β−=βα

==

3-x2yln2)3xln(

3-x1-yxln

xv,-x-yt,substitutev)I0(t,:y)I0(x,

.

Ответ записываем в форме:

С3-x2yln2)3xln(

3-x1-yxlnСy)I0(x,:C)y,G(x, =

+

⋅−−−

+

→== .

76

Page 77: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Задача 4. Найти решение задачи Коши.

Вариант 31. 2x2

xyy =−′ , 11 =)(y .

Решение. Это уравнение относится к классу линейных ДУ первого порядка. Введем функцию:

2x2

x)x(yy:)y,y,x(F +−′=′ .

Сделаем замену: )x(v)x(u:)x(y ⋅= .

)x(v)x(udxd)x(v

dxd)x(u)x(y

dxd:y ⋅+⋅→=′ .

Тогда уравнение примет вид:

0x

)x(v)x(u)x(v)x(udxd)x(v

dxd)x(u

x20)y,y,x(F 2 =

⋅−⋅+⋅+→=′ .

После подстановки и упрощения уравнение принимает вид:

simplify,substitute

0x

)x(v)x(u)x(v)x(udxd)x(v

dxd)x(u

x20)y,y,x(F 2 =

⋅−⋅+⋅+→=′

→==== v)x(v,dxdv)x(v

dxd,u)x(u,

dxdu)x(u

dxd

0xdx

xvudxxvduxudvdx22

22

=⋅

⋅⋅⋅−⋅⋅+⋅⋅+.

Введем вспомогательную функцию:

x)x(v)x(u)x(v)x(u

dxd)x(v

dxd)x(u

x2)y,y,x(F:)du,dx,u,x(G 2

⋅−⋅+⋅+→′=

→====

simplify

v)x(v,dxdv)x(v

dxd,u)x(u,

dxdu)x(u

dxd,substitute

2x2xvu

dxvduudv −⋅⋅

−⋅+⋅

.

Упростим и соберем слагаемые с u:

vduxdx2u

xvdxdv

ucollect,simplify

dx)du,dx,u,x(G:)du,dx,u,x(G 2 ⋅+⋅

+⋅

−→⋅= .

Соберем коэффициенты при степенях u в матрицу A:

⋅−

⋅+⋅

→=

xvdxdv

vduxdx2

u,coeffs)du,dx,u,x(G:A2

.

Разложим на множители:

xvdxdv

simplifyfactor

A:)dv,dx,x,v(1M 1⋅

−→= .

77

Page 78: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Выделим коэффициенты при dx и dv:

−→=

xv

dvdx,coeffs)dv,dx,x,v(1M:)v,x(1N .

⋅−→=

1x

vdxdv,coeffs)dv,dx,x,v(1M:)v,x(2N .

Уравнение принимает вид:

dvx

vdxdv)v,x(2Ndx)v,x(1N 11 =⋅

→=− .

Разделим переменные: dv)v(2N)x(1Ndx)v(2M)x(1M = .

x1:)x(1M = , v:)v(2M = , 1:)x(1N = , 1:)v(2N = .

vdv

xdxdv

)v(2M)v(2Ndx

)x(1N)x(1M

=→= .

Интегрируем:

∫ →= )xln(dx)x(1N)x(1M:)x(1I , ∫ →= )vln(dv

)v(2M)v(2N:)v(2I .

Введем функцию: )vln()xln()v(2I)x(1I)v,x(0I −→−= .

Найдем функцию v(x): xv,solve)v,x(0I:)x(v →= .

Введем функцию:

2

2

0 xdx2xvdufactorA:)v,u,x(2M ⋅+⋅⋅

→= .

Выделим коэффициенты при du и dx:

⋅→=

xxdx2

du,coeffs))x(v,u,x(2M:)u,x(1G 2 .

⋅→=

2x2

xdudx,coeffs))x(v,u,x(2M:)u,x(2G .

После подстановки v(x) уравнение принимает вид:

211 xdx2xdudx)u,x(2Gd)u,x(1G ⋅

−=⋅→−= .

dx)u(22G)x(21Gdu)u(12G)x(11G = .

x:)x(11G = , 1:)u(12G = , 2x2:)x(21G −= , 1:)u(22G = .

78

Page 79: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Разделяем переменные:

duxdx2du

)u(22G)u(12Gdx

)x(11G)x(21G

3 =⋅

−→= .

Интегрируем и получаем:

2x1dx

)x(11G)x(21G:)x(11I →= ∫ , ∫ →= udu

)u(22G)u(12G:)u(22I .

ux1)u(22I)x(11I:)u,x(00I 2 −→−= .

Находим функцию u(x):

2x1Cu,solveС)u,x(00I:)x(u +→+= .

Тогда решение уравнения имеет вид: )x(v)x(u:)C,x(y ⋅= .

+⋅→ 2x

1Cx)C,x(y .

Удовлетворим начальному условию и найдем константу C: Given

1)C,1(y = 0)C(Find:h →=

Ответ принимает вид:

x1hC,substitute)C,x(y:)x(y →== .

Задача 5. Решить задачу Коши. Вариант 31. 0)1(y,0dy))y(cos2)y2sin(x2(dx 2 =−=−++ . Решение. Это линейное уравнение первого порядка относительно переменной x. Введем функцию:

( )2)ycos(2)y2sin()y(x2x:)x,y,x(F −++′=′ . Сделаем замену:

)y(v)y(u:)y(x ⋅= .

)y(v)y(udyd)y(v

dyd)y(u)y(x

dyd:x ⋅+⋅→=′ .

Тогда уравнение примет вид:

0)y(v)y(udyd)y(v

dyd)y(u)y(v)y(u2)ycos(2)y2sin(0)x,y,x(F 2 =⋅+⋅+⋅⋅+⋅−→=′

79

Page 80: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

После замены переменных и упрощения получим уравнение:

→====

=′simplify

v)y(v,dydv)y(v

dyd,u)y(u,

dydu)y(u

dyd,substitute

0)x,y,x(F

( ) 0dy

vudy2vduudv1)ysin(dy2)y2sin(dy 2

=⋅⋅+⋅+⋅+−+⋅ .

Введем вспомогательную функцию: +⋅⋅+⋅−→′= )y(v)y(u2)ycos(2)y2sin()x,y,x(F:)du,dy,u,y(G 2

)y(v)y(udyd)y(v

dyd)y(u ⋅+⋅+ .

→====

=simplify

v)y(v,dydv)y(v

dyd,u)y(u,

dydu)y(u

dyd,substitute

)du,dy,u,y(G:)du,dy,u,y(G

dyvdu

dyudvuv2)ycos(2)y2sin( 2 ⋅

+⋅

++− .

Упростим и сгруппируем слагаемые по переменной u:

( ) −⋅+⋅⋅+→⋅= 2)ysin(dy2uvdy2dvu,collect

simplifydy)du,dy,u,y(G:)du,dy,u,y(G

vdu)y2sin(dydy2 ⋅+⋅+− . Соберем коэффициенты при степенях u в матрицу A:

⋅+⋅+−⋅⋅+⋅

→=vdy2dv

vdudy2)ysin()ycos(dy2)ysin(dy2u,coeffs)du,dy,u,y(G:A2

.

Разложим на множители:

vdy2dvsimplifyfactor

A:)dv,dy,y,v(1M 1 ⋅+→= .

Выделим коэффициенты при dx и dv:

→=

v2dv

dy,coeffs)dv,dy,y,v(1M:)v,y(1N .

⋅→=

1vdy2

dv,coeffs)dv,dy,y,v(1M:)v,y(2N .

Уравнение принимает вид: dvvdy2dv)v,y(2Ndy)v,y(1N 11 =⋅−→=− .

Разделим переменные: dv)v(2N)y(1Ndy)v(2M)y(1M = .

2:)y(1M −= , v:)v(2M = , 1:)y(1N = , 1:)v(2N = .

vdvdy2dv

)v(2M)v(2Ndy

)y(1N)y(1M

=−→= .

80

Page 81: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Интегрируем:

∫ −→= y2dy)y(1N)y(1M:)y(1I , ∫ →= )vln(dv

)v(2M)v(2N:)v(2I .

Введем функцию: )vln(y2)v(2I)y(1I:)v,y(0I −−→−= .

Найдем функцию v(x): y2ev,solve)v,y(0I:)y(v −→= .

Введем функцию: vdudy2)ysin()ycos(dy2)ysin(dy2factorA:)v,u,y(2M 2

0 ⋅+−⋅⋅+⋅→= . Выделим коэффициенты при du и dx:

−⋅⋅+⋅→=

− y2

2

edy2)ysin()ycos(dy2)ysin(dy2du,coeffs))y(v,u,y(2M:)u,y(1G .

−⋅+⋅⋅

→=−

2)ysin()ycos(2)ysin(2edudy,coeffs))y(v,u,y(2M:)u,y(2G 2

y2

.

После подстановки v(x) уравнение принимает вид: ( )2)ysin()ycos(2)ysin(2dyedudy)u,y(2Gdu)u,y(1G 2y2

11 −⋅+⋅−=⋅→−= − . dy)u(22G)y(21Gdu)u(12G)y(11G = .

Разделяем переменные: y2e:)y(11G −= , 1:)u(12G = , 2)ysin()ycos(2)ysin(2:)y(21G 2 −⋅+= , 1:)u(22G =

( ) du2)ysin()ycos(2)ysin(2edydu)u(22G)u(12Gdy

)y(11G)y(21G 2y2 =−⋅+⋅⋅→= .

Интегрируем и получаем: ( )

∫+⋅

−→=2

1)y2cos(edy)y(11G)y(21G:)y(11I

y2

, ∫ →= udu)u(22G)u(12G:)u(22I .

( )2

1)y2cos(eu)u(22I)y(11I:)u,y(00Iy2 +⋅

−−→−= .

Находим функцию u(x): ( )

21)y2cos(eCu,solveC)u,y(00I:)y(u

y2 +⋅−→+= .

Тогда решение уравнения имеет вид: )y(v)y(u:)C,y(x ⋅= .

( )

+⋅−⋅→ −

21)y2cos(eCe)C,y(x

y2y2 .

Удовлетворим начальному условию и найдем константу C: Given

1)С,0(x −= 0)C(Find:h →=

81

Page 82: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Ответ принимает вид:

21

2)y2cos(hC,substitute)C,y(x:)y(x −−→== .

Задача 6. Найти решение задачи Коши. Вариант 31. 2xyyyx =+′ , 1)1(y = . Решение. Это уравнение Бернулли. Введем функцию:

2)x(yx)x(yyx:)y,y,x(F ⋅−+′⋅=′ . Сделаем замену:

)x(v)x(u:)x(y ⋅= .

)x(v)x(udxd)x(v

dxd)x(u)x(y

dxd:y ⋅+⋅→=′ .

Тогда уравнение примет вид:

0)x(v)x(ux)x(v)x(u)x(v)x(udxd)x(v

xd)x(ux0)y,y,x(F 22 =⋅⋅−⋅+

⋅+⋅⋅→=′

После подстановки и упрощения уравнение принимает вид:

→=====′simplify

v)x(v,dxdv)x(v

dxd,u)x(u,

dxdu)x(u

dxd,substitute0)y,y,x(F

0dx

xvdudx

xudvxvuvu 22 =⋅⋅

+⋅⋅

+⋅⋅−⋅ .

Введем вспомогательную функцию:

+

⋅+⋅⋅→′= )x(v)x(u

dxd)x(v

xd)x(ux)y,y,x(F:)du,dx,u,x(G

22 )x(v)x(ux)x(v)x(u ⋅⋅−⋅+ .

→==

==

=

simplify

v)x(v,dxdv)x(v

dxd

,u)x(u,dxdu)x(u

dxd,substitute

)du,dx,u,x(G:)du,dx,u,x(G

xvuvudx

xvduxudv 22 ⋅⋅−⋅+⋅⋅+⋅⋅ .

Упростим и соберем слагаемые с u:

→⋅=u,collect

simplifydx)du,dx,u,x(G:)du,dx,u,x(G

( ) ( ) xvduuxdvvdxuxvdx 22 ⋅⋅+⋅⋅+⋅+⋅⋅⋅− .

Соберем коэффициенты при степенях u в матрицу A:

⋅⋅−⋅+⋅

⋅⋅→=

xvdxxdvvdx

xvduu,coeffs)du,dx,u,x(G:A

2.

82

Page 83: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Разложим на множители:

xdvvdxsimplifyfactor

A:)dv,dx,x,v(1M 1 ⋅+⋅→= .

Выделим коэффициенты при dx и dv:

⋅→=

vxdv

dx,coeffs)dv,dx,x,v(1M:)v,x(1N .

⋅→=

xvdx

dv,coeffs)dv,dx,x,v(1M:)v,x(2N .

Уравнение принимает вид: xdvvdxdv)v,x(2Ndx)v,x(1N 11 ⋅=⋅−→=− .

Разделим переменные: dv)v(2N)x(1Ndx)v(2M)x(1M = .

1:)x(1M −= , v:)v(2M = , x:)x(1N = , 1:)v(2N = .

vdv

xdxdv

)v(2M)v(2Ndx

)x(1N)x(1M

=−→= .

Интегрируем:

)xln(dx)x(1N)x(1M:)x(1I −→= ∫ , ∫ →= )vln(dv

)v(2M)v(2N:)v(2I .

Введем функцию: )xln()vln()v(2I)x(1I:)v,x(0I −−→−= .

Найдем функцию v(x):

x1v,solve)v,x(0I:)x(v →= .

Введем функцию: ( )vudxduxvfactoruAA:)v,u,x(2M 22

20 ⋅⋅−⋅⋅→⋅+= . Выделим коэффициенты при du и dx:

⋅−→=

1x

udxdu,coeffs))x(v,u,x(2M:)u,x(1G

2

.

−→=

xu

dudx,coeffs))x(v,u,x(2M:)u,x(2G 2 .

После подстановки v(x) уравнение принимает вид:

xudxdudx)u,x(2Gdu)u,x(1G

2

11⋅

=→−= .

dx)u(22G)x(21Gdu)u(12G)x(11G = .

1:)x(11G = , 1:)u(12G = ,x1:)x(21G = , 2u:)u(22G = .

83

Page 84: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Разделяем переменные:

2udu

xdxdu

)u(22G)u(12Gdx

)x(11G)x(21G

=→= .

Интегрируем и получаем:

u1)xln()u(22I)x(11I:)u,x(00I +→−= .

Находим функцию u(x):

)xln(C1u,solveC)u,x(00I:)x(u

+−→+= .

Тогда решение уравнения имеет вид: )x(v)x(u:)C,x(y ⋅= .

( ))xln(Cx1)C,x(y+⋅

−→ .

Удовлетворим начальному условию и найдем константу C: Given

1)С,1(y = 1)C(Find:h −→=

Ответ принимает вид:

( )1)xln(x1hC,substitute)C,x(y:)x(y

−⋅−→== .

Задача 7. Найти общее решение дифференциального уравнения.

Вариант 31. 0)yx(

)ydxxdy(ydyxdx22 =

+−++ .

Решение. Это уравнение в полных дифференциалах. Введем функцию:

22 yx)ydxxdy(ydyxdx:)dy,dx,y,x(F

+−++

= .

Сгруппируем слагаемые с dx и dy с помощью встроенной функции:

dyyxyxdx

yxyxdy,dx,collect)dy,dx,y,x(F 2222 +

++

+−

→ .

dyyxyxdx

yxyxdy,dx,collect)dy,dx,y,x(F:)dy,dx,y,x(G 2222 +

++

+−

→= .

Выделим коэффициенты при dx и dy:

+−

+

+⋅

++⋅

→=

2222

2222

yxy

yxx

yxydy

yxxdy

dx,coeffs)dy,dx,y,x(F:A .

84

Page 85: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

++

+

+⋅

−+⋅

→=

2222

2222

yxy

yxx

yxydx

yxxdx

dy,coeffs)dy,dx,y,x(F:B .

Проверим условия Коши-Римана:

222

22

1 )yx(yyx2xsimplifyA

y:)y,x(C

+−⋅⋅+

−→∂∂

= .

222

22

1 )yx(yyx2xsimplifyB

x:)y,x(D

+−⋅⋅+

−→∂∂

= .

)0,A),y,x(D)y,x(C(if:)y,x(1I 1== . Интегрируем по x коэффициент при dx и произвольную константу берем в виде функции )y(ϕ :

2)yxln(

yxtana)y()y(dx)y,x(1I:),y,x(I

22 ++

−ϕ→ϕ+=ϕ ∫ .

Дифференцируем по y:

22 yxyx)y(

dydsimplify),y,x(I

dyd:)y,x(L

++

+ϕ→ϕ= .

)y(dydsimplifyB)y,x(L:M 1 ϕ→−= .

Находим функцию )y(ϕ :

0)y(dyd0M =ϕ→= .

∫ −ϕ→−= c)y(cMdy:H .

ct,solve

t)y(,substituteH:k →

=ϕ= .

ck:)y( →=ϕ . Переобозначаем константы:

c1c:C += . Тогда общий интеграл имеет вид:

( ) 1cc2

yxlnyxtanacC),y,x(I:J

22

+=+

+

−→=ϕ= .

Находим константу 1с : ( )

+→=

yxtana

2yxln1c,solveJ:JJ

22

.

Ответ записываем в виде: ( ) c

yxtana

2yxlncJJ

22

=

+→= .

85

Page 86: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Задача 8. Найти общее решение дифференциального уравнения. Вариант 31. 5x2x6y6y5y 2 −+=′+′′−′′′ . Решение. Это неоднородное уравнение третьего порядка с постоянными коэффициентами. Введем функции:

y6y5y:)y,y,y,y,y(F ′+′′−′′′=′′′′′′′′′′ , 5x2x6:)x(f 2 −+= .

Правая часть уравнения относится к виду: xrn e)x(P ⋅⋅ .

В нашем случае: 0:r = . Уравнение имеет вид: 5x2x6yy5y6)x(f)y,y,y,y,y(F 2 −+=′′′+′′−′→=′′′′′′′′′′ .

Составим характеристическое уравнение: 0650),,λλ,,λλ(F 234320 =λ+λ−λ→=λ .

Решение найдем с помощью встроенной функции Solve:

→=λ=λ

320

solve0),,λλ,,λλ(F: 4320 .

C помощью следующих циклов подсчитаем количество корней характеристического уравнения (переменная m) и количество совпадений среди корней с r в правой части уравнения (переменная k):

3m1h

1hherroron1a

1awhile0a0h:m

h

→−

+←λ←

≠←←=

1kk

rif1kk1m..0ifor

0k:k

i

=λ+←−∈

←=

86

Page 87: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Подсчитаем кратность каждого корня (матрица K):

K1kii

1llA

1kK1k

if11k1k1m..0jfor

01k1k1miwhile

0l:K

11k1

1

ij

+←+←λ←

λ=λ+←−∈

←←−≤

←=

111

K

Корни характеристического уравнения запишем в виде матрицы A:

A1kii

1llA

1kif11k1k

1m..0jfor01k1k

1miwhile0l:A

i1

ij

+←+←λ←

λ=λ+←−∈

←←−≤

←=

320

A

87

Page 88: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Введем вспомогательную переменную h:

3h1h

1hhKerroron1a

1awhile0a0h:h

h

→−

+←←

≠←←=

Введем функцию I(x,c) – составляющие решения однородного уравнения в виде матрицы:

I1jpp

sIs

excss1K..0jfor

0ss

h..1ifor0p:)c,x(I

1i

xAj1pj

1i1i

++←←

⋅+←−∈

←←

∈←=

⋅++

−−

⋅⋅→

3x3

2x2

1

cece

c)c,x(I

Запишем решение однородного уравнения в виде функции y1(x,c):

s)c,x(Iss

h..1ifor0s:)c,x(1y

1i−+←∈

←=

13x3

2x2 ccece)c,x(1y +⋅+⋅→ ⋅⋅

Выделим коэффициенты многочлена из правой части в матрицу R:

−→=

625

xcoeffs,f(x):R

88

Page 89: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Введем вспомогательную переменную t:

3t

1h1hh

Rerroron1a1awhile

0a0h:t

h

−+←

←≠

←←=

Частное решение неоднородного уравнения будем искать в виде функции Q(x,b):

k

ii

xa

xbaa

1t..0ifor0a:)b,x(Q

⋅+←

−∈←=

( )012

2 bxbxbx)b,x(Q +⋅+⋅⋅→ )b,x(Q:)b,x(y =

Подставим функцию Q(x,b) в уравнение и соберем коэффициенты при x в функцию z:

)x(fb)y(x,dxdb),y(x,

dxdb),y(x,

dxdb),y(x,

dxdb),y(x,F:b)F(x, 4

4

3

3

2

2

=

( ) ( )5b6b10b6

x2b30b12x6b18x,collect)b,x(F

210

212

2

+⋅+⋅−⋅++⋅−⋅−⋅+⋅−⋅→

−⋅−⋅−⋅

+⋅+⋅−⋅→=

6b182b30b12

5b6b10b6x,coeffs)b,x(F:)b(z

2

21

210

b0b

1t..0ifor:a

i ←

−∈=

000

a

−⋅−⋅−⋅

+⋅+⋅−⋅→

6c182c30c12

5c6c10c6)c(z

2

21

210

89

Page 90: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Найдем коэффициенты функции Q(x,b):

→== 000

311

21c,c,c,c,c,c,solvea)c(z:Z 543210

TZ:b =

Тогда частное решение примет вид: )b,x(Q:)x(Q =

++⋅→

21x

3xx)x(Q

2

Решение дифференциального уравнения запишем как сумму общего решения однородного уравнения y1(x,c) и частного решения неоднородного уравнения Q(x):

)x(Q)c,x(1y:)c,x(y +=

1

2

3x3

2x2 c

21x

3xxcece)c,x(y +

++⋅+⋅+⋅→ ⋅⋅

Задача 9. Найти общее решение дифференциального уравнения. Вариант 31. x2e)14x20(y6yy +=′−′′+′′′ . Решение. Это неоднородное уравнение третьего порядка с постоянными коэффициентами. Введем функции:

y6yy:)y,y,y,y(F ′−′′+′′′=′′′′′′ , x2e)14x20(:)x(f ⋅+= . Правая часть уравнения относится к виду: xr

n e)x(P ⋅⋅ . В нашем случае: 2:r = . Уравнение имеет вид:

)14x20(eyy6y)x(f)y,y,y,y(F x2 +=′′′+′−′′→=′′′′′′ . Составим характеристическое уравнение:

060),λλ,,λλ(F 23320 =λ−λ+λ→= . Решение найдем с помощью встроенной функции Solve:

−→==λ

320

solve0),λλ,,λλ(F: 320 .

90

Page 91: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

C помощью следующих циклов подсчитаем количество корней характе-ристического уравнения (переменная m) и количество совпадений среди корней с r в правой части уравнения (переменная k):

3m1h

1hherroron1a

1awhile0a0h:m

h

→−

+←λ←

≠←←=

1kk

rif1kk1m..0ifor

0k:k

i

=λ+←−∈

←=

Подсчитаем кратность каждого корня (матрица K):

K1kii

1llA

1kK1k

if11k1k1m..0jfor

01k1k1miwhile

0l:K

11k1

1

ij

+←+←λ←

λ=λ+←−∈

←←−≤

←=

111

K

91

Page 92: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Корни характеристического уравнения запишем в виде матрицы A:

A1kii

1llA

1kif11k1k

1m..0jfor01k1k

1miwhile0l:A

i1

ij

+←+←λ←

λ=λ+←−∈

←←−≤

←=

−→

320

A

Введем вспомогательную переменную h:

3h1h

1hhKerroron1a

1awhile0a0h:h

h

→−

+←←

≠←←=

Введем функцию I(x,c) – составляющие решения однородного уравнения в виде матрицы:

I1jpp

sIs

excss1K..0jfor

0ss

h..1ifor0p:)c,x(I

1i

xAj1pj

1i1i

++←←

⋅+←−∈

←←

∈←=

⋅++

−−

⋅⋅→

⋅−

3x3

2x2

1

cece

c)c,x(I

92

Page 93: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Запишем решение однородного уравнения в виде функции y1(x,c):

s)c,x(Iss

h..1ifor0s:)c,x(1y

1i−+←∈

←=

13x3

2x2 ccece)c,x(1y +⋅+⋅→ ⋅−⋅

Выделим коэффициенты многочлена из правой части в матрицу R:

⋅⋅

→=⋅

x2

x2

e20e14xcoeffs,f(x):R

Введем вспомогательную переменную t:

2)x(t

1h1hh

)x(Rerroron1a1awhile

0a0h:)x(t

h

−+←

←≠

←←=

Частное решение неоднородного уравнения будем искать в виде функции Q(x,b):

xrk

ii

exa

xbaa

1)x(t..0ifor0a:)b,x(Q

⋅⋅⋅

⋅+←

−∈←=

( )01x2 bbxex)b,x(Q +⋅⋅⋅→ ⋅

)b,x(Q:)b,x(y = Подставим функцию Q(x,b) в уравнение и соберем коэффициенты при x в функцию z:

)x(fb)y(x,dxdb),y(x,

dxdb),y(x,

dxdb),y(x,F:b)F(x, 3

3

2

2

=

( ) 1

x2x20

x2x21

x2 be14e14be10xe20be20x,collect)b,x(F ⋅⋅+⋅−⋅⋅+⋅⋅−⋅⋅→ ⋅⋅⋅⋅⋅

⋅−⋅⋅⋅⋅+⋅−⋅⋅

→=⋅⋅

⋅⋅⋅

x21

x21

x2x20

x2

e20be20be14e14be10x,coeffs)b,x(F:)b,x(z

93

Page 94: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

b0b

1)x(t..0ifor:)x(a

i ←

−∈=

00

)x(a

Найдем коэффициенты функции Q(x,b): ( )000010b,b,b,b,b,b,solve)x(a)b,x(z:Z 543210 →==

TZ:b = Тогда частное решение примет вид:

)b,x(Q:)x(Q = x22 ex)x(Q ⋅⋅→

Решение дифференциального уравнения запишем как сумму общего решения однородного уравнения y1(x,c) и частного решения неоднородного уравнения Q(x):

)x(Q)c,x(1y:)c,x(y +=

1x22

3x3

2x2 cexcece)c,x(y +⋅+⋅+⋅→ ⋅⋅−⋅

Задача 10. Найти общее решение дифференциального уравнения. Вариант 31. x6siney4y4y x2=+′−′′ . Решение. Это неоднородное уравнение второго порядка с постоянными коэффициентами. Введем функции:

y4y4y:)y,y,y(F +′−′′=′′′ , x2e))x6(sin(:)x(f ⋅= . Правая часть уравнения относится к виду: xe))xcos()x(S)xsin()x(P( ⋅α⋅β+β и соответствует i62:r += . Уравнение имеет вид:

)x6sin(ey4y4y)x(f)y,y,y(F x2=+′−′′→=′′′ . Составим характеристическое уравнение:

0440)λ,,λλ(F 220 =+λ−λ→= . Решение найдем с помощью встроенной функции Solve:

→==λ

22

solve0)λ,,λλ(F: 20 .

C помощью следующих циклов подсчитаем количество корней характе-ристического уравнения (переменная m) и количество совпадений среди корней с r в правой части уравнения (переменная k):

2m1h

1hherroron1a

1awhile0a0h:m

h

→−

+←λ←

≠←←=

0kk

rif1kk1m..0ifor

0k:k

i

=λ+←−∈

←=

94

Page 95: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Подсчитаем кратность каждого корня (матрица K):

K1kii

1llA

1kK1k

if11k1k1m..0jfor

01k1k1miwhile

0l:K

11k1

1

ij

+←+←λ←

λ=λ+←−∈

←←−≤

←=

( )2K →

Корни характеристического уравнения запишем в виде матрицы A:

A1kii

1llA

1kif11k1k

1m..0jfor01k1k

1miwhile0l:A

i1

ij

+←+←λ←

λ=λ+←−∈

←←−≤

←=

( )2A → Введем вспомогательную переменную h:

1)x(h1h

1hh)c,x(Ierroron1a

1awhile0a0h:)x(h

h

→−

+←←

≠←←=

95

Page 96: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Введем функцию I(x,c) – составляющие решения однородного уравнения в виде матрицы:

( )2x2

1x2 cexce)c,x(I ⋅⋅+⋅→ ⋅⋅

Запишем решение однородного уравнения в виде функции y1(x,c):

s)c,x(Iss

)x(h..1ifor0s:)c,x(1y

1i−+←∈

←=

2x2

1x2 cexce)c,x(1y ⋅⋅+⋅→ ⋅⋅

Выделим коэффициенты многочлена из правой части в матрицу R:

( )( )x2ex6sinsimplify

xcoeffs,f(x):R ⋅⋅⋅→=

Введем вспомогательную переменную t:

1)x(t

1h1hh

)x(Rerroron1a1awhile

0a0h:)x(t

h

−+←

←≠

←←=

I x c, ( ) p 0←

u 0←

i 1←

s s 0←

u 1←

s s xj eRe Ai 1−( ) x⋅

cj p+ 1+ cos Im Ai 1−( ) x⋅( )⋅ cj p+ 2+ sin Im Ai 1−( ) x⋅( )⋅+( )⋅+←

Im Ai 1−( ) 0≠( )if

s s cj p+ 1+ xj⋅ e

Ai 1− x⋅+← otherwise

j 0 Ki 1− 1−..∈for

s

Ii 1− s←

p p j+ 1+←

i i 1+←

i h≤( ) u 0( )∧[ ]while

I

:=

96

Page 97: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Частное решение неоднородного уравнения будем искать в виде функции Q(x,b):

( )( ) ( )( )( ) x)rRe(k

i1j

ii

exxrImcoscxrImsina

xbaa

1)x(t..0jforij

xbcc

1)x(t..0ifor0c0a:)b,x(Q

⋅⋅⋅⋅+⋅⋅

⋅+←

−∈←

⋅+←

−∈←←=

+

( )10x2 b)x6sin(b)x6cos(e)b,x(Q ⋅⋅+⋅⋅⋅→ ⋅

)b,x(Q:)b,x(y = Подставим функцию Q(x,b) в уравнение и соберем коэффициенты при x в функцию z:

)x(fb)y(x,dxdb),y(x,

dxdb),y(x,F:b)F(x, 2

2

=

( ) ( ) 0x2

1x2x2 be)x6cos(36)x6sin(be36ex)rIm(sin,collect)b,x(F ⋅⋅⋅⋅−⋅⋅⋅⋅−−→ ⋅⋅⋅

( )

+⋅⋅−⋅⋅⋅⋅−

→=⋅

)1b36(ebe)x6cos(36

simplifyx)rIm(sin,coeffs

)b,x(F:)b,x(z1

x20

x2

b0b

)x(t..0ifor:)x(a

i ←

∈=

00

)x(a

Найдем коэффициенты функции Q(x,b):

( )

+⋅⋅−⋅⋅⋅⋅−

→⋅

1c36ece)x6cos(36)c,x(z

1x2

0x2

−→== 0000

3610c,c,c,c,c,c,solve)x(a)b,x(z:Z 543210

TZ:b =

97

Page 98: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Тогда частное решение примет вид: )b,x(Q:)x(Q =

36e)x6sin()x(Q

x2⋅⋅⋅−→

Решение дифференциального уравнения запишем как сумму общего решения однородного уравнения y1(x,c) и частного решения неоднородного уравнения Q(x):

)x(Q)c,x(1y:)c,x(y +=

2x2

x2

1x2 cex

36e)x6sin(ce)c,x(y ⋅⋅+

⋅⋅−⋅→ ⋅

⋅⋅

Задача 11. Найти общее решение дифференциального уравнения. Вариант 31. x10e20)x10cos(10y100y +=′−′′′ . Решение. Это неоднородное ДУ с постоянными коэффициентами. Это неоднородное ДУ второго порядка с постоянными коэффициентами. Введем функции:

y100y:)y,y,y,y(F ′−′′′=′′′′′′ , )x10cos(100:)x(1f = , i10:1r = , x10e20:)x(2f = , 10:2r = .

Уравнение имеет вид: x10e20)x10cos(100y100y)x(2f)x(1f)y,y,y,y(F ⋅⋅+⋅⋅=′−′′′→+=′′′′′′ .

Составим характеристическое уравнение: 01000),λ,,λλ(F 3320 =λ⋅−λ→=λ .

Решение найдем с помощью встроенной функции Solve:

−→=λ=λ

10100

solve0),λ,,λλ(F: 320 .

C помощью следующих циклов подсчитаем количество корней характе-ристического уравнения (переменная m) и количество совпадений среди корней с r в правой части уравнения (переменная k):

3m1h

1hherroron1a

1awhile0a0h:m

h

→−

+←λ←

≠←←=

0kk

1rif1kk1m..0ifor

0k:k

i

=λ+←−∈

←=

12kk

2rif1kk1m..0ifor

0k:2k

i

=λ+←−∈

←=

98

Page 99: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Подсчитаем кратность каждого корня (матрица K):

K1kii

1llA

1kK1k

if11k1k1m..0jfor

01k1k1miwhile

0l:K

11k1

1

ij

+←+←λ←

λ=λ+←−∈

←←−≤

←=

111

K

Корни характеристического уравнения запишем в виде матрицы A:

A1kii

1llA

1kif11k1k

1m..0jfor01k1k

1miwhile0l:A

i1

ij

+←+←λ←

λ=λ+←−∈

←←−≤

←=

−→

10100

A

Введем вспомогательную переменную h:

3h1h

1hhKerroron1a

1awhile0a0h:h

h

→−

+←←

≠←←=

99

Page 100: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Введем функцию I(x,c) – составляющие решения однородного уравнения в виде матрицы:

⋅⋅→

⋅−

3x10

2x10

1

cece

c)c,x(I

Введем вспомогательную переменную h(x):

3)x(h1h

1hh)c,x(Ierroron1a

1awhile0a0h:)x(h

h

→−

+←←

≠←←=

Запишем решение однородного уравнения в виде функции y1(x,c):

s)c,x(Iss

)x(h..1ifor0s:)c,x(1y

1i−+←∈

←=

13x10

2x10 ccece)c,x(1y +⋅+⋅→ ⋅−⋅ .

I x c, ( ) p 0←

u 0←

i 1←

s s 0←

u 1←

s s xj eRe Ai 1−( ) x⋅

cj p+ 1+ cos Im Ai 1−( ) x⋅( )⋅ cj p+ 2+ sin Im Ai 1−( ) x⋅( )⋅+( )⋅+←

Im Ai 1−( ) 0≠( )if

s s cj p+ 1+ xj⋅ e

Ai 1− x⋅+← otherwise

j 0 Ki 1− 1−..∈for

s

Ii 1− s←

p p j+ 1+←

i i 1+←

i h≤( ) u 0( )∧[ ]while

I

:=

100

Page 101: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Выделим коэффициенты многочлена из правой части в матрицы:

( )( )x10cos100simplify

xcoeffs,f1(x):R(x) ⋅⋅→= ,

( )x10e20simplify

xcoeffs,f2(x):R1(x) ⋅⋅→= .

Введем вспомогательные переменные:

1)x(t

1h1hh

)x(Rerroron1a1awhile

0a0h:)x(t

h

−+←

←≠

←←=

1)x(1t

1h1hh

)x(1Rerroron1a1awhile

0a0h:)x(1t

h

−+←

←≠

←←=

Частное решение неоднородного уравнения будем искать в виде функций:

( )( ) ( )( )( ) x)1rRe(k

i1j

ii

exx1rImcoscx1rImsina

xbaa

1)x(t..0jforij

xbcc

1)x(t..0ifor0c0a:)b,x(Q

⋅⋅⋅⋅+⋅⋅

⋅+←

−∈←

⋅+←

−∈←←=

+

10 b)x10sin(b)x10cos()b,x(Q ⋅⋅+⋅⋅→ )b,x(Q:)b,x(y =

x2r2k

ii

exa

xbaa

1)x(1t..0ifor0a:)b,x(1Q

⋅⋅⋅

⋅+←

−∈←=

0x10 bex)b,x(1Q ⋅⋅→ ⋅

)b,x(1Q:)b,x(2y =

101

Page 102: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Подставим функции Q(x,b) и Q1(x,b) в уравнение и соберем коэффициенты при x в функции z(x,b) и z1(x,b):

)x(1fb)y(x,dxdb),y(x,

dxdb),y(x,

dxdb),y(x,F:b)F(x, 3

3

2

2

=

( ) −⋅⋅⋅→ )x10sin(b2000x)1rIm(sin,collect)b,x(F 0

( )1b)x10cos(2000)x10cos(100 ⋅⋅⋅+⋅⋅− .

( )

)x10sin()x(hhzz

otherwisexzz0)1rIm(ifx)1rIm(sinzz:)x(hh

⋅→

←≠←=

( ) ( )

⋅−⋅⋅⋅+⋅⋅

→=0

21

b20001)x5sin(21b20100

simplify)x(hh,coeffs

)b,x(F:)b,x(z .

)x(2fb)y(x,dxdb),y(x,

dxdb),y(x,

dxdb),y(x,F:b)F1(x, 3

3

2

2

=

x100

x10 e20be200x,collect)b,x(1F ⋅⋅ ⋅−⋅⋅→ . ( )x10

0x10 e20be200x,coeffs)b,x(1F:)b,x(1z ⋅⋅ ⋅−⋅⋅→= .

b0b

1k..0iforotherwise1)x(t1k

0)1rIm(if)x(t1k:)x(a

i ←

∈−←

≠←=

b

0b

1)x(1t..0ifor:)x(1a

i ←

−∈=

00

)x(a ( )0)x(1a →

Найдем коэффициенты функции Q(x,b): ( ) ( )

⋅−⋅⋅⋅+⋅

→0

21

c20001)x5sin(2100c2000

)c,x(z

Zotherwisec,c,c,c,c,c,solve)x(a)c,x(zZ

0)1rIm(if00002010

c,c,c,c,c,c,solve)x(a)c,x(zZ:Z

54321000

543210

→=←

→=←=

→== 00000101d,d,d,d,d,d,solve)x(1a)d,x(1z:1Z 54321000

−→ 0000

2010Z . TZ:b = , T1Z:1b = 102

Page 103: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Тогда компоненты частного решения примут вид: )b,x(Q:)x(Q = , )1b,x(1Q:)x(2Q = ;

20)x10sin()x(Q ⋅

−→ , 10ex)x(2Q

x10⋅⋅→ .

Решение дифференциального уравнения запишем как сумму общего решения однородного уравнения y1(x,c) и частного решения неоднородного уравнения Q(x)+Q2(x):

)x(2Q)x(Q)c,x(1y:)c,x(y ++= ;

13x10

2x10

x10

ccece20

)x10sin(10ex)c,x(y +⋅+⋅+

⋅−

⋅→ ⋅−⋅

.

Задача 12. Найти решение задачи Коши.

Вариант 31. xcos

1yy =+′′ , 1)0(y = , 0)0(y =′ .

Решение. Это неоднородное ДУ второго порядка с постоянными коэффициентами. Введем функции:

yy:)y,y,y(F +′′=′′′ , xcos

1:)x(f = , r=0, Y:=1, 0:Y =′ .

Уравнение имеет вид:

xcos1yy)x(f)y,y,y(F =+′′→=′′′ .

Составим характеристическое уравнение: 010)λ,,λλ(F 220 =+λ→= .

Решение найдем с помощью встроенной функции Solve:

→==λi

isolve0)λ,,λλ(F: 20 .

C помощью следующих циклов подсчитаем количество корней характеристического уравнения (переменная m) и количество совпадений среди корней с r в правой части уравнения (переменная k):

2m1h

1hherroron1a

1awhile0a0h:m

h

→−

+←λ←

≠←←=

0kk

rif1kk1m..0ifor

0k:k

i

=λ+←−∈

←=

103

Page 104: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Подсчитаем кратность каждого корня (матрица K):

K1kii

1llA

1kK1k

if11k1k1m..0jfor

01k1k1miwhile

0l:K

11k1

1

ij

+←+←λ←

λ=λ+←−∈

←←−≤

←=

11

K

Корни характеристического уравнения запишем в виде матрицы A:

A1kii

1llA

1kif11k1k

1m..0jfor01k1k

1miwhile0l:A

i1

ij

+←+←λ←

λ=λ+←−∈

←←−≤

←=

→i

iA

Введем вспомогательную переменную h:

2h1h

1hhKerroron1a

1awhile0a0h:h

h

→−

+←←

≠←←=

104

Page 105: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Введем функцию I(x,c) – составляющие решения однородного уравнения в виде матрицы:

( )21 c)xsin(c)xcos()c,x(I ⋅+⋅→ Введем вспомогательную переменную h(x):

1)x(h1h

1hh)c,x(Ierroron1a

1awhile0a0h:)x(h

h

→−

+←←

≠←←=

Запишем решение однородного уравнения в виде функции y1(x,c):

s)c,x(Iss

)x(h..1ifor0s:)c,x(1y

1i−+←∈

←=

21 c)xsin(c)xcos()c,x(1y ⋅+⋅→ . Выделим коэффициенты при 1с и 2с :

⋅→=

)xcos(c)xsin(

c,coeffs)с,x(1y:)c,x(1d 21 ,

I x c, ( ) p 0←

u 0←

i 1←

s s 0←

u 1←

s s xj eRe Ai 1−( ) x⋅

cj p+ 1+ cos Im Ai 1−( ) x⋅( )⋅ cj p+ 2+ sin Im Ai 1−( ) x⋅( )⋅+( )⋅+←

Im Ai 1−( ) 0≠( )if

s s cj p+ 1+ xj⋅ e

Ai 1− x⋅+← otherwise

j 0 Ki 1− 1−..∈for

s

Ii 1− s←

p p j+ 1+←

i i 1+←

i h≤( ) u 0( )∧[ ]while

I

:=

105

Page 106: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

⋅→=

)xsin(c)xcos(

c,coeffs)с,x(1y:)c,x(2d 12 .

Переобозначим: )xcos()c,x(1d:)x(1g →= ,

)xsin()c,x(2d:)x(2g →= . Введем вспомогательные функции:

)xsin(2L)xcos(1L)x(2g2L)x(1g1L:)2L,1L,x(11A ⋅+⋅→⋅+⋅= ,

)xsin(1L)xcos(2L)x(2gdxd2L)x(1g

dxd1L:)2L,1L,x(12A ⋅−⋅→

⋅+

⋅= .

Составим систему уравнений и найдем ее решение: Given

0)2L,1L,x(11A = , )x(f)2L,1L,x(12A = .

−→=

1)xtan(

simplify)2L,1L(Find:)x(H .

Проинтегрируем:

∫ +→+= ))xln(cos(1c1cdx)x(H:)2c,x(1P 0 ,

∫ +→+= x2c2cdx)x(H:)2c,x(2P 1 . Переобозначим:

)c,x(1y:)b,x(2y = , )1c,v(1Pc1 = , )2c,v(2Pc2 = ,

)c,x(1y:)с,x(y = , v:z = ,

)xsin(2c)xcos(1c)c,x(y ⋅+⋅→ . Удовлетворим начальным условиям: Given

.Y)c,z(ydxd

,Y)c,z(y

′=

=

→=

01

)2c,1c(Find:2c1c

=

2c1c0

:c .

)c,x(y:)c,x(1y = . )c,x(1y)c,x(2y:)c,x(y += .

Ответ запишем в виде: 21 c)xsin(c)xcos()xcos()c,x(y ⋅+⋅+→ .

106

Page 107: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

ЗАКЛЮЧЕНИЕ

В данном пособии рассмотрены динамические системы, в частности дифференциальные уравнения N-го порядка, системы N дифференциальных уравнений, жесткие системы ОДУ. В пособии также рассмотрено решение краевых задач, в том числе двухточечных краевых задач и краевых задач с условием во внутренней точке, представлены задачи на собственные значения для ОДУ. Приведены сведения о разностных схемах для ОДУ и жестких краевых задачах. Приведены примеры построения аналитических решений дифференциальных уравнений в Mathcad. Рассмотрены «метод интегрирования» (по терминологии из [3]) для уравнений с разделяющимися переменными, задача Коши, однородные дифференциальные уравнения первого порядка, линейные дифференциальные уравнения с постоянными коэффициентами. Приведены также аналитические решения некоторых классов дифференциальных уравнений в Mathcad. Представлены примеры решения в Mathcad дифференциальных уравнений из сборника заданий по высшей математике Кузнецова Л.А.: дифференциальные уравнения с разде-ляющимися переменными, однородные дифференциальные уравнения пер-вого порядка, дифференциальные уравнения первого порядка, сводящиеся к однородным, линейные дифференциальные уравнения первого порядка, уравнения Бернулли, линейные дифференциальные уравнения с посто-янными коэффициентами.

107

Page 108: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Кузнецов, Л. А. Сборник заданий по высшей математике. Типовые расчеты : учеб. пособие для вузов / Л. А. Кузнецов. – 10-е изд., стер. – Санкт-Петербург : Лань, 2008. – 239 с.

2. Кирьянов, Д. В. Mathcad 14 / Д. В. Кирьянов. – Санкт-Петербург : БХВ-Петербург, 2007. – 704 с.

3. Денисов-Винский, Н. Д. Mathcad при решении задач по курсу Матема-тика. II курс / Н. Д. Денисов-Винский. – Москва : МИЭЭ, 2009. – 132 с.

4. Эдвардс, Ч. Г. Дифференциальные уравнения и краевые задачи: модели-рование и вычисление с помощью Mathematica, Maple и MATLAB / Ч. Г. Эдвардс, Д. Э. Пенни. – Москва : Вильямс, 2008. – 1104 с.

5. Тихонов, А. Н. Дифференциальные уравнения / А. Н. Тихонов, А. Б. Васильева, А. Г. Свешников. – Москва : Наука. Физматлит, 1998. – 232 с.

6. Вельмисов, П. А. Дифференциальные уравнения : учеб. пособие / Вельмисов П. А., Покладова Ю. В., Распутько Т. Б.; Ульян. гос. техн. ун-т. – Ульяновск : УлГТУ, 2013. – 90 с.

108

Page 109: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Оглавление Введение……………………………………………………………………. 3 Раздел 1. Обыкновенные дифференциальные уравнения: динамические системы…………………………………………………... 4

1.1. О постановке задач………………………………………………… 4 1.1.1. Задачи Коши для ОДУ……………………………………….. 1.1.2. Фазовый портрет динамической системы…………………...

4 7

1.2. Дифференциальное уравнение N-го порядка………………….… 9 1.3. Система N дифференциальных уравнений……………………..... 11

1.3.1. Решение одного уравнения (N = 1)…………………………. 1.3.2. Решение систем ОДУ в одной заданной точке……………... 1.3.3. О численных методах…………………………………………

14 16 17

1.4. Жесткие системы ОДУ…………………………………………….. 1.5. Новые возможности Mathcad 14…………………………………..

1.5.1. Новые алгоритмы решения жестких и нежестких ОДУ…… 1.5.2. Решение линейных ОДУ……………………………………...

22 26 26 28

Раздел 2. Обыкновенные дифференциальные уравнения: краевые задачи………………………..……………………………………………... 30

2.1. О постановке задач………………………………….……………... 30 2.2. Решение краевых задач средствами Mathcad…………………….

2.2.1. Алгоритм стрельбы…………………………………………… 2.2.2. Двухточечные краевые задачи………………………………. 2.2.3. Краевые задачи с условием во внутренней точке…………..

32 32 34 37

2.3. Задачи на собственные значения для ОДУ………………..……... 40 2.4. Разностные схемы для ОДУ……………………………………….

2.4.1. О разностном методе…………………………………………. 2.4.2. Жесткие краевые задачи………………………………………

43 43 46

Раздел 3. Примеры построения аналитических решений дифференциальных уравнений в Mathcad……………………………. 49

3.1. «Метод интегрирования»……......………………………………… 49 3.2. Задача Коши…………………………………………………...…… 52 3.3. Уравнения с разделяющимися переменными……………………. 57 3.4. Однородные дифференциальные уравнения……………………... 60 3.5. Линейные дифференциальные уравнения ……………………….. 64

Раздел 4. Аналитические решения некоторых классов дифференциальных уравнений в Mathcad……………………………. 72 Заключение………………………………………………………………… 107 Библиографический список……………………………………………... 108

109

Page 110: ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCADvenec.ulstu.ru › lib › disk › 2016 › 206.pdf · система уравнений), содержащее производную

Учебное электронное издание

ВЕЛЬМИСОВ Петр Александрович

КИРЕЕВ Сергей Владимирович

ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В MATHCAD

Учебное пособие

ЭИ № 785. Объем данных 4,39 Мб.

Технический редактор Ю. С. Лесняк.

ЛР № 020640 от 22.10.97. Печатное издание

Подписано в печать 30.11.2016. Формат 60×84/16. Усл. п. л. 6,51. Тираж 100 экз. Заказ № 1001.

Ульяновский государственный технический университет

432027, г. Ульяновск, ул. Северный Венец, 32. ИПК «Венец» УлГТУ, 432027, г. Ульяновск, ул. Северный Венец, 32.

Тел.: (8422) 778-113 E-mail: [email protected]

http://www.venec.ulstu.ru