русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-23; просмотров: 1930; Нарушение авторских прав


 

Цель работы

 

Ознакомиться с основными алгоритмами численного решения простейших дифференциальных уравнений – Эйлера и Рунге-Кутта и выполнить приближенное интегрирование заданного дифференциального уравнения.

 

Методические указания

 

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

Пусть необходимо найти решение уравнения

(10.1)

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

.

Обозначив , получаем

(10.2)

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

(10.3)

Этот метод решения обыкновенных дифференциальных уравнений называется методом ломаных Эйлера. Он является самым простым методом, позволяющим производить вычисления без особых ухищрений и, поэтому, имеет низкую точность (первого порядка ~ h)и производительность (плата за простоту!).

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



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

 

1. Через исходную точку с координатами , проходит кривая y(x) ординату которой следует определить в конце шага, т.е. для значения аргумента x0+Dx. Найдем величину F(x0,y0), которая определит тангенс угла наклона касательной к графику в исходной точке, а значит позволит построить касательную AB и рассчитать приращение (так же как и в методе Эйлера) .

2. Движение по касательной АВ осуществляется до точки . В этой точке рассчитывается функция F(x,y) и определяется новое направление касательной DE к ее графику. Проведем из точки А прямую АН параллельную касательной DE и рассчитаем длину отрезка СН: .

3. Определим точку и, рассчитав значение функции F(x,y) в этой точке, найдем положение касательной PR к графику. Проведем из точки А прямую АL параллельную касательной PR и рассчитаем длину отрезка СL: .

4. Рассчитав значение функции F(x,y) в точке L, определим направление касательной LQ и из начальной точки А проведем прямую АМ параллельную этой касательной. Длина отрезка СМ определится формулой: .

5. Определяем положение точки N, близкой к ординате истинной кривой путем нахождения среднего значения длин отрезков CB, CH, CL и CM. При этом слагаемые в сумме следует выбирать с различным весом – с удвоенным вкладом берутся отрезки, которые отсекаются линиями параллельными касательным к точкам в центре шага:

(10.4)

Реализация методов Эйлера и Рунге – Кутта четвертого порядка в среде MathCAD в матричной форме и методом составления программ-функций представлена в приложении. Из сравнения результатов с известным аналитическим решением легко видеть, что точность метода Рунге-Кутта существенно выше.

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

 

Задание к лабораторной работе

В соответствии с дифференциальным уравнением своего варианта из лабораторной работы №8 необходимо произвести расчет решения методами Эйлера и Рунге-Кутта, выбирая различную величину шага h. При этом один из методов реализовать в матричной форме, а другой с помощью программы-функции. Результат сравнить с аналитическим решением, полученным в предыдущей работе. Сравнение провести в табличной или графической формах и оценить погрешность.

Пример 1

 

 

 

Пример 2.

 

 

 

Вопросы для самоконтроля

 

1. В чем заключаются преимущества приближенных численных методов решения дифференциальных уравнений?

2. Какова идея и геометрическая интерпретация метода ломаных Эйлера?

3. Как можно запрограммировать алгоритм этого метода?

4. Каковы преимущества и недостатки метода Эйлера?

5. В чем заключается метод Рунге-Кутта 4 порядка? Какова его точность?

6. Какова геометрическая интерпретация метода Рунге-Кутта?




<== предыдущая лекция | следующая лекция ==>
Методические указания | Решение задач линейного программирования


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.215 сек.