Численные методы решения дифференциального уравнения

Автор работы: Пользователь скрыл имя, 20 Марта 2014 в 18:57, курсовая работа

Описание работы

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

Файлы: 1 файл

Курсовая.doc

— 461.50 Кб (Скачать файл)

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования 
«Алтайский государственный технический университет

им. И.И. Ползунова»

 

БИЙСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ (филиал)

 

Кафедра информатики и вычислительной математики

 

 

 

УДК 681.3.06

 

Курсовая работа сдана на оценку

                     ______________________________

 

Руководитель

Работы                 ______________________________

                                                                          подпись, должность, и.о.фамилия

 

 

Численные методы решения дифференциального уравнения

 

 

 

 

 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

К КУРСОВОЙ РАБОТЕ

по дисциплине «Информатика»

 

 

Выполнил

Студент гр.                                                                                             .

подпись   и.о.фамилия

 

Проверил

                                                                    . 

подпись   и.о.фамилия    

 

 

 

 

Бийск 2010

 

Содержание

 

 

Введение

В различных сферах технических и даже экономических отраслей приходится достаточно часто сталкиваться с математическими задачами, для которых не представляется возможным описать точное решение классическими методами или это решение крайне трудно реализовать на практике.

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

Численные методы не позволяют найти общее решение: полученное решение является частным. Но одним из многочисленных плюсов данных методов можно назвать высокую степень применимости к обширным классам уравнений и всем типам вопросов и заданий к ним. С появлением электронных вычислительных машин численные методы стали одними из основных технологий решения определенных практических задач решения ОДУ.

Целью курсовой работы является приобретение опыта решения дифференциального уравнения.

Задание предполагает:

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

 

1 Теоретическая часть

1.1 Обыкновенные дифференциальные уравнения

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

В дифференциальное уравнение n-го порядка в качестве неизвестных величин входят функция y(x) и ее первые n производных по аргументу x

j( x, y, y1, ... y(n) )=0.               1.1

Из теории ОДУ известно, что уравнение (1.1) эквивалентно системе n уравнений первого порядка

jk(x, y1, y1’ ,y2 ,y2 ’, ... ,yn ,yn ’)=0.            1.2

где k=1, ... , n.

Уравнение (1.1) и эквивалентная ему система (1.2) имеют бесконечное множество решений. Единственные решения выделяют с помощью дополнительных условий, которым должны удовлетворять искомые решения. В зависимости от вида таких условий рассматривают три типа задач, для которых доказано существование и единственность решений.

 Первый  тип – это задачи Коши, или  задачи с начальными условиями. Для таких задач кроме исходного  уравнения (1.1) в некоторой точке x0 должны быть заданы начальные условия, т.е. значения функции y(x) и ее производных

y(x0)=y0’ , y’(x0)=y10, ... , y(n-1)(x0)=yn-1,0.

Для системы ОДУ типа (1.2) начальные условия задаются в виде

y1(x0)=y10 , y2(x0)=y20, ... , yn(x0)=yn0.             1.3

Ко второму типу задач относятся так называемые граничные, или краевые задачи, в которых дополнительные условия задаются в виде функциональных соотношений между искомыми решениями. Количество условий должно совпадать с порядком n уравнения или системы. Если решение задачи определяется в интервале x є [x0 ,xk], то такие условия могут быть заданы как на границах, так и внутри интервала. Минимальный порядок ОДУ, для которых может быть сформулирована граничная задача, равен двум.

Третий тип задач для ОДУ – это задачи на собственные значения. Такие задачи отличаются тем, что кроме искомых функций y(x) и их производных в уравнения входят дополнительно m неизвестных параметров l1,l2,¼,хm, которые называются собственными значениями. Для единственности решения на интервале [x0,xk] необходимо задать m+n граничных условий. В качестве примера можно назвать задачи определения собственных частот, коэффициентов диссипации, структуры электромагнитных полей и механических напряжений в колебательных системах, задачи нахождения фазовых коэффициентов, коэффициентов затухания, распределения напряженностей полей волновых процессов и т.д.

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

Большинство методов решения ОДУ основано на задаче Коши, алгоритмы и программы для которой рассматриваются в дальнейшем.

 

1.2 Метод Рунге-Кутта

Все методы Рунге-Кутта являются одношаговыми методами: для получения решения yi+1 при xi+1 надо знать решение в одной точке (yi, xi) . Это позволяет начать решение используя начальные условия. Указанная особенность допускает изменение шага интегрирования в любой точке в процессе счета, что дает возможность строить численные алгоритмы с автоматическим выбором шага.

Методы Рунге-Кутта обладают следующими свойствами:

1. Эти методы являются одноступенчатыми: чтобы найти уm+1, нужна информация о предыдущей точке xm,ym.

2. Они согласуются с рядом Тейлора вплоть до членов порядка hp, где степень р различна для различных методов и называется порядковым номером или порядком метода.

3. Они не требуют вычисления производных от f(x,y), а требуют вычисления самой функции.

Рассмотрим сначала геометрическое построение и выведем некоторые формулы на основе геометрических аналогий. После этого мы подтвердим полученные результаты аналитически.

 Предположим, нам известна точка xm,ym на искомой кривой. Тогда мы можем провести прямую линию с тангенсом угла наклона у¢m=f(xm,ym), которая пройдет через точку xm,ym. Это построение показано на рис.1, где кривая представляет собой точное, но конечно неизвестное решение уравнения, а прямая линия L1 построена так, как это только что описано.

Рис. 1

Тогда следующей точкой решения можно считать ту, где прямая L1 пересечет ординату, проведенную через точку x=xm+1=xm+h.

Уравнение прямой L1 выглядит так: y=ym+y¢m(x-xm) так как y¢=f(xm,ym) и кроме того, xm+1=xm+h тогда уравнение примет вид

ym+1=ym+h*f(xm,ym)                 1.4

Ошибка при x=xm+1 показана в виде отрезка ε. Очевидно, найденное таким образом приближенное значение согласуется с разложением в ряд Тейлора вплоть до членов порядка h, так что ошибка ограничения равна 
ε t=Кh2

Хотя точка на рис. 1 была показана на кривой, в действительности ym является приближенным значением и не лежит точно на кривой.

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

Рассмотрим исправленный метод Эйлера и модификационный метод Эйлера. В исправленном методе Эйлера мы находим средний тангенс угла наклона касательной для двух точек: xm,ym и xm+h,ym+hy¢m. Последняя точка есть та самая, которая в методе Эйлера обозначалась xm+1,ym+1. Геометрический процесс нахождения точки xm+1,ym+1 можно проследить по рис.2. С помощью метода Эйлера находится точка xm+h,ym+hy¢m, лежащая на прямой L1. В этой точке снова вычисляется тангенс, дает прямую L. Наконец, через точку xm,ym мы проводим прямую L, параллельную L. Точка, в которой прямая L пересечется с ординатой, восстановленной из x=xm+1=xm+h, и будет искомой точкой xm+1,ym+1.

Тангенс угла наклона прямой L и прямой L равен

Ф(xm,ym,h)=½[f(xm,ym)+f(xm+h,ym+y¢mh)]             1.5

где y¢m=f(xm,ym)                 1.6

Уравнение линии L при этом записывается в виде

y=ym+(x-xm)Ф(xm,ym,h),

так что

ym+1=ym+hФ(xm,ym,h).             1.7

Соотношения 1.5, 1.6, 1.7 описывают исправленный метод Эйлера.

Рис. 2

 

Чтобы выяснить, насколько хорошо этот метод согласуется с разложением в ряд Тейлора, вспомним, что разложение в ряд функции f(x,y) можно записать следующим образом:

f(x,y)=f(xm,ym)+(x-xm)¶f/¶x+(y-ym)¶f/¶x+¼           1.8

где частные производные вычисляются при x=xm и y=ym.

Подставляя в формулу 1.8 x=xm+h и y=ym+hy¢m и используя выражение 1.6 для y¢m, получаем

f(xm+h,ym+hy¢m)=f+hfx+hfy+O(h2),

где снова функция f и ее производные вычисляются в точке xm,ym. Подставляя результат в 1.5 и производя необходимые преобразования, получаем

Ф(xm,ym,h)=f+h/2(fx+fy)+O(h2).

Подставим полученное выражение в 1.7 и сравним с рядом Тейлора

ym+1=ym+hf+h2/2(fx+fy)+O(h3).

Как видим, исправленный метод Эйлера согласуется с разложением в ряд Тейлора вплоть до членов степени h2, являясь, таким образом, методом Рунге-Кутты второго порядка.

Рассмотрим модификационный метод Эйлера. Рассмотрим рис.3 где первоначальное построение сделано так же, как и на рис.2. Но на этот раз мы берем точку, лежащую на пересечении этой прямой и ординатой x=x+h/2. На рисунке эта точка образована через Р, а ее ордината равна y=ym+(h/2)y¢m. Вычислим тангенс угла наклона касательной в этой точке

Ф(xm,ym,h)=f+(xm+h/2,ym+h/2*y¢m),             1.9

где y¢m=f(xm,ym)                1.10

Прямая с таким наклоном, проходящая через Р, обозначена через L*. Вслед за тем, мы проводим через точку xm,ym прямую параллельную L*, и обозначаем ее через L0. Пересечение этой прямой с ординатой x=xm+h и даст искомую точку xm+1,ym+1. Уравнение прямой можно записать в виде y=ym+(x-xm)Ф(xm,ym,h),

где Ф задается формулой 1.6. Поэтому

ym+1=ym+hФ(xm,ym,h)                 1.11

Соотношения 1.9, 1.10, 1.11 описывают так называемый модификационный метод Эйлера и является еще одним методом Рунге-Кутта второго порядка. Обобщим оба метода. Заметим, что оба метода описываются формулами вида

ym+1=ym+hФ(xm,ym,h)            1.12

и в обоих случаях Ф имеет вид

Ф(xm,ym,h)=a1f(xm,ym)+a2f(xm+b1h,ym+b2hy¢m),         1.13

где y¢m=f(xm,ym)             1.14

В частности, для исправленного метода Эйлера

a1=a2=1/2;

b1=b2=1.

 

Рис. 3

 

В то время как для модификационного метода Эйлера

a1=0, a2=1,

b1=b2=1/2.

Формулы 1.12, 1.13, 1.14 описывают некоторый метод типа Рунге-Кутты. Посмотрим, какого порядка метод можно рассчитывать получить в лучшем случае и каковы допустимые значения параметров a1, a2, b1 и b2 .

Чтобы получить соответствие ряду Тейлора вплоть до членов степени h, в общем случае достаточно одного параметра. Чтобы получить согласование вплоть до членов степени h2, потребуется еще два параметра, так как необходимо учитывать члены h2fx и h2fy. Так как у нас имеется всего четыре параметра, три из которых потребуются для создания согласования с рядом Тейлора вплоть до членов порядка h2, то самое лучшее, на что здесь можно рассчитывать – это метод второго порядка.

В разложении f(x,y) в ряд 1.8 в окрестности точки xm,ym положим x=xm+b1h,

y=ym+b2hf.

Тогда f(xm+b1h,ym+b2hf)=f+b1hfx+b2hfy+O(h2), где функция и производные в правой части равенства вычислены в точке xm,ym.

Тогда 1.12 можно переписать в виде ym+1=ym+h[a1f+a2f+h(a2b1fx+a2b2fy)]+O(h3).

Сравнив эту формулу с разложением в ряд Тейлора, можно переписать в виде

ym+1=ym+h[a1f+a2f+h(a2b1fx+a2b2ffy)]+O(h3).

Если потребовать совпадения членов hf, то a1+a2=1.

Сравнивая члены, содержащие h2fx, получаем a2b1=1/2.

Сравнивая члены, содержащие h2fy, получаем a2b2=1/2.

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

Положим, например, a2=w¹0. тогда a1=1-w, b1=b2=1/2w и соотношения 1.12, 1.13, 1.14 сведутся к

ym+1=ym+h[(1-w)f(xm,ym)+wf(xm+h/2w,ym+h/2wf(xm,ym))]+O(h3)    1.15

Это наиболее общая форма записи метода Рунге-Кутта второго порядка. При w=1/2 мы получаем исправленный метод Эйлера, при w=1 получаем модификационный метод Эйлера. Для всех w, отличных от нуля, ошибка ограничения равна

et=kh3             1.16

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

 ym+1=ym+h/6(R1+2R2+2R3+R4)           1.17

где R1=f(xm,ym),             1.18

 R2=f(xm+h/2,ym+hR1/2),           1.19

 R3=f(xm+h/2,ym+hR2/2),            1.20

 R4=f(xm+h/2,ym+hR3/2).            1.21

Ошибка ограничения для этого метода равна et=kh5

так что формулы 1.17-1.21 описывают метод четвертого порядка. Заметим, что при использовании этого метода функцию необходимо вычислять четыре раза.

 

 

2 Практическая часть

2.1 Задание

 

Написать программу решения дифференциального уравнения первого порядка методом Рунге-Кутты четвертого порядка.

Исходные данные:

Дифференциальное уравнения первого порядка:

,

где T=2; k=1; x(t)=1.

Аналитическое решение дифференциального уравнения первого порядка:

.

 

2.2 Алгоритм решения

Основная программа

Вычисление функции

Алгоритм Рунге-Кутта

 

2.3 Листинг программы

Uses Crt;

const

  k=1;

  T=2;

 

type

  TFunc = function(x,y: extended): extended;

 

Var

  f1: Text;

  n: word; {количество точек разбиения}

  x0,x_end,y0: extended;

 

function func(x,y: extended): extended; far;

begin

  func := (k*x-y)/T;

end;

 

 

function RungeKutt(f: TFunc; x0_,x_end,y0_: extended; n: word): extended;

{ где x0_ и y0_  - начальное условие

Информация о работе Численные методы решения дифференциального уравнения