|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ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):
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.026 сек.) |