Компания ALT Linux
Опубликован: 24.03.2015 | Доступ: свободный | Студентов: 550 / 136 | Длительность: 19:00:00
Лекция 3:

Задачи высшей математики с Maxima

3.8 Решение дифференциальных уравнений в Maxima

3.8.1 Основные определения

Дифференциальным уравнением называется уравнение вида F(x,y,y',... ,y^{(n)}) = 0, где F(t_0,t_1,... ,t_{n+1}) — функция, определенная в некоторой области D пространства R^{n+2}, x — независимая переменная, y — функция от x, y',... ,y^{(n)} — ее производные.

Порядком уравнения n называется наивысший из порядков производных y, входящих в уравнение. Функция f(x) называется решением дифференциального уравнения на промежутке (a; b), если для всех x из (a; b) выполняется равенство: F(x,f(x),f'(x),... ,f^n(x)) = 0.

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

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

Пример: решить уравнение y' = 0.

Очевидно, что его решение f(x) = const определено на (-\infty, \infty). Отметим, что эта постоянная –– произвольная и решение — не единственное, а имеется бесконечное множество решений.

Пример: Решить уравнение y'=\frac{y}{x}, или \frac{dy}{dx} = \frac{y}{x}.

Преобразуя уравнение, получим: \frac{dy}{y} = \frac{dx}{x}. Интегрируя обе части уравнения, получим: \int\frac{dy}{y} = \int\frac{dx}{x} \Rightarrow ln\,y = ln \, x + ln \, C, или y = Cx. Общее решение изображается серией линейных интегральных кривых, проходящих через точку (0,0). При этом через любую точку, не принадлежащую (0, 0), проходит только одна интегральная кривая (решение).

Общее решение — множество решений дифференциального уравнения y' = f(x,y) есть совокупность функций F(x,y,C) = 0,\, C =const. Частное решение получают при подстановке конкретного значения константы в общее решение. Особые решения не входят в общие решения, и через каждую точку особого решения проходит более одной интегральной кривой. Особые решения нельзя получить из общего решения ни при каких значениях постоянной С. Если построить семейство интегральных кривых дифференциального уравнения, то особое решение будет изображаться линией, которая в каждой своей точке касается по крайней мере одной интегральной кривой.

Пример: Рассмотрим уравнение y'=\frac{-x}{y}. Преобразуя его, найдём: \frac{dy}{dx} = - \frac{x}{y} \Rightarrow 2ydy + 2xdx = 0 \Leftrightarrow d(x^2+y^2) = 0. Интегрируя, получаем x^2 + y^2 = C.

Пример: Дифференциальное уравнение y' = 2 \sqrt{y} имеет общее решение y = (x-C)^2 и особое решение y = 0. При конкретном значении С (например, C = 1) получаем частное решение: y = (x - 1)^2.

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

Возможность однозначного решения дифференциального уравнения определяется теоремой единственности:

Пусть f(x,y) — непрерывная функция в области D = {(x,y; a < x < b; c < y < d)}, причём частная производная \frac{\partial f}{\partial y}(x,y) также непрерывна в D. Тогда существует единственное решение y = y(x) дифференциального уравнения y' = f(x,y) с начальным условием y(x_0) = y_0,(x_0,y_0) \in D. Следовательно, через точку (x_0,y_0) \in D проходит только одна интегральная кривая.

3.8.2 Функции для решения дифференциальных уравнений в Maxima

В Maxima предусмотрены специальные средства решения задачи Коши для систем обыкновенных дифференциальных уравнений, заданных как в явной форме \frac{dx}{dt}= F(t,x), так и в неявной M\frac{dy}{dt}=F(t,x), где M — матрица, — т.н. решатель ОДУ (solver ODE), обеспечивающий пользователю возможность выбора метода, задания начальных условий и др.

Функция ode2 позволяет решить обыкновенные дифференциальные уравнения первого и второго порядков.

Синтаксис вызова ode2(eqn,dvar,ivar), где eqn — выражение, определяющее само дифференциальное уравнение, зависимая переменная — dvar, независимая переменная — ivar.

Дифференциальное уравнение представляется в форме с "замороженной" производной (т.е. с производной, вычисление которой запрещено с помощью одиночной кавычки: 'diff(y,x)). Другой вариант явно указать зависимость y = y(x) — использовать функцию depends (в этом случае можно не использовать начальный апостроф см. при- мер). Если ode2 не может получить решение, она возвращает значение false.

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

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

Тип используемого метода сохраняется в переменной method. При использовании интегрирующего множителя он сохраняется в переменной intfactor. Частное решение неоднородного уравнения сохраняется в переменной yp.

Для отыскания частных решений задач Коши с начальными условиями используются функции ic1 (для уравнений первого порядка) и ic2 (для уравнений второго порядка). Частные решения граничных задач для уравнений второго порядка используют функцию bc2.

Рассмотрим примеры использования функции ode2.

Вариант использования отложенного дифференцирования ('diff):

(%i1)	ode2('diff(y,x)=2*y+exp(x),y,x);
y=\left( \%c-{e}^{-x}\right) \,{e}^{2\,x}\leqno{(\%o1) }

Вариант с явным указанием зависимости y = y(x):

(%i1)	depends(y,x);
[y\left( x\right) ]\leqno{(\%o1) }
(%i2)	ode2(diff(y,x)=2*y+exp(x),y,x);
y=\left( \%c-{e}^{-x}\right) \,{e}^{2\,x}\leqno{(\%o2) }

Параметр \%с — постоянная интегрирования для уравнения первого порядка.

Решение уравнения второго порядка:

(%i4)	ode2('diff(y,x,2)-3*'diff(y,x)+2*y=0,y,x);
y=\%k1\,{e}^{2\,x}+\%k2\,{e}^{x}\leqno{(\%o4) }

Параметры \%k1 и \%k2 — постоянные интегрирования для уравнений второго порядка.

Рассмотрим варианты вычисления частных решений: для уравнения первого порядка

(%i5)	ic1(%o1,x=1,y=1);
y={e}^{-2}\,\left( \left( e+1\right) \,{e}^{2\,x}-{e}^{x+2}\right) \leqno{(\%o5) }

для уравнения второго порядка

(%i6)	ic2(%o4,x=0,y=1,diff(y,x)=1);
y={e}^{x}\leqno{(\%o6) }

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

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

Уравнениями с разделяющимися переменными называются уравнения вида y' = f(x)\cdot g(y), где f(x) — функция, непрерывна на некотором интервале (a,b), а функция g(y) — функция, непрерывна на интервале (c,d), причем g(y) \ne 0 на (c,d)).

Преобразуя уравнение, получаем: \frac{dy}{dx}=f(x)\cdot g(y)\Leftrightarrow \frac{dy}{g(y)}=f(x)dx

Интегрируя обе части, получаем \int\frac{dy}{g(y)}=\int f(x)dx. Обозначая G(y) любую первообразную для \frac{1}{g(y)} , а F(x) — любую первообразную для f(x), получаем общее решение дифференциального уравнения в виде неявно выраженной функции G(y) = F(x) + C.

Пример решения в Maxima:

Отыскиваем общее решение:

(%i1) difur1:'diff(y,x)=sqrt(1-y^2)/sqrt(1-x^2);
\frac{d}{d\,x}\,y=\frac{\sqrt{1-{y}^{2}}}{\sqrt{1-{x}^{2}}}\leqno{(\%o1) }
(%i2) rez:ode2(difur1,y,x);
asin\left( y\right) =asin\left( x\right) +\%c\leqno{(\%o2) }

Отыскиваем различные варианты частных решений:

(%i3) ic1(rez,x=0,y=0);
asin\left( y\right) =asin\left( x\right) \leqno{(\%o3) }
(%i4) ic1(rez,x=0,y=1);
asin\left( y\right) =\frac{2\,asin\left( x\right) +\pi }{2}\leqno{(\%o4) }
3.8.3.2 Однородные уравнения

Под однородными уравнениями понимаются уравнения вида y'= f(\frac{y}{x}). Для их решения используется замена вида y = u \cdot x, после подстановки которой получается уравнение с разделяющимися переменными: y' = u'\,x+u \! \Rightarrow \! u'\,x+u = f(u). Разделяя переменные и интегрируя, получаем: x\frac{du}{dx}=f(u)-u \Rightarrow \int\frac{du}{f(u)-u}\,=\, \int\frac{dx}{x}

Пример решения в Maxima:

Находим общее решение:

(%i1)	homode:'diff(y,x) = (y/x)^2 + 2*(y/x);
\frac{d}{d\,x}\,y=\frac{{y}^{2}}{{x}^{2}}+\frac{2\,y}{x}\leqno{(\%o1) }
(%i2)	ode2(homode,y,x);
-\frac{x\,y+{x}^{2}}{y}=\%c\leqno{(\%o2) }

Находим частное решение:

(%i3)	ic1(%,x=2,y=1);
-\frac{x\,y+{x}^{2}}{y}=-6\leqno{(\%o3) }

Более общий вариант дифференциальных уравнений, уравнения вида: y'= \frac{a_1x+b_1y+c_1}{a_2x+b_2y+c_2} — сводим их к однородным. Maxima не способна решать такие уравнения при помощи ode2 непосредственно, а лишь после необходимого преобразования.

3.8.3.3 Линейные уравнения первого порядка

Дифференциальное уравнение называется линейным относительно неизвестной функции и ее производной, если оно может быть записано в виде:

y' = P(x)\cdot y = Q(x)
при этом, если правая часть Q(x) равна нулю, то такое уравнение называется линейным однородным дифференциальным уравнением, если правая часть Q(x) не равна нулю, то такое уравнение называется линейным неоднородным дифференциальным уравнением. При этом P(x) и Q(x) — функции непрерывные на некотором промежутке x \in (a,b).

Рассмотрим решение линейного дифференциального уравнения в Maxima:

(%i1)	lineq1:'diff(y,x)-y/x=x;
\frac{d}{d\,x}\,y-\frac{y}{x}=x\leqno{(\%o1) }
(%i2)	ode2(lineq1,y,x);
y=x\,\left( x+\%c\right) \leqno{(\%o2) }

При работе с Maxima не требуется приводить дифференциальное уравнение к стандартной форме вида

y' = P(x)\cdot y = Q(x)
(%i3)	lineq2:y^2-(2*x*y+3)*'diff(y,x)=0;
{y}^{2}-\left( 2\,x\,y+3\right) \,\left( \frac{d}{d\,x}\,y\right) =0\leqno{(\%o3) }
(%i4)	ode2(lineq2,y,x);
\frac{x\,y+1}{{y}^{3}}=\%c\leqno{(\%o4) }
3.8.3.4 Уравнения в полных дифференциалах

Дифференциальное уравнение первого порядка вида:

P(x,y)dx+Q(x,y)dy = 0
называется уравнением в полных дифференциалах, если левая часть этого уравнения представляет собой полный дифференциал некоторой функции u = F(x,y). Данное дифференциальное уравнение является уравнением в полных дифференциалах, если выполняется условие:

\frac{\partial P}{\partial y} = \frac{\partial Q}{\partial x}.

Общий интеграл уравнения имеет вид U(x,y) = 0.

Если уравнение P(x,y)dx + Q(x,y)dy =0 не является уравнением в полных дифференциалах, но выполняются условия теоремы единственности, то существует функция \mu = \mu (x,y) (интегрирующий множитель) такая, что

\mu (Pdx + Qdy) = dU

Функция \mu удовлетворяет условию:

\frac{\partial (\mu P)}{\partial y} =  \frac{\partial (\mu Q)}{\partial x}

Примеры решения в Maxima:

Для решения в Maxima дифференциальное уравнение представляется в форме

P(x,y)+Q(x,y) \frac{dy}{dx} = 0
Уравнение, приводимое к уравнению в полных дифференциалах
(%i1)	deq:(2*x*y+x^2*y+y^3/3)+(x^2+y^2)*'diff(y,x)=0;
\left( {y}^{2}+{x}^{2}\right) \,\left( \frac{d}{d\,x}\,y\right) +\frac{{y}^{3}}{3}+{x}^{2}\,y+2\,x\,y=0\leqno{(\%o1) }
(%i2)	ode2(deq,y,x);
\frac{{e}^{x}\,{y}^{3}+3\,{x}^{2}\,{e}^{x}\,y}{3}=\%c\leqno{(\%o2) }

Указание на интегрирующий множитель

(%i3)	intfactor;
{e}^{x}\leqno{(\%o3) }

Указание на использованный метод

(%i4)	method;
exact\leqno{(\%o4) }
Уравнение в полных дифференциалах
(%i5)	deq1:(3*x^2+6*x*y^2)+(6*x^2*y+4*y^3)*'diff(y,x)=0;
\left( 4\,{y}^{3}+6\,{x}^{2}\,y\right) \,\left( \frac{d}{d\,x}\,y\right) +6\,x\,{y}^{2}+3\,{x}^{2}=0\leqno{(\%o5) }
(%i6)	ode2(deq1,y,x);
{y}^{4}+3\,{x}^{2}\,{y}^{2}+{x}^{3}=\%c\leqno{(\%o6) }

Указание на использованный метод

(%i7)	method;
exact\leqno{(\%o7) }
3.8.3.5 Уравнения Бернулли

Уравнением Бернулли называется уравнение вида

y' + P(x)\cdot y = Q(x) \cdot y^{\alpha}
где P и Q — функции от x или постоянные числа, а \alpha — постоянное число, не равное 0 и 13При \alpha = 0 получаем неоднородное, а при \alpha = 1 однородное линейное уравнение..

Для решения уравнения Бернулли применяют подстановку z=\frac{1}{y^{\alpha-1}} , с помощью которой, уравнение Бернулли приводится к линейному.

Пример решения уравнения Бернулли с помощью Maxima:

(%i1)	deq:'diff(y,x)=4/x*y+x*sqrt(y);
\frac{d}{d\,x}\,y=\frac{4\,y}{x}+x\,\sqrt{y}\leqno{(\%o1) }
(%i2)	ode2(deq,y,x);
y={x}^{4}\,{\left( \frac{log\left( x\right) }{2}+\%c\right) }^{2}\leqno{(\%o2) }
(%i3)	method;
bernoulli\leqno{(\%o3) }
(%i4)	de1:'diff(y,x)+y/x=-x*y^2;
\frac{d}{d\,x}\,y+\frac{y}{x}=-x\,{y}^{2}\leqno{(\%o4) }
(%i5)	ode2(de1,y,x);
y=\frac{1}{x\,\left( x+\%c\right) }\leqno{(\%o5) }
3.8.3.6 Уравнения высших порядков

В Maxima при помощи функции ode2 возможно прямое решение лишь линейных дифференциальных уравнений второго порядка При решении выполняется проверка, является ли заданное уравнение линейным, т.е. возможно ли его преобразование к форме y'' + p(x)y + q(x)y = r(x).

Первоначально отыскивается решение однородного уравнения вида y'' + p(x)y + q(x)y = 0 в форме y = k_1 y_1 + k_2 y_2 (k_1,k_2 — произвольные постоянные). Если r(x) \ne 0, отыскивается частное решение неоднородного уравнения методом вариации постоянных. . .

3.8.3.7 Уравнения с постоянными коэффициентами

Решения однородных уравнений вида y'' + a * y' + b * y = 0 отыскиваются по результатам решения характеристического уравнения r^2 + ar + b = 0. Возможны следующие варианты комбинаций его корней r_1, r_2:

  • r_1, r_2 — вещественные и различные. Решение представляется в форме y=k_1 \cdot e^{r_1 \cdot x} + k_2 \cdot e^{r_2 \cdot x}.
  • r_1, = r_2 — корни вещественные одинаковые. Решение представляется в форме y= (k_1 + k_2 \cdot x) e^{r_1 \cdot x}.
  • r_1, r_2 — комплексные (сопряжённые). Если r_1 = \alpha + \beta i ,\ r_2 = \alpha - \beta i, то решение представляется в виде y = e^{\alpha x}(k_1 \cos \, \beta x + k_2 \sin \beta x)

Общее решение неоднородного уравнения с постоянными коэффициентами представляется в виде суммы общего решения соответствующего однородного уравнения и какого-либо частного решения неоднородного.

Примеры решения ОДУ второго порядка с постоянными коэффициентами:

Неоднородное уравнение общего вида:

(%i1)	de1:2*'diff(y,x,2)-'diff(y,x)-y=4*x*exp(2*x);
2\,\left( \frac{{d}^{2}}{d\,{x}^{2}}\,y\right) -\frac{d}{d\,x}\,y-y=4\,x\,{e}^{2\,x}\leqno{(\%o1) }
(%i2)	ode2(de1,y,x);
y=\frac{\left( 20\,x-28\right) \,{e}^{2\,x}}{25}+\%k1\,{e}^{x}+\%k2\,{e}^{-\frac{x}{2}}\leqno{(\%o2) }

Частное решение неоднородного уравнения сохраняется в переменной yp:

(%i3)	yp;
\frac{\left( 20\,x-28\right) \,{e}^{2\,x}}{25}\leqno{(\%o3) }

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

(%i1)	de2:'diff(y,x,2)-2*'diff(y,x)+y=x*exp(x);
\frac{{d}^{2}}{d\,{x}^{2}}\,y-2\,\left( \frac{d}{d\,x}\,y\right) +y=x\,{e}^{x}\leqno{(\%o1) }
(%i2)	ode2(de2,y,x);
y=\frac{{x}^{3}\,{e}^{x}}{6}+\left( \%k2\,x+\%k1\right) \,{e}^{x}\leqno{(\%o2) }
(%i3)	yp;
\frac{{x}^{3}\,{e}^{x}}{6}\leqno{(\%o3) }

Неоднородное уравнение с комплексными корням:

(%i4)	de3:'diff(y,x,2)+y=x*sin(x);
\frac{{d}^{2}}{d\,{x}^{2}}\,y+y=x\,sin\left( x\right) \leqno{(\%o4) }
(%i5)	ode2(de3,y,x);
y=\frac{2\,x\,sin\left( x\right) +\left( 1-2\,{x}^{2}\right) \,cos\left( x\right) }{8}+\%k1\,sin\left( x\right) +\%k2\,cos\left( x\right) \leqno{(\%o5) }
(%i6)	yp;
\frac{2\,x\,sin\left( x\right) +\left( 1-2\,{x}^{2}\right) \,cos\left( x\right) }{8}\leqno{(\%o6) }
3.8.3.8 Уравнения с переменными коэффициентами

Аналогично уравнению с постоянными коэффициентами, общее решение однородного уравнения y''+p(x)y'+q(x)y=0 имеет вид y=C_1 y_1 + C_2 y_2, где y_1,y_2 — линейно независимые решения однородного ОДУ (фундаментальная система решений).

Общее решение неоднородного уравнения y''+p(x)y'+q(x)y=f(x) с непрерывными коэффициентами и правой частью имеет вид y = y_0 + Y , где y_0 — общее решение соответствующего однородного уравнения, Y — частное решение неоднородного.

Если известна фундаментальная система решений однородного уравнения, общее решение неоднородного может быть представлено в форме:

y = C_1(x) \cdot y_1 + C_2(x) \cdot y_2 ,
где C_1(x),C_2(x) определяются методом вариации произвольных постоянных.

Пример:

(%i3)	difur:x^2*'diff(y,x,2)-x*'diff(y,x)=3*x^3;
{x}^{2}\,\left( \frac{{d}^{2}}{d\,{x}^{2}}\,y\right) -x\,\left( \frac{d}{d\,x}\,y\right) =3\,{x}^{3}\leqno{(\%o3) }
(%i4)	ode2(difur,y,x);
y={x}^{3}+\%k2\,{x}^{2}-\frac{\%k1}{2}\leqno{(\%o4) }

Пример:

(%i3)	difur1:x*'diff(y,x,2)+'diff(y,x)=x^2;
x\,\left( \frac{{d}^{2}}{d\,{x}^{2}}\,y\right) +\frac{d}{d\,x}\,y={x}^{2}\leqno{(\%o3) }
(%i4)	ode2(difur1,y,x);
y=\%k1\,log\left( x\right) +\frac{{x}^{3}}{9}+\%k2\leqno{(\%o4) }
3.8.3.9 Уравнение Эйлера

Однородное уравнение x^2y''+axy'+by = 0 называется уравнением Эйлера. Его общее решение имеет вид y = k_1 x^{r_1} + k_2 x^{r_2}, где r_1 и r_2 — решения уравнения r(r _ 1) + ar + b = 0.

В случае, когда уравнение r(r - 1) + ar + b = 0 имеет двукратный корень r, решение представляется в форме y = k_1 x^r +k_2 ln(x) x^r.

Неоднородное уравнение типа Эйлера сводится к однородному с постоянными коэффициентами путём соответствующей замены.

Пример:

(%i1)	du:x^2*'diff(y,x,2)+x*'diff(y,x)+y=1;
{x}^{2}\,\left( \frac{{d}^{2}}{d\,{x}^{2}}\,y\right) +x\,\left( \frac{d}{d\,x}\,y\right) +y=1\leqno{(\%o1) }
(%i2)	ode2(du,y,x);
y={\sin(\log(x))}^{2}+\%k1 \sin(\log(x)) +{\cos(\log(x))}^{2}+\%k2 \cos(\log(x)) \leqno{(\%o2)}
3.8.3.10 Граничные задачи

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

Синтаксис вызова: bc2 (solution, xval1, yval1, xval2, yval2), где xval1 — значение x в первой граничной точке, yval1 — значение решения y в той же точке (обе величины задаются в форме x = a,y = b).

Пример использования ode2 и bc2:

(%i1)	'diff(y,x,2) + y*'diff(y,x)^3 = 0;
\frac{{d}^{2}}{d\,{x}^{2}}\,y+y\,{\left( \frac{d}{d\,x}\,y\right) }^{3}=0\leqno{(\%o1) }
(%i2)	ode2(%,y,x);
\frac{{y}^{3}+6\,\%k1\,y}{6}=x+\%k2\leqno{(\%o2) }
(%i3)	bc2(%,x=0,y=1,x=1,y=3);
\frac{{y}^{3}-10\,y}{6}=x-\frac{3}{2}\leqno{(\%o3) }