Лабораторная работа: Решение обыкновенных дифференциальных уравнений

> isolate(%,y(x));

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

По умолчанию команда dsolve ( ) сначала пытается найти общее реше­ние в явном виде, и если таковое не удается найти, то решение выдается в неявном виде (конечно, при условии его существования). Можно "озадачить" Maple поиском общего решения в явном виде, используя опцию explicit = true (по умолчанию используется explicit = false):

> dsolve(ex4,y(x),explicit=true);


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

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

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

> Order:=4;

> eqq:=(D@@2)(y)(x)+(a*x^2)*D(y)(x)+y(x)=0;

> dsolve(eqq,y(x),type=series);

Заметим, что в решении дифференциального уравнения второго порядка, представленном рядом Тейлора, в качестве постоянных используются значения искомой функции и ее первой производной в точке х=0: у(0), D(y)(0).

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

> eqn1:=diff(y(x),x$2)+k^2*y(x)=0;

Задача Коши для этого дифференциального уравнения второго порядка требует задания в нулевой точке значения неизвестной функции и ее первой производной. Ее решение представлено ниже:

> dsolve({eqn1,y(0)=0,D(y)(0)=1},y(x));

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

> dsolve({eqn1,y(0)=0,y(1)=1},y(x));

Начальные или краевые условия задаются в виде уравнений, в левой части которых определен задаваемый параметр (значение неизвестной функ­ции или ее производной необходимого порядка) в соответствующей точке, а в правой части значение этого параметра. При задании производных в начальных или краевых условиях следует использовать оператор D — команда diff ( ) здесь не употребляется.

Если точное решение задачи Коши или краевой задачи системой Maple не найдено, а приближенное решение в виде ряда Тейлора нас не устраивает, то можно построить численное решение, опять-таки с использованием все той же команды dsoive ( ). Для этого задают опцию type = numeric, а с помощью опции method = метод определяют используемый для построения численного решения метод. Параметр метод принимает одно из значений, представленных в табл. 1.

Таблица 1. Значения опции method при численном решении дифференциальных уравнений.

Значение

Описание

Rkf45

Метод Рунге-Кутта-Фальберга порядка 4-5

Dverk78

Метод Рунге-Кутта порядка 7-8

К-во Просмотров: 202
Бесплатно скачать Лабораторная работа: Решение обыкновенных дифференциальных уравнений