Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kozlov (1).doc
Скачиваний:
748
Добавлен:
18.03.2016
Размер:
15.9 Mб
Скачать

Численные методы решения задачи Коши оду первого порядка

Рассмотрим некоторые численные методы решения задачи Коши (начальной задачи) обыкновенных дифференциальных уравнений первого порядка. Запишем данное уравнение в общем виде, разрешенном относительно производной (правая часть уравнения не зависит от первой производной):

Необходимо найти значения функции y в заданных точках сетки x1, x2,…, xn, если известны начальные значения (x0, y0), где  y(x0)=y0 - значение функции y(x) в начальной точке x0.

Преобразуем уравнение умножением на dx: dy=F(x,ydx. Проинтегрируем левую и правую части между i-ым и i+1-ым узлами сетки. Получим выражение для построения решения в i+1 узле интегрирования через значения x и y в i-ом узле сетки:

и далее

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

Из множества разработанных для решения ОДУ первого порядка методов рассмотрим методы Эйлера, Рунге-Кутта и прогноза и коррекции.

Метод Эйлера

В его основе лежит аппроксимация производной отношением конечных приращений зависимой y и независимой x переменных между узлами равномерной сетки:

где yi+1  это искомое значение функции в точке xi+1.

Если теперь преобразовать это уравнение, и учесть равномерность сетки интегрирования, то получится итерационная формула, по которой можно вычислить  yi+1 , если известно yi  в точке хi:

yi+1=yi+F(xi,yi)·h.

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

Графическая интерпретация метода Эйлера

Как известно, значение F(xi,yi) есть значение производной функции y(x) в точке x=xi и, следовательно, равно тангенсу угла наклона касательной, проведенной к графику функции y(x) в точке x=xi.

Из прямоугольного треугольника на рисунке найдем yi+1-yi=(xi+1-xiy´(xi)=h· F(xi,yi)  - формула Эйлера. Таким образом, суть метода Эйлера заключается в замене функции y(x) на отрезке интегрирования прямой линией, касательной к графику в точке x=xi. Если искомая функция сильно отличается от линейной на отрезке интегрирования, то погрешность вычисления будет значительной. Ошибка метода Эйлера прямо пропорциональна шагу интегрирования.

Алгоритм метода Эйлера

  1. Вводим исходные значения x0, y0, xn.

  2. Задаем значение n, например, 10.

  3. Рассчитываем значение h=( xn- x0)/n.

  4. Последовательно определяем:

y1=y0+F(x0,y0)·h, x1=x0+h,

y2=y1+F(x1,y1)·h, x2=x1+h,

……

yn=yn-1+F(xn-1,yn-1)·h, xn=xn-1+h.

  1. Получаем таблицу значений.

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

Реализация метода в MS Excel

Дано: , начальные условия y(0)=0,1. Найти у от х=2 при n=10.

Заполнение клеток листа MS Excel для n=10:

Адрес клетки

Содержание

Тип

C1

x0=

Текст

C2

y(x0)=

Текст

D1

0

Число

D2

0,1

Число

F1

n=

Текст

F2

x=

Текст

G1

10

Число

G2

2

Число

I1

h=

Текст

J1

=(G2-D1)/G1

Формула

A5

x

Текст

B5

F(x,y)

Текст

C5

y

Текст

A6

=D1

Формула

C6

=D2

Формула

A7

=A6+$J$1

Формула

B7

=EXP(COS(A6)^2)+1,5*SIN(C6)-2,3/(A6*A6+0,2)

Формула

C7

=C6+B7*$J$1

Формула

A8: A16

Автозаполнение формулой из клетки A7

Формула

B8: B16

Автозаполнение формулой из клетки B7

Формула

C8: C16

Автозаполнение формулой из клетки C7

Формула

Вид листа MS Excel для n=10:

Построим графики F(x,y), y. Выделим диапазон клеток А5:С16, переходим на страницуВставка, выбираем категорию диаграммы –Точечная, тип – Точечная с гладкими кривыми. Получаем диаграмму:

Ответ:х=2 у= -3,3.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]