Название: Решение обыкновенных дифференциальных уравнений
Вид работы: лабораторная работа
Рубрика: Информатика и программирование
Размер файла: 52.82 Kb
Скачать файл: referat.me-134218.docx
Краткое описание работы: Команды, используемые при решении обыкновенных дифференциальных уравнений в системе вычислений Maple. Произвольные константы решения дифференциального уравнения второго порядка, представленном рядом Тейлора. Значения опции method при численном решении.
Решение обыкновенных дифференциальных уравнений
Кафедра: Информационные Технологии
Лабораторная Работа
На тему: РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
Москва, 2008 год
РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
Цели работы:
· знать команды, используемые при решении обыкновенных дифференциальных уравнений в системе вычислений Maple;
· уметь применять указанные команды для решения математических задач.
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Решение обыкновенных дифференциальных уравнений.
С помощью команды dsolve ( ) можно получить аналитическое решение дифференциального уравнения, а можно и сформировать процедуру построения численного решения задачи Коши, если система Maple не сможет найти общее решение в аналитическом виде. Наиболее общий синтаксис вызова команды решения дифференциального уравнения следующий:
dsolve (уравнения, неизвестные, [опции]);
Параметром уравнения задается одно дифференциальное уравнение или система дифференциальных уравнений. В последнем случае все уравнения системы должны быть представлены в виде множества (их список через запятую следует заключить в фигурные скобки). Параметр неизвестные определяет неизвестную функцию дифференциального уравнения или неизвестные функции системы дифференциальных уравнений, которые, как и сами уравнения системы, должны быть представлены в виде множества. Необязательный параметр опции, определяемый в виде ключевое_значение = значение, позволяет задать методы и форму представления решения.
Чтобы задать производную искомой функции в дифференциальном уравнении используют команду diff ( ) или оператор D, причем саму неизвестную функцию следует определять с явным указанием независимой переменной, например у(х). Оператор D определяет операцию дифференцирования и имеет следующий синтаксис:
(D@@n) (функция) (переменная);
В этой записи n представляет целое число, определяющее порядок производной, параметр функция – используемый идентификатор функции, а параметр переменная – независимую переменную функции. Например, производная второго порядка функции f (х) с использованием этого оператора задается так:
(D@@ 2) (f) (x);
Ниже представлены несколько примеров задания дифференциальных уравнений и систем дифференциальных уравнений:
> ex1:=diff(y(x),x$3)+k^2*y(x)=0;
> ex2:=(D@@3)(y)(x)+k^2*y(x)=cos(k1*x);
> sys1:={D(y1)(x)=a[1,1]*y1(x)+a[1,2]*y2(x),
D(y2)(x)=a[2,1]*y1(x)+a[2,2]*y2(x)};
Заметим, что в приведенных примерах и уравнения, и система уравнений сохраняются в переменных Maple. Как отмечалось ранее, это достаточно распространенный прием, позволяющий использовать в дальнейшем заданные уравнения простой ссылкой на обычную переменную.
Решим одно из известных уравнений:
> ex3:=diff(y(x),x$2)+k^2*y(x)=0;
> dsolve(ex3,y(x));
Найдено общее решение дифференциального уравнения, в котором переменные С1 и С2 – это сгенерированные Maple специальные переменные, представляющие произвольные константы общего решения дифференциального уравнения второго порядка. Этот пример показывает, что при отсутствии каких-либо опций система Maple пытается найти точное общее решение в явном виде. Если в явном виде решения не существует, то система попытается найти его в неявном виде, как видно из следующего примера:
> ex4:=diff(y(x),x)=-sqrt(x^2-y(x))+2*x;
> dsolve(ex4,y(x));
> 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 |
По умолчанию (если не задана опция method) применяется метод Рунге-Кутта-Фальберга порядка 4-5. При использовании численного решения следует помнить, что все параметры дифференциального уравнения (символьные константы) должны быть определены. Например, для задачи Коши уравнения eqn1 предыдущего примера следует задать численное значение для параметра k.
Численное решение строится в форме процедуры Maple, поэтому следует некоторой переменной присвоить результат построения командой dsolve ( ) численного решения в виде процедуры. В дальнейшем имя этой переменной можно использовать как имя процедуры для вычисления значения решения задачи Коши в некоторой точке, соответствующей значению независимой переменной функции решения. Это значение передается в процедуру как ее параметр – после имени процедуры в круглых скобках. Следующий пример демонстрирует построение численного решения задачи Коши и его использование.
> eqn1:=diff(y(x),x$2)+k^2*y(x)=0;
Переменной f присваиваем результат численного решения задачи Коши для дифференциального уравнения второго порядка (в нулевой точке задается значение неизвестной функции и ее первой производной):
> F:=dsolve({eqn1,y(0)=0,D(y)(0)=1},y(x),type=numeric);
Если не присвоить параметру k конкретного числового значения, то попытка получить значение решения в точке, например х = 1, приведет к ошибке:
> F(1);
Error, (in dsolve/numeric/rkf45) cannot evaluate boolean: 2.+abs(.2511886433e-1-.2016799760e-5*k^2-.3377712687e-4*k^2*(.2318664400e-1-.3700729218e-5*k^2)+.6309573448e-5*k^2*(.2511886433e-1-.6603721651e-5*k^2)) <= 0.
Следует обязательно определить все символьные параметры дифференциального уравнения числовыми значениями перед использованием численного решения:
> k:=1:
> F(0);F(1);F(2);
Обратите внимание, в каком виде построенная процедура численного решения выдает результаты – в виде списка значений независимой переменной, самой функции и ее производных (до порядка на единицу меньше порядка самого уравнения).
Задачи для самостоятельного решения.
1. Решить уравнения:
1.1. ; 1.13.
;
1.2. ; 1.14.
;
1.3. ; 1.15.
;
1.4. ; 1.16.
;
1.5. ; 1.17.
;
1.6. ; 1.18.
;
1.7. ; 1.19.
;
1.8. ; 1.20.
;
1.9. ; 1.21.
;
1.10. ; 1.22.
1.11. ; 1.23.
;
1.12. ; 1.24.
Варианты заданий.
. 1.1; 1.2;
. 1.12; 1.21;
. 1.3; 1.4;
. 1.13; 1.22
. 1.5; 1.6;
. 1.14; 1.23;
. 1.7; 1.8;
. 1.15; 1.24;
. 1.9; 1.18;
. 1.16; 1.14;
. 1.10; 1.19;
. 1.17; 1.15;
. 1.11; 1.20;
Контрольные вопросы.
1. Команда dsolve ( ), ее предназначение и синтаксис.
2. Оператор D, его предназначение и синтаксис.
3. Команда isolate ( ), ее предназначение и синтаксис.
4. Какая опция в команде dsolve ( ) используется для построения приближенного решения дифференциального уравнения в форме ряда Тейлора?
5. Как решить задачу Коши с помощью команды dsolve ( )?
6. Как решить краевую задачу с помощью команды dsolve ( )?
7. Можно ли с помощью команды diff ( ) задавать производные в начальных или краевых условиях?
8. Как с помощью команды dsolve ( ) построить численное решение дифференциального уравнения?
Литература
1. Говорухин В.Н., Цибулин В.Г. Введение в Maple. Математический пакет для всех. – М.: Мир, 1997. – 208 с.
2. Дьяконов В.П. Математическая система Maple V. – М.: Издательство “Солон”,1998.
3. Двайт Г.Б. Таблицы интегралов и другие математические формулы. – М.: Наука. Главная редакция физико-математической литературы, 1983. – 176 с.
4. Матросов А.В. Maple 6. Решение задач высшей математики и механики. – СПб.:БХВ - Петербург, 2001.– 528 с.
5. Манзон Б.М. Maple V Power Edition – М.: Информационно-издательский дом “Филинъ”,1998г.
Похожие работы
-
Построение графиков функций. Решение нелинейных уравнений и систем нелинейных уравнений
Методика и основные этапы построения ранжированных переменных, сферы и особенности их практического применения. Порядок построения графиков в декартовой системе. Приведение примеров решение нелинейных уравнений и их систем при помощи решающего блока.
-
Решение дифференциальных уравнений. Обзор
Обзор методов решения в Excel. Рекурентные формулы метода Эйлера. Метод Рунге-Кутта четвертого порядка для решения уравнения первого порядка. Метод Эйлера с шагом h/2. Решение дифференциальных уравнений с помощью Mathcad. Модифицированный метод Эйлера.
-
Решение уравнений, неравенств и их систем
Команды, используемые при решении уравнений и их систем, неравенств и их систем в системе аналитических вычислений Maple. Выражения, соединенные знаком равенства. Проверка типа переменной. Решение одного уравнения относительно заданной переменной.
-
ЭВМ с использованием математического пакета MathCad в среде Windows 98 для решения системы дифференциальных уравнений
Решение системы дифференциальных уравнений, заданной в нормальной форме Коши. Определение аналитических зависимостей изменения переменных состояния системы с использованием преобразования Лапласа. Численный метод решения системы c помощью Mathcad.
-
ЭВМ с использованием математического пакета MathCad в среде Windows 98 для решения дифференциального уравнения n-го порядка
Решение дифференциального уравнения N-го порядка методом интегрирования при помощи характеристического уравнения, методом интегрирования и операторным методом для значений аргументов при заданных начальных условиях и нулевых уравнения 4–го порядка.
-
Разработка программы поиска решения системы дифференциальных уравнений двумя методами: Рунге-Кутта и Рунге-Кутта-Мерсона
Составление программы на алгоритмическом языке Turbo Pascal. Разработка блок-схемы алгоритма её решения. Составление исходной Pascal-программы и реализация вычислений по составленной программе. Применение методов Рунге-Кутта и Рунге-Кутта-Мерсона.
-
Дифференцирование, интегрирование, вычисление пределов, сумм, рядов функций и математических выражений в системе Maple
Команды, используемые при вычислении обыкновенных и частных производных аналитического выражения по одной или нескольким переменным в системе вычислений Maple, при интегрировании аналитических выражений и при вычислении пределов, сумм, рядов функций.
-
Методы и алгоритмы компьютерного решения дифференциальных уравнений
Решение линейных дифференциальных уравнений численными и символьными методами в рамках пакета компьютерной математики MathCAD. Сравнения результов решений и применение их при исследовании функционирования автоматических систем и электрических агрегатов.
-
Решение математических задач с использованием программного пакета MathCad
Дифференциальные уравнения как уравнения, в которых неизвестными являются функции одного или нескольких переменных, причем в уравнения входят не только сами функции, но и их производные. Решение операторным методом, с помощью рядов, методом Эйлера.
-
Решение краевых задач в среде виртуальной гибридной машины
Исследование конечно-разностных методов решения краевых задач путем моделирования в среде пакета Micro-Cap V. Оценка эффективности и сравнительной точности этапов получения решений методом математического, аналогового моделирования и численными расчетами.