48816 (Решение обыкновенных дифференциальных уравнений)

2016-07-28СтудИзба

Описание файла

Документ из архива "Решение обыкновенных дифференциальных уравнений", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48816"

Текст из документа "48816"

Кафедра: Информационные Технологии

Лабораторная Работа

На тему: РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

Москва, 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;

Контрольные вопросы.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5166
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее