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

Численное решение дифференциальных уравнений с помощью команды 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для построения графика.

Задание 3.1.

1. Найти численное и приближенное решение в виде степенного ряда до 6-ого порядка задачи Коши: Численное решение дифференциальных уравнений - student2.ru , Численное решение дифференциальных уравнений - student2.ru , Численное решение дифференциальных уравнений - student2.ru .

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

> 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);

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

>with(plots):

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

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

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

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

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

> 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);

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

Наилучшее приближение решения степенным рядом достигается примерно на интервале -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);

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

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

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

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

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

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

Задание 3.2.

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

Численное решение дифференциальных уравнений - student2.ru , Численное решение дифференциальных уравнений - student2.ru , Численное решение дифференциальных уравнений - student2.ru в интервале [-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);

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

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

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

Численное решение дифференциальных уравнений - student2.ru - число букв в фамилии студента,

Численное решение дифференциальных уравнений - student2.ru - число букв в полном имени студента,

Численное решение дифференциальных уравнений - student2.ru - число букв в отчестве студента.

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

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

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

б) Численное решение дифференциальных уравнений - student2.ru

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

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

3. Найти решение задачи Коши: Численное решение дифференциальных уравнений - student2.ru , Численное решение дифференциальных уравнений - student2.ru

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

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

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

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

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

б) Численное решение дифференциальных уравнений - student2.ru , Численное решение дифференциальных уравнений - student2.ru , Численное решение дифференциальных уравнений - student2.ru .

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

7. Найти сумму ряда и сумму первых N членов.

а) Численное решение дифференциальных уравнений - student2.ru б) Численное решение дифференциальных уравнений - student2.ru

8. К какой функции сходится степенной ряд: Численное решение дифференциальных уравнений - student2.ru ?

9. Найти сумму степенного ряда Численное решение дифференциальных уравнений - student2.ru .

10. Вычислить бесконечное произведение: Численное решение дифференциальных уравнений - student2.ru

11. Вычислить произведение с точностью до 0,00001 Численное решение дифференциальных уравнений - student2.ru

12. Разложить в степенной ряд Численное решение дифференциальных уравнений - student2.ru в окрестности x=0 до 11-ого порядка.

13. Разложить в ряд Тейлора функцию Численное решение дифференциальных уравнений - student2.ru до 6 – ого порядка в окрестности точки (0, 0).

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

1. Какая команда позволяет решить дифференциальное уравнение? Опишите ее параметры.

2. С помощью каких операторов обозначается производная в дифференциальном уравнении и в начальных условиях?

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

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

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

6. Какой параметр команды dsolve следует установить, чтобы решить дифференциальное уравнение численно?

7. Как найти значение решения дифференциального уравнения в какой-либо конкретной точке?

8. Какая команда позволяет построить график численно решенного дифференциального уравнения? В каком пакете находится эта команда?

9. Какой пакет предназначен для графического представления и численного решения дифференциального уравнения?

10. В чем отличие команд odeplot и DEplot?

11. Как вычислить сумму или произведение в Maple?

12. Какие команды осуществляют разложение функции в степенные ряды?

Наши рекомендации