Смекни!
smekni.com

Решение дифференциальных уравнений по методу Эйлера (стр. 1 из 3)

Министерство образования Республики Беларусь

Учреждение образования

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

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

Пояснительная записка

к курсовому проекту

на тему:

«Решение дифференциальных уравнений по методу Эйлера»

Минск 2004


СОДЕРЖАНИЕ:

1. Введение

2. Математическое объяснение метода

2.1 Метод Эйлера

2.2 Исправленный метод Эйлера

2.3 Модифицированный метод Эйлера

3. Блок-схема алгоритма программы

4. Описание программы

Список использованной литературы

Приложение 1 (Текст программы)

Приложение 2 (Результаты работы программы)


1. Введение

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

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

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


2. Математическое объяснение метода

2.1 Метод Эйлера

Решить дифференциальное уравнение у/=f(x,y) численным методом - это значит для заданной последовательности аргументов х0, х1…, хn и числа у0, не определяя функцию у=F(x), найти такие значения у1, у2,…, уn, что уi=F(xi)(i=1,2,…, n) и F(x0)=y0.

Таким образом, численные методы позволяют вместо нахождения функции

У=F(x) получить таблицу значений этой функции для заданной последовательности аргументов. Величина h=xk-xk-1 называется шагом интегрирования.

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

Рассмотрим дифференциальное уравнение первого порядка

y/=f(x,y) (1)

с начальным условием

x=x0, y(x0)=y0 (2)

Требуется найти решение уравнения (1) на отрезке [а,b].

Разобьем отрезок [a, b] на n равных частей и получим последовательность х0, х1, х2,…, хn, где xi=x0+ih (i=0,1,…, n), а h=(b-a)/n-шаг интегрирования.

В методе Эйлера приближенные значения у(хi)»yi вычисляются последовательно по формулам уi+hf(xi, yi) (i=0,1,2…).

При этом искомая интегральная кривая у=у(х), проходящая через точку М00, у0), заменяется ломаной М0М1М2… с вершинами Мi(xi, yi) (i=0,1,2,…); каждое звено МiMi+1 этой ломаной, называемой ломаной Эйлера, имеет направление, совпадающее с направлением той интегральной кривой уравнения (1), которая проходит через точку Мi, смотри рисунок 1.

Рисунок 1.

Если правая часть уравнения (1) в некотором прямоугольнике R{|x-x0|£a, |y-y0|£b}удовлетворяет условиям:

|f(x, y1)- f(x, y2)| £ N|y1-y2| (N=const),

|df/dx|=|df/dx+f(df/dy)| £ M (M=const),

то имеет место следующая оценка погрешности:

|y(xn)-yn| £ hM/2N[(1+hN)n-1], (3)

где у(хn)-значение точного решения уравнения(1) при х=хn, а уn- приближенное значение, полученное на n-ом шаге.

Формула (3) имеет в основном теоретическое применение. На практике иногда оказывается более удобным двойной просчет: сначала расчет ведется с шагом h, затем шаг дробят и повторный расчет ведется с шагомh/2. Погрешность более точного значения уn* оценивается формулой

|yn-y(xn)|»|yn*-yn|. (4)

Метод Эйлера легко распространяется на системы дифференциальных уравнений и на дифференциальные уравнения высших порядков. Последние должны быть предварительно приведены к системе дифференциальных уравнений первого порядка.

2.2 Исправленный метод Эйлера

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

F(xm, ym)=1/2[f(xm, ym)+f(xm+h, ym+hy’m)], (5)

где ym = f(xm, ym) (6)

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

y = ym + (x - xm)*F(xm) (7)

так что:

ym+1 = ym + h*F(xm) (8)

Соотношения 5, 6, 7 и 8 описывают исправленный метод Эйлера. (рис. 2)

Рисунок 2.

2.3 Модифицированный метод Эйлера

Этот метод более точен. Рассмотрим дифференциальное уравнение (1) с начальным условием y(x0)=y0. Разобьем наш участок интегрирования на n равных частей. На малом участке [x0,x0+h] интегральную кривую заменимпрямой линией. Получаем точкуМккк). (рис. 3)


Y

Nk/ y=y(x)

МкМк/

Yk+1

Yk

хкхк1/2xk+h=xk1X

Рисунок 3.

Через Мк проводим касательную: y=yк=f(xk,yk)(x-xk). Делим отрезок (xк,xк1) пополам:

xh+k/=xk+h/2=xk+1/2 (9)

yh+k/=yk+f(xk,yk)h/2=yk+yk+1/2 (10)

Получаем точку Nk/. В этой точке строим следующую касательную:

y(xk+1/2)=f(xk+1/2, yk+1/2)=αk (11)

Из точки Мк проводим прямую с угловым коэффициентом αк и определяем точку пересечения этой прямой с прямой xк1. Получаем точку Мк/. В качестве ук+1 принимаем ординату точки Мк/. Тогда: