42478

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

Лабораторная работа

Информатика, кибернетика и программирование

Аналитическое решение дифференциальных уравнений. Численное решение дифференциальных уравнений. Аналитическое решение дифференциальных уравнений Общее решение дифференциальных уравнений. Параметры могут указывать метод решения задачи например по умолчанию ищется аналитическое решение: type=exct.

Русский

2013-10-29

184 KB

10 чел.

VI. Дифференциальные уравнения.

  1.  Аналитическое решение дифференциальных уравнений.
  2.  Численное решение дифференциальных уравнений.

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

 Общее решение дифференциальных уравнений.

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

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

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

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

Задание 1.1.

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

> restart;

> de:=diff(y(x),x)+y(x)*cos(x)=sin(x)*cos(x);

de:=

> dsolve(de,y(x));

1

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

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

  1.  Найти общее решение дифференциального уравнения второго порядка y''2y'+y=sinx+ex.

> restart;

> deq:=diff(y(x),x$2)-2*diff(y(x),x)+y(x)

=sin(x)+exp(-x);

deq:=

> dsolve(deq,y(x));

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

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

> restart; de:=diff(y(x),x$2)+k^2*y(x)=sin(q*x);

dsolve(de,y(x));

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

>  q:=k: dsolve(de,y(x));

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

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

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

Задание 1.2.

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

> de:=diff(y(x),x$4)+2*diff(y(x),x$2)+y(x)=0;

de:=

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

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

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

Задание 1.3.

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

> de:=diff(y(x),x$4)+diff(y(x),x$2)=2*cos(x);

> cond:=y(0)=-2, D(y)(0)=1, (D@@2)(y)(0)=0,

(D@@3)(y)(0)=0;

cond:=y(0)=2, D(y)(0)=1, (D(2))(y)(0)=0, (D(3))(y)(0)=0

> dsolve({de,cond},y(x));

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

2. Найти решение краевой задачи: , , . Построить график решения.

> restart; de:=diff(y(x),x$2)+y(x)=2*x-Pi;

de:=

> cond:=y(0)=0,y(Pi/2)=0;

 

> dsolve({de,cond},y(x));

y(x)=2x+cos(x)

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

> y1:=rhs(%):plot(y1,x=-10..20,thickness=2);

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

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

Задание 1.4.

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

> sys:=diff(x(t),t)=-4*x(t)-2*y(t)+2/(exp(t)-1),

diff(y(t),t)=6*x(t)+3*y(t)-3/(exp(t)-1):

> dsolve({sys},{x(t),y(t)});

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

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

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

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

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

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

Задание 1.5.

1. Найти решение задачи Коши: ,  в виде степенного ряда с точностью до 5-го порядка.

> restart; Order:=5:

> dsolve({diff(y(x),x)=y(x)+x*exp(y(x)),

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

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

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

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

y(x)^3=exp(-x)*cos(x):

> f:=dsolve(de,y(x),series);

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

> y(0):=1: D(y)(0):=0:f;

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

> restart; Order:=6:

> de:=diff(y(x),x$3)-diff(y(x),x)=

3*(2-x^2)*sin(x);

de:=

> cond:=y(0)=1, D(y)(0)=1, (D@@2)(y)(0)=1;

cond:=y(0)=1, D(y)(0)=1, D(2)(y)(0)=1

> dsolve({de,cond},y(x));

y(x)=

> y1:=rhs(%):

> dsolve({de,cond},y(x), series);

y(x)=

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

> convert(%,polynom): y2:=rhs(%):

> p1:=plot(y1,x=-3..3,thickness=2,color=black):

> p2:=plot(y2,x=-3..3, linestyle=3,thickness=2,

color=blue):

> with(plots): display(p1,p2);

  

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

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

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

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

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

Задание 2.1.

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

Сначала найдем численное решение задачи Коши и построим его график.

> restart; Ordev=6:

> eq:=diff(y(x),x$2)-x*sin(y(x))=sin(2*x):

> cond:=y(0)=0, D(y)(0)=1:

> de:=dsolve({eq,cond},y(x),numeric);

de:=proc(rkf45_x)...end

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

> de(0.5);

> with(plots):

> odeplot(de,[x,y(x)],-10..10,thickness=2);

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

> dsolve({eq, cond}, y(x), series);

> convert(%, polynom):p:=rhs(%):

> p1:=odeplot(de,[x,y(x)],-2..3, thickness=2,

color=black):

> p2:=plot(p,x=-2..3,thickness=2,linestyle=3,

color=blue):

> display(p1,p2);

Наилучшее приближение решения степенным рядом достигается примерно на интервале 1<x<1 (так же как и в примере 3 задания 1.5).

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

х'(t)=2y(t)sin(t)х(t)t,

y'(t)=x(t),

х(0)=1, y(0)=2.

> restart; cond:=x(0)=1,y(0)=2:

> sys:=diff(x(t),t)=2*y(t)*sin(t)-x(t)-t,

diff(y(t),t)=x(t):

> F:=dsolve({sys,cond},[x(t),y(t)],numeric):

> with(plots):

> p1:=odeplot(F,[t,x(t)],-3..7, color=black,

thickness=2,linestyle=3):

> p2:=odeplot(F,[t,y(t)],-3..7,color=green,

thickness=2):

> p3:=textplot([3.5,8,"x(t)"], font=[TIMES,

ITALIC, 12]):

> p4:=textplot([5,13,"y(t)"], font=[TIMES,

ITALIC, 12]):

> display(p1,p2,p3,p4);

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

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

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

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

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

Задание 2.2.

Нарисовать график решения дифференциального уравнения: y cosx - y +  y = y - x ,

 , ,  в интервале [-2,5; 1,4].

> restart;  with(DEtools):

DEplot(cos(x)*diff(y(x),x$3)-diff(y(x),x$2)+Pi*diff(y(x),x)=y(x)-x,y(x),x=-2.5..1.4,[[y(0)=0,D(y)(0)=1,(D@@2)(y)(0)=1]],stepsize=.1,linecolor=black, thickness=2); 

Контрольные задания.

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

- число букв в фамилии студента,

- число букв в имени студента,

- число букв в отчестве студента.

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

1. Найти общее решение дифференциального уравнения:

а)

б)

2. Найти фундаментальную систему решений дифференциального уравнения:

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

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

при начальных условиях х(0)=1, х'(0)=0; у(0)=1.

5.  Построить график численного решения задачи Коши

а)

б) , , .

6. Построить график численного решения задачи Коши  на интервале [1.5; 3], используя команду DEplot.

Контрольные вопросы.

  1.  Какая команда позволяет решить дифференциальное уравнение? Опишите ее параметры.
  2.  С помощью каких операторов обозначается производная в дифференциальном уравнении и в начальных условиях?
  3.  Какой параметр команды dsolve следует установить, чтобы получить фундаментальную систему дифференциальных уравнений?
  4.  Какой параметр команды dsolve следует установить, чтобы получить приближенное решение дифференциального уравнения в виде разложения в степенной ряд? Как определяется порядок разложения?
  5.  Опишите, какие команды нужно ввести, прежде чем построить график приближенного решения, полученного в виде степенного ряда.
  6.  Какой параметр команды dsolve следует установить, чтобы решить дифференциальное уравнение численно?
  7.  Как найти значение решения дифференциального уравнения в какой-либо конкретной точке?
  8.  Какая команда позволяет построить график численно решенного дифференциального уравнения? В каком пакете находится эта команда?
  9.  Какой пакет предназначен для графического представления и численного решения дифференциального уравнения?
  10.  В чем отличие команд odeplot и DEplot?


 

А также другие работы, которые могут Вас заинтересовать

32544. ИНДИВИДУАЛИЗАЦИЯ ОБУЧЕНИЯ. ОБЩИЕ ТРЕБОВАНИЯ К ОБУЧАЮЩЕЙ ПРОГРАММЕ. ЗАЩИТА ПРОГРАММНЫХ ПРОДУКТОВ 148.5 KB
  При запуске продукта проверяется наличие на ключевом носителе дискете или CDROM определенной информации записанной в защищенной от копирования области. Затраты обусловленные отсутствием защиты: недополученный доход изза несанкционированного распространения и использования продукта = Затраты обусловленные реализацией защиты: прямые затраты на реализацию или приобретение и интеграцию в продукт соответствующих средств; ограничения на программнотехническую совместимость накладываемые средствами защиты; снижение привлекательности...
32545. РЕКОМЕНДАЦИИ ПО ВНЕДРЕНИЮ ЭС В ОБРАЗОВАТЕЛЬНЫЙ ПРОЦЕСС 59 KB
  РЕКОМЕНДАЦИИ Об эффективности обучающей программы можно судить только после ее апробации. Все это выясняется в процессе апробации программы. Только так Вы сможете отчетливо увидеть достоинства и недостатки составленной Вами программы. Не пренебрегайте экспериментальной проверкой программы.
32546. УРОВНИ ПРИМЕНЕНИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ В УЧЕБНОМ ПРОЦЕССЕ 135.5 KB
  КСО на данном уровне обеспечивают поддержку учебного процесса наравне с прочими некомпьютерными учебнометодическими средствами. КСО используются в пассивном качестве т. Она обусловлена тем что по сравнению с традиционными учебнометодическими средствами КСО обеспечивают новые возможности а многие существующие функции реализуются с более высоким качеством. Назовем основные преимущества КСО: создание условий для самостоятельной проработки учебного материала самообразования позволяющих обучаемому выбирать удобные для него место и...
32547. КЛАССИФИКАЦИЯ КОМПЬЮТЕРНЫХ СРЕДСТВ ОБУЧЕНИЯ. ОСНОВНЫЕ ТИПЫ ПРОГРАММ ПРИМЕНЯЕМЫХ В ОБРАЗОВАНИИ 1.04 MB
  КЛАССИФИКАЦИЯ КОМПЬЮТЕРНЫХ СРЕДСТВ ОБУЧЕНИЯ Для эффективной разработки и использования КУ и КОС нужно знать возможности и характеристики этих видов КСО. Начнем знакомство с ними с определения их места в классе КСО. Вопервых на практике разные виды КСО часто применяются в комплексе что требует знания возможностей их взаимодействия и совместного использования. Вовторых многие методические и технологические аспекты создания КУ и КОС являются общими для всего класса КСО Между различными видами КСО лежат нечеткие границы.
32548. ТИПЫ ОБУЧАЮЩИХ ПРОГРАММ С ПЕДАГОГИЧЕСКОЙ ТОЧКИ ЗРЕНИЯ. В КАКИХ СЛУЧАЯХ ЦЕЛЕСООБРАЗНО ИСПОЛЬЗОВАТЬ КОМПЬЮТЕР 54.5 KB
  Разработка и использование ЭС образовательного назначения ТИПЫ ОБУЧАЮЩИХ ПРОГРАММ С ПЕДАГОГИЧЕСКОЙ ТОЧКИ ЗРЕНИЯ. ТИПЫ ОБУЧАЮЩИХ ПРОГРАММ с педагогической точки зрения В настоящее время в учебном процессе используется большое число обучающих программ весьма отличающихся по различным параметрам. Но когда речь идет о рекомендациях по разработке обучающих программ необходимо прежде всего уточнить какие именно программы имеются в виду. Ведь различие между интеллектуальными обучающими программами и программами на отработку умений и навыков...
32549. ОБЩАЯ ХАРАКТЕРИСТИКА ПРОЕКТИРОВАНИЯ ОБУЧЕНИЯ. УРОВНИ ПРОЕКТИРОВАНИЯ ОБУЧАЮЩИХ ПРОГРАММ 48 KB
  Разработка и использование ЭС образовательного назначения ОБЩАЯ ХАРАКТЕРИСТИКА ПРОЕКТИРОВАНИЯ ОБУЧЕНИЯ. ОБЩАЯ ХАРАКТЕРИСТИКА ПРОЕКТИРОВАНИЯ ОБУЧЕНИЯ В настоящее время наметилось два подхода к проектированию обучающих программ. В принципе можно создать несколько эффективных обучающих программ и без психологической теории обучения и технологии компьютерного обучения например путем проб и ошибок. Проектирование обучающих программ должно базироваться на надежном психологическом фундаменте причем прежде всего необходимо проектировать...
32550. КТО СОЗДАЕТ ЭЛЕКТРОННЫЕ СРЕДСТВА ОБРАЗОВАТЕЛЬНОГО НАЗНАЧЕНИЯ. РЕКОМЕНДАЦИИ ПО ПРОЕКТИРОВАНИЮ УЧЕБНЫХ ЦЕЛЕЙ. КАКИЕ МЕТОДЫ ОБУЧЕНИЯ ИСПОЛЬЗОВАТЬ 151.5 KB
  Типовой состав разработчиков программного средства Выделяются четыре базовые категории: авторы учебного материала; компьютерные методисты; системотехники КСО; специалисты по реализации КСО. В создании конкретного КСО участвуют как правило один компьютерный методист и один системотехник КСО. Компьютерный методист это специалист владеющий компьютерной дидактикой и ориентирующийся в ПО которая рассматривается в КСО. В круг его задач входят формирование структуры КСО выбор психологопедагогической стратегии и проработка используемых...
32551. Контакторыи. Коммутация силовых цепей электродвигателей 281.61 KB
  По роду коммутируемого тока контакторы делят на контакторы постоянного и переменного тока. Как правило род тока в цепи управления которая питает электромагнитный привод совпадает с родом тока главной коммутируемой цепи. Однако известны случаи когда катушки контакторов переменного тока получают питание от цепи постоянного тока. Конструктивная схема контактора постоянного тока показана на рис.
32552. Электромагнитные муфты 341.13 KB
  24 показана схема муфты серии ЭТМ с магнитопроводящими фрикционными дисками. Другой зажим катушки подключают к источнику питания постоянного тока через корпус муфты. Электромагнитная контактная дисковая муфта При включении муфты магнитный поток Ф созданный током протекающим по виткам катушки проходит через корпус пакет внутренних 6 и наружных 4 дисков и замыкается через якорь 5.