АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. Анализ общего решения дифференциального уравнения изгиба балки на упругом основании
  2. В виде уравнения характеристики крупности.
  3. Волновые уравнения
  4. Вывод основного уравнения МКТ
  5. ГЛАВА 1.8. УРАВНЕНИЯ АКТИВНЫХ АВТОНОМНЫХ ЧЕТЫРЕХПОЛЮСНИКОВ
  6. ГЛАВА1.7. УРАВНЕНИЯ ЧЕТЫРЕХПОЛЮСНИКА В ГИПЕРБОЛИЧЕСКИХ ФУНКЦИЯХ
  7. Дифференциальные признаки стрептококков
  8. ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ
  9. Дифференциальные уравнения конвективного теплообмена
  10. Дифференциальные уравнения первого порядка
  11. Дифференциальные уравнения с кусочными функциями

1) Справочный аппарат, подгрузка >with(DEtools, odeadvisor):

>eq:=…; задание уравнения.

>odeadvisor(eq); определение типа уравнения.

>odeadvisor(eq, help); справка по данному типу уравнений.

 

Для задания дифференциального уравнения используют два способа задания производных

А) В виде >diff(y(x),x); >diff(y(x),x,x); … >diff(y(x),x$n);

В) В виде функций (вместо х можно подставлять числа)

>D(y)(x); >D(D(y))(x); >D(D(D(y)))(x); и т.д.

п-ю производную можно задавать также в виде >(D@@n)(y)(x);

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

В MAPLE 11 начальные условия можно также задавать командой y(n)(x0)=y0.

 

УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА

ОБЩЕЕ РЕШЕНИЕ

Решение уравнения y’= f(x,y) находится по команде

>dsolve(diff(y(x),x)=f(x, y(x))); или >dsolve(D(y)(x)=f(x, y(x)));

Примечание. В ранних версиях MAPLE нужно было в качестве опции добавлять искомую функцию у(х), т.е. писать >dsolve(diff(y(x),x)=f(x, y(x)), y(x));

Рекомендуется вначале задавать уравнение одной из следующих команд (удобно для проверки)

>eq:=diff(y(x),x)=f(x,y(х)); >eq:= D(y)(x)=f(x,y(х));

> eq:=diff(y(x),x)–f(x,y(х)); >eq:= D(y)(x)–f(x,y(х));

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

>dsolve(eq);

Примечание. В MAPLE 11 уравнение можно задавать в виде y(1)=f(x, y)

Примеры.

а) Найти общее решение уравнения y’= 2y – 4x.

>eq:=diff(y(x), x)=2*y(x) – 4*x; задание уравнения (В MAPLE 11: eq:= y(1)=2*y – 4*x)

>dsolve(eq); y(x) = 1+2x +e2x _C1 общее решение уравнения.

б) Найти общее решение уравнения y’=x/(y–1).

eq:=D(y)(x) – x/(y(x)–1);

>dsolve(eq);

Решение было бы менее громоздким, если бы мы искали его в неявном виде

>dsolve(eq, implicit); x2/2–y(x)2/2+y(x)+C1=0.

в) Аналогично решаются уравнения с неявной производной: y=xy’+sin(y’)

>eq:=y(x)=x*diff(y(x), x)+sin(diff(y(x), x)); >dsolve(eq);

г) Для решения уравнения в полных дифференциалах Pdx+Qdy=0 следует подгрузить алгебраический пакет linalg.

>with(linalg): загрузка алгебраического пакета,

>H:=[P(x,y),Q(x,y)]; задание координат поля P(x,y) и Q(x,y),

>potential(H, [x,y],’f ’); проверка условия полного дифференциала (true, false),

>f=C; нахождение общего решения уравнения в виде Ф(х, у)=С.

 

ЗАДАЧА КОШИ

Уравнение >eq:=diff(y(x), x)=f(x,y(x)); начальное условие >ic:=y(a)=b;

Решение задачи Коши осуществляется командой

>dsolve({eq, ic}); (В ранних версиях добавляли искомую функцию >dsolve({eq, ic},y(x));)

Или

>dsolve({diff(y(x), x)=f(x,y(x)), y(a)=b});

Можно объединить в систему уравнение и начальное условие: >P:= {diff(y(x),x)=f(x,y(x)), y(a)=b};

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

>dsolve(P);

Пример. Решить задачу Коши y’ = 1+exp(x–y), y(a) = b.

>dsolve({D(y)(x)=1+exp(x–y(x)),y(a)=b}); y(x) = ln(x + eb–a –a)+ x

MAPLE ищет решение задачи Коши только в явном виде. Для этого иногда возникает необходимость использовать функцию RootOf.

Пример. Решить задачу Коши { y’=2x/(2y+cosy), y(0)=0 }.

>P:={D(y)(x)=2*x/(2*y(x)+cos(y(x))), y(0)=0}; система из уравнения и начального условия.

>dsolve(P); Ответ: y(x)=RootOf(x2 – Z2 – sin(Z)).

Этот ответ означает, что решение y(x) задачи Коши является корнем функционального уравнения

x2 – y2 –sin(y) = 0,

а само это уравнение можно рассматривать как решение задачи Коши в неявном виде.

Примечание. Если решение задачи Коши не существует, то MAPLE ничего не выводит на экран.

ГРАФИК РЕШЕНИЯ ЗАДАЧИ КОШИ

Пример. Построить график решения задачи Коши y’=x+y, y(0)=1.

>dsolve({D(y)(x)=x+y(x),y(0)=1}); y(x) =2 ex – x – 1

>rhs(%); 2 ex – x – 1 выделение правой части равенства

>plot(%, x= –1..1); график этой правой части.

Вместо двух последних команд можно было бы обойтись одной

>plot(rhs(%), x= –1..1);

Если решение задачи Коши получено в неявном виде, то для построения неявно заданной кривой следует произвести подгрузку with(plots): и воспользоваться командой >implicitplot (см. раздел «ГРАФИКА В MAPLE»).

 

РЕШЕНИЕ ЗАДАЧИ КОШИ В РЯДАХ

Если не существует точного решения задачи Коши, то можно найти её решение в виде сте­пенного ряда, применяя команды

>Order:=4; задание порядка разложения в ряд (по умолчанию = 6)

>dsolve({D(y)(x)=x^2+y(x)^2, y(1)=2}, y(x), series);

В команде следует обязательно указать искомую функцию у(х) и до­бавить опцию series.

Ответ: y(x)=2+5(x–1)+11(x–1)2+(70/3)(x–1)3+O((x–1)4)

График этого приближенного решения строится командами

>convert(rhs(%), polynom); выделение правой части и превращение её в многочлен

>plot(%, x=0..2); график этого многочлена.

 

ЧИСЛЕННОЕ РЕШЕНИЕ ЗАДАЧИ КОШИ И ЕГО ГРАФИК

>F:=dsolve({D(y)(x)=x–y(x), y(0)=1}, y(x), numeric);

Обязательно указывать искомую функцию у(х) и опцию numeric.

Ответ: F:= proc (x _rkf45)… end proc Это означает, что решение просчитано.

Для нахождения значения решения при х=1,76 следует выполнить команду

>F(1,76); [х=1,76 y(1,76)=1,104089…]

Для построения графика решения на отрезке [ –1..2] нужно выполнить команду

>plots[odeplot](F,[x,y(x)],–1..2);

Если подгружен пакет >with(plots):, то команда примет вид

>odeplot(F,[x,y(x)],–1..2);

 

ЧИСЛЕННОЕ РЕШЕНИЕ ЗАДАЧИ КОШИ В ВИДЕ ТАБЛИЦЫ

>sys:={D(y)(x)=x – y(x), y(0)=1}: задача Коши

>X:=array([1,2,3,4]): значения Х, для которых мы хотим найти у(х)

>F:=dsolve(sys, y(x), numeric, output=X);

Примечание. В ранних версиях вместо output нужно было писать value.

 

УРАВНЕНИЯ ВТОРОГО ПОРЯДКА

ОБЩЕЕ РЕШЕНИЕ, ФСР.

а) Найти общее решение уравнения y”= y’/x +8 x2

>dsolve((D@@2)(y)(x)=D(y)(x)/x+8*x^2); y(x)= x4 + _C1 + _C2x2

ПРИМЕЧАНИЕ. В MAPLE 11 уравнение задается в виде y(2)= y(1)/x+8*x2.

б) Найти общее решение уравнения x2y”+3xy’+2y=0.

>dsolve(x^2*diff(y(x), x, x)+3*x*diff(y(x), x)+2*y(x));

в) Найти общее решение уравнения y”–3y’+2y=ex.

> dsolve(diff(y(x), x, x)–3*diff(y(x), x)+2*y(x)=exp(x)); y(x)=–xex–ex+_C1ex+_C2e2x

г) Найти фундаментальную систему решений уравнения y’’’–3y”+4y’–2y=0.

>dsolve((D@@3)(y)(x)–3*(D@@2)(y)(x)+4*D(y)(x)–2*y(x),output=basis);

Ответ: [ ex, excosx, exsinx ]

При наличии правой части программа выдает ФСР + частное решение

>dsolve(diff(y(x), x, x)–5*diff(y(x), x)+6*y(x)=2*exp(x), output=basis); [[e2x, e3x], ex]

 

ЗАДАЧА КОШИ, КРАЕВАЯ ЗАДАЧА

Пример. Решить задачу Коши x2y”+3xy’+2y=0, y(1)=5, y’(1)=4.

>dsolve({x^2*diff(y(x),x,x)+3*x*diff(y(x),x)+2*y(x), y(1)=5, D(y)(1)=4});

Или

>eq:= x^2*diff(y(x), x, x)+3*x*diff(y(x), x)+2*y(x);

>ic:= y(1)=5, D(y)(1)=4;

>dsolve({eq, ic});

Или

>H:={x^2*diff(y(x), x, x)+3*x*diff(y(x), x)+2*y(x), y(1)=5, D(y)(1)=4};

>dsolve(H);

ПРИМЕЧАНИЕ. В MAPLE 11 начальные условия задаются в виде y(x0)=a, y(1)(x0)=b

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

>dsolve({diff(y(x), x, x)+y(х),y(0)=a, y(1)=b});

РЕШЕНИЕ ЗАДАЧИ КОШИ В РЯДАХ

Если не существует точного решения задачи Коши, то можно найти её решение в виде сте­пенного ряда, применяя команды.

>Order:=4; задание порядка разложения в ряд (по умолчанию = 6)

>dsolve({diff(y(x), x, x)=x^2+y(x)^2, y(1)=2, D(y)(1)=0}, y(x), series);

В команде обязательно следует указать искомую функцию у(х) и до­бавить опцию series.

Ответ: y(x)=2+5(x–1)2/2+(x–1)3/3+O((x–1)4)

График этого приближенного решения строится командами

>convert(rhs(%), polynom); выделение правой части и превращение её в многочлен

>plot(%, x= –1..2); график этого многочлена.

 

ЧИСЛЕННОЕ РЕШЕНИЕ ЗАДАЧИ КОШИ

>F:=dsolve({diff(y(x), x, x)=x–y(x), y(0)=1, D(y)(0)=2}, y(x), numeric);

Обязательно указывать искомую функцию и опцию numeric.

ответ F:= proc (x _rkf45)… end proc Это означает, что решение просчитано.

Для нахождения значений решения и его производной при х=1 следует выполнить команду

>F(1); [х=1 y(х)=2.38… =0.698…]

Для построения графика решения на отрезке [ –1..2] нужно выполнить команду

>plots[odeplot](F, [x, y(x)], –1..2);

Если подгружен пакет >with(plots):, то команда принимает вид

>odeplot(F, [x, y(x)], –1..2);

 

РЕШЕНИЕ ЗАДАЧИ КОШИ В ВИДЕ ТАБЛИЦЫ

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

>eq:=diff(y(x), x, x)=x^2–y(x)^2; ic:=y(1)=2, D(y)(1)=0; уравнение и начальные условия

>X:=array([1,2,3,4]); значения переменной х.

>F:=dsolve({eq, ic}, y(x), numeric, output=X); Обязательно указывать искомую функцию!!!

Ответом является таблица

 

x y(x)

1 2 0

2 1.25… –0.52…

3 2.53… 3.20…

4 4.67… –0.75…

Примечание. В ранних версиях вместо output нужно было писать value.

 

СТРУКТУРА DESol

Пусть дана задача Коши >eq:=diff(y(x),x)=x^2+y(x)^2; >ic:=y(1)=2; Команда

>f:=DESol(eq,y(x),ic); задает решение этой задачи Коши, не решая самой задачи.

Далее можно разлагать эту функцию в ряд Тейлора в точке х=1, задавая число слагаемых разложения предварительной командой Order:=n либо добавляя опцию в команду

>taylor(f, x=1, 3); 2+5(x–1)+11(x–1)2+O((x–1)3)

Можно также разлагать в ряд Тейлора функции вида и т.п.

Для уравнений более высокого порядка начальные условия задают в виде множества {…}

>f:=DESol(diff(y(x), x, x)+x*y(x), y(x), {y(0)=1, D(y)(0)=2});

>taylor(f, x);

СИСТЕМЫ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

ОБЩЕЕ РЕШЕНИЕ

Система задается в виде последовательности выражений (через запятую)

>sys:=diff(x(t), t)=f(x(t), y(t), t), D(y)(t)=g(x(t), y(t), t);

В MAPLE 11 можно писать >sys:= x(1) (t)=f(x(t), y(t), t), y(1) (t)=g(x(t), y(t), t);

В этом случае общее решение системы находится по команде

>dsolve({sys});

В ранних версиях в виде опции добавлялись искомые функции {x(t), y(t)}.

Система может быть задана также в виде множества (в фигурных скобках)

>S:={diff(x(t),t)=f(x(t), y(t), t), D(y)(t)=g(x(t), y(t), t)};

то в этом случае общее решение системы находится по команде

>dsolve(S);

Пример. Решить систему

>sys:={D(x)(t)=2*x(t)+y(t)+16*t, D(y)(t)=2*x(t)+3*y(t)};

>dsolve(sys); { x(t)=C1 e4t+C2et–11–12t, y(t)=2C1e4t–C2et+10+8t }

Пример. Найти общее решение линейной системы , где Х – вектор-столбец неизвестных функций, А – квадратная числовая матрица, F – вектор известных функций.

Решение.

>with(linalg): подгрузка пакета линейной алгебры

>A:=matrix(n, n, [a, b, c, …]); задание матрицы системы

>X:=vector([x(t), y(t), z(t), …]); задание вектора искомых функций

>F:=vector([F1,F2,…]); задание вектора известных функций

>X1:=map(diff, X, t); нахождение вектора производных искомых функций

>b:=evalm(X1–F); нахождение правой части системы AX= –F

>sys:=geneqns(A, X, b); составление системы дифф. уравнений

>dsolve(sys); нахождение общего решения этой системы

 

ЗАДАЧА КОШИ ДЛЯ СИСТЕМЫ

Решение задачи Коши для системы , x(t0)=x0, y(t0)=y0 находится по команде

>dsolve(sys); где sys – множество (в фигурных скобках), элементами которого служат уравнения системы и начальные условия (всё через запятую).

Пример.

>sys:={D(x)(t)=x(t)–y(t), D(y)(t)=x(t)+y(t), x(0)=1, y(0)=0}; задание двух уравнений системы и двух начальных условий. (В MAPLE 11 производные задаются в виде x(1)(t), y(1)(t))

>P:=dsolve(sys); нахождение решения системы P:={x(t)=etcost, y(t)=etsint}

В ранних версиях в виде опции добавлялись искомые функции {x(t), y(t)}.

 

Соответствующая кривая на фазовой плоскости строится командой

>plot([rhs(P[1]), rhs(P[2]), t= –3..1]);

Пример. Решение задачи Коши для линейной автономной системы .

>with(linalg): подгрузка пакета линейной алгебры

>A:=matrix(n, n, [a, b, c, …]); задание матрицы системы

>X:=vector([x(t), y(t), z(t), …]); задание вектора искомых функций

>b:=map(diff, X, t); задание вектора производных искомых функций

>sys:=geneqns(A, X, b) union {x(0)=x0, y(0)=y0, …}; составление системы дифф. уравнений в объединении (union) с системой начальных условий.

>dsolve(sys); нахождение решения задачи Коши

 

ЧИСЛЕННОЕ РЕШЕНИЕ ЗАДАЧИ КОШИ ДЛЯ СИСТЕМЫ

Численное решение задачи Коши для системы , x(t0)=x0, y(t0)=y0

находится по команде >P:=dsolve({sys, ic}, numeric);

Пример. Решить задачу Коши , х(0)=1, у(0)=2.

>sys:=D(x)(t)=x(t)–y(t), D(y)(t)=x(t)+y(t); задание двух уравнений системы,

>ic:=x(0)=1, y(0)=2; задание начальных условий

>P:=dsolve({sys, ic}, numeric); нахождение решения системы.

Ответ: P: = proc (x_rkf45)… end proc

Это означает, что решение просчитано. Его значения для конкретного значения t=1.23 можно получить п команде

>P(1.23); [t=1.23, x(t)= –5.3…, y(t)=5.5…]

Для построения параметрической кривой {x(t), y(t)} для t = 0..2 применяют команду

>plots[odeplot](P, [x(t), y(t)], 0..2);

Если подгружен графический пакет >with(plots):, то команда принимает вид

>odeplot(P, [x(t), y(t)], 0..2);

 

Численное решение системы в виде таблицы для значений t = 0, 1, 2 получают командой

>dsolve({sys,ic}, numeric, output=array([0, 1, 2]));

t x(t) y(t)

0 1 2

1 –3.1… 5.22…

2 –16.5… 0.56…

Примечание. В ранних версиях вместо output нужно было писать value.

 

 

ГРАФИЧЕСКИЕ ИЛЛЮСТРАЦИИ.

ПОЛЕ НАПРАВЛЕНИЙ. ИНТЕГРАЛЬНЫЕ КРИВЫЕ

Подгрузка графического пакета >with(DEtools):

1) Поле направлений уравнения y’= f(x,y) находится по команде

>DEplot(D(y)(x)=f(x, y(x)), y(x), x=a..b, y=c..d, option);

В качестве опций можно задать цвет стрелок (color=black, red, …) и величину стрелок (arrows=line, small, medium, large). Опция arrows=none – стрелки отсутствуют

2) Поле направлений уравнения y’= f(x,y) и несколько интегральных кривых с заданными начальными условиями

>DEplot(D(y)(x)=f(x, y(x)), y(x), x=a..b, [[y(x1)=y1], [y(x2)=y2], …], y=c..d, option);

Если в качестве опции указать arrows=none, то останутся только интегральные кривые, без поля направлений. Опция linecolor=black, green,... задает цвет интегральной кривой. Если опция имеет вид linecolor=[black, green], то задается цвет каждой кривой. Опция animate=true показывает постепенное возникновение интегральной кривой с ростом х. Для запуска механизма управления анимацией нужно щелкнуть по чертежу.

Примечание. Расчет интегральных кривых на [ a, b ] производится с шагом (b–a)/20. Для увеличения точности картинки можно задать более мелкий шаг опцией stepsize=h.

3) Поле направлений автономной системы .

>DEplot([D(x)(t)=f(x(t), y(t)), D(y)(t)=g(x(t),y(t))], [x(t),y(t)], t=t1..t2, x=a..b, y=c..d, options);

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

4) Поле направлений автономной системы и несколько интегральных кривых.

>DEplot([D(x)(t)=f(x(t), y(t)), D(y)(t)=g(x(t),y(t))], [x(t),y(t)], t=t1..t2, [[x(t1)=x1, y(t1)=y1], [x(t2)=x2, y(t2)=y2], …], x=a..b, y=c..d, options);

Диапазон изменения переменной t не влияет на картину поля направлений, но интегральные кривые соответствуют этому диапазону. Опции задают цвет кривых и возможность анимации (см. выше). В MAPLE 11 призводные можно задавать в виде x(1)(t), y(1)(t).

5)Пространственные графики решений системы в координатах [x, y, t]

>DEplot3d([D(x)(t)=f(x(t),y(t),t), D(y)(t)=g(x(t),y(t),t)], [x(t),y(t)], t=t1..t2, [[x(p)=q,y(m)=n],…],

х=a..b, y=c..d);

Картинку можно вращать левой мышью.

>DEplot3d([D(x)(t)= –y(t), D(y)(t)=x(t)], [x(t),y(t)], t= –2..7, [[x(0)=1,y(0)=0],[x(0)=0,y(0)=1]],

x= –2..2,y= –2..2,linecolor=t);

 

6) Графики решений задачи Коши для уравнения 2-го порядка: >DEplot(diff(y(x),x,x)=

–diff(y(x),x)– 5*y(x),y(x), x=0..4, [[y(0)=0,D(y)(0)=1],[y(0)=0.4,D(y)(0)=0]], y= –0.2..0.5, linecolor=x);

Примечание. Опция linecolor=x окрашивает линию в красивые цвета. Можно задавать цвет каждой кривой опцией в квадратных скобках linecolor=[green,red].

 

 

ЛИНЕЙНАЯ АЛГЕБРА

Загрузка пакета >with(linalg):

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.026 сек.)