Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Библиотека функций MATLAB’а



 

Важным средством, позволяющим ускорить разработку программ, являются библиотеки стандартных программ. Есть такая библиотека и в MATLAB’е.

Надо научиться находить в HELP’е описания нужных программ. В частности в конце этого занятия вам будет предложено написать программу решения дифференциальных уравнений по методу Эйлера. Написав свою программу, вам надо будет найти функцию MATLAB’а, решающую эту же задачу и используя ее сравнить решения полученные вашей программой и библиотечной

 

Что еще почитать

 

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

Надо сказать, что такой литературы, которая учила бы принципам программирования, а не синтаксическим правилам какого-либо языка программирования не так уж много. «Программистов часто учат программировать и редко – отладке» (ван Тассел).

Могу порекомендовать следующие книги, в которых вопросы отладки и тестирования подробно рассмотрены:

  1. Ван Тассел Д. Стиль, разработка, эффективность, отладка и испытания программ. 1981
  2. Керниган, Пайк. Практика программирования. 2004
  3. Иванова Г.С. Технология программирования. 2002

 

 

Задания

 

Написать программу решения дифференциальных уравнений по методу Эйлера. При отладке и тестировании вести учет ошибок. Получить решение этой же задачи, используя библиотечную функцию MATLAB’а. Сравнить полученные результаты

 

Задача Коши для уравнения первого порядка
Задача Коши для уравнения высшего порядка

 

 

Справочная информация

Обыкновенное дифференциальное уравнение 1-го порядка

связывает независимую переменную t,искомую функцию y и ее производную. Решение дифференциальногоуравнениязаключается в отысканиифункции y = y(t), обращающей это уравнение в тождество на конечном или бесконечном интервале (a, b). Различают общее и частные решения дифференциального уравнения. Общее решение имеет вид y = y(t, C), где C - произвольная постоянная интегрирования. Его графическим отображением является семейство кривых (см. рис.1), называемых интегральными. Каждая интегральная кривая является отображением частного решения, соответствующего своему значению постоянной C. Для выделения частного решения из множества общего решения необходимо задать начальное условие

.

Такая постановка задачи решения дифференциальных уравнений называется задачей Коши.

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

Задача Коши для нормальной системы обыкновенных дифференциальных уравнений записывается в виде

,

или в матричной форме следующим образом

, ,

где

, , .

Система дифференциальных уравнений связывает независимую переменную x, искомые функции y1, y2, ..., yn и их первые производные. В данном случае решение задачи Коши заключается в отыскании функций y1 = y1(x), y2 = y2(x),..., yn = yn(x), обращающих каждое уравнение системы в тождество на конечном или бесконечном интервале (a, b) и удовлетворяющих начальным условиям.

Такая форма записи задачи Коши является канонической для систем обыкновенных дифференциальных уравнений. К ней могут быть приведены как любые другие формы представления систем дифференциальных уравнений, разрешенных относительно старших производных, так и аналогичные дифференциальные уравнения высших порядков. Приведение дифференциальных уравнений высших порядков к нормальной системе дифференциальных уравнений осуществляется по следующей схеме. Если дана задача Коши следующего вида

,

, , , … , ,

то замена

, , , … , ,

приводит ее к

,

что является задачей Коши для нормальной системы дифференциальных уравнений.

Для решения такой задачи Коши используются те же методы, что для обыкновенных дифференциальных уравнений 1-го порядка. Это обуславливается тем, что матричная форма записи задачи Коши для нормальной системы полностью совпадает с ее формулировкой для этих уравнений. Единственным отличием является то, что вместо функций y(t) и f(t,y) используются вектор-функции y и f, состоящие из n функций y1(t), y2(t),...,yn(t) и f1(t,y1,...,yn), f2(t,y1,...,yn),..., fn(t,y1,...,yn), соответственно. При этом расчетные схемы методов и оценки их погрешностей сохраняются.

 

 

Метод Эйлера

 

Он является старейшим методом решения задачи Коши и заключается в последовательном применении следующих формул

,

,

,

геометрическая интерпретация которых представлена на рис.3. В точке t0 вычисляется значение производной dy/dt через f(t,y), которое определяет угол наклона касательной к графику точного решения задачи Коши. Следующая точка численного решения определяется как точка на этой касательной с абсциссой t1 = t0 + h. В компактном виде эти соотношения записываются следующим образом

,

.

Метод Эйлера - самый простой метод численного интегрирования. Он относится к методам первого порядка точности, поскольку его решение совпадает с истинным только в том случае, когда истинное решение является линейной функцией y = a1 + a2t. Его погрешность ek на каждом шаге пропорциональна величине h2. Это обусловлено тем, что в качестве направления, определяющего положение следующей точки численного решения, используется касательная в крайней левой точке каждого отрезка [tk,tk+1]. Из рис.3 видно, что для получения более точного численного решения надо использовать некоторое промежуточное направление между направлениями касательных в крайних точках рассматриваемого отрезка.

Соотношения метода Эйлера для нормальной системы в матричной форме имеют вид

,

.

или в развернутой форме

, .

Геометрическая интерпретация работы метода Эйлера решения задачи Коши для нормальной системы идентична его геометрической интерпретации для дифференциальных уравнений 1-го порядка. Однако в данном случае движение осуществляется вдоль некоторойгиперкривойв (n+1)-мерном пространстве переменных t, y1, y2,...,yn.

 

 




©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.