русс | укр

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

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

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

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


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

Основные теоретические положения


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


Решить дифференциальное уравнение y' = f(x, y) численным методом –значит для заданной последовательности аргументов x0, x1, …, xn и числа y0, не определяя функцию y = F(x), найти такие значения у1, у2, …, yn, что yi = F(xi) (i = 1, 2, …, n) и F(x0) = y0. Другими словами, численные методы позволяют вместо нахождения функции y = F(x), получить таблицу значений этой функции для заданной последовательности аргументов. Величина h = xkxk-1 называется шагом интегрирования.

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

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

 

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

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

x = x0, у(x0) = y0.

 

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

 

Разобьем отрезок [a, b] на n равных частей и получим последовательность x0, x1, …, xn, где xi = x0 + i·h (i = 1, 2, …, n), а h = (ba)/n – шаг сетки. Величина h = ∆ xm = xm+1 - xi обычно выбирается постоянной и достаточно малой. При численном решении задачи вычисляются приближенные значения yi (xi) ≈ yi в узлах сетки xi (i = 1, 2, …, n).

Идея метода состоит в том, что при малом шаге сетки h производная искомой функции y'(xi)может быть приближенно заменена конечными разностями

 

(2)

где yi – значение функции в узле xi.

Тогда y'(xi)∙h = yi+1 - yi, отсюда yi+1 = yi+ y'(xi)∙h, а, так как y'(xi) = f(xi, yi), то

 

yi+1 = yi + h·f(xi,yi). (3)

 

Т.е. на каждом отрезке [xi, xi+1] выражение (1) можно заменить приближенным выражением (3).

Зная начальное значение y0, и используя соотношение (3), можно последовательно от узла xi к узлу xi+1 определить все искомые значения yi+1.

На практике, как правило, применяют «двойной просчет». Сначала расчет ведется с шагом h, затем шаг дробят и повторный расчет ведется с шагом h/2 и



т.д.

Для достижения требуемой точности ε численного решения необходимо выполнение условия: |y2n - yn| < ε.

 

Пример 1. ○Используя метод Эйлера, составить на отрезке [0, 1] таблицу значений решения дифференциального уравнения

с начальными условиями x0 = 0, y0 = 1, выбрав шаг h = 0,2.

 

Решение.

Результаты вычислений представим в таблице Excel (рис.1). Заполняется она следующим образом:

1) В первую строку, соответствующую значению i = 0, запишем начальные условия: x0 = 0, y0 = 1. По ним вычислим значение f(x0, y0):

а затем значение ∆y0. Из (2) и (1) имеем

 

y0 = y'(x0)∙ ∆x0 = y'(x0)∙h = f(x0, y0) ∙h,

 

следовательно, ∆y0 = h∙f(x0, y0) = 0,2∙1 = 0,2. Отсюда по формуле (3) для i = 0 получим

y1 = y0 + h∙f(x0, y0) = y0+ ∆y0 = 1 + 0,2 = 1,2.

 

2) Значение x1 = x0 + h = 0 + 0,2 = 0,2 и соответствующее ему значение y1 =1,2 запишем во вторую строку таблицы, соответствующую i = 1.

Для x1 = 0,2 и y1 = 1,2 вычислим f(x1, y1).

 

 

Затем вычислим ∆y1 = h∙f(x1, y1) = 0,2∙0,8667 = 0,1733.

 

Тогда по формуле (3) для i = 1 получим

y2 = y1 + h∙f(x1, y1) = y1+ ∆y1 = 1,2 + 0,1733 = 1, 3733.

 

3) Значения x2 = x1 + h = 0,2 + 0,2 = 0,4 и соответствующее ему значение y2 =1,3733 запишем в третью строку таблицы (i = 2).

 

Аналогично следует выполнить вычисления для i = 2, 3, 4, 5 (см. рис. 1).●○

 

 

Режим формул

 

Режим решения

Рис. 1

 

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

 

Пусть дано дифференциальное уравнение

 

y'' = f(x, y, y') (4)

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

x = x0, у(x0) = y0, у'(x0) = y'0.

 

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

 

С помощью подстановки y' = z, y'' = z' заменим уравнение (4) системой уравнений

и (5)

 

 

Таким образом, f1(x, y, z) = z, f2(x, y, z) = f(x, y, z) и задачу можно записать в общем виде:

и (6)

 

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

 

Пример 2. ○Используя метод Эйлера, составить на отрезке [1; 1,5] таблицу значений решения дифференциального уравнения

(7)

с начальными условиями y = 0,77, y' = -0,44 и выбрав шаг h = 0,1.

 

Решение. С помощью подстановки y' = z, y'' = z' заменим уравнение (7) системой уравнений

y' = z,

с начальными условиями y0(1) = 0,77 и z0 = -0,44.

Таким образом,

f1(x, y, z) = z, f2(x, y, z) =

 

Результаты вычислений по формулам (6) запишем в таблице Excel (рис. 2). Заполняется она следующим образом:

в первую строку i = 0 запишем начальные условия: x0 = 1,0, y0 = 0,77, z0 = -0,44.

 

Используя их, вычислим

f10(x0, y0, z0) = z0 = -0,44,

 

f20(x0, y0, z0) =

а затем

 

y0 = h∙f10 = 0,1∙(-0,44) = -0,044, y1 = y0 + ∆y1 = 0,77 + (-0,044) = 0,726,

 

z0 = h∙f20 = 0,1∙(-0,33) = -0,033, z1 = z0 + ∆z1 = -0,44 + (-0,033) = -0,473.

 

Таким образом, во вторую строку таблицы, соответствующую i = 1, можно записать:

y1 = 0,726, z1 = -0,473.

 

По этим значениям можно вычислить

 

f11(x1, y1, z1) = z1 = -0,473,

 

f21(x1, y1, z1) =

а затем

 

y1 = h∙f11 = 0,1∙(-0,473) = -0,047, y2 = y1 + ∆y1 = 0,726 + (-0,047) = 0,679,

 

z1 = h∙f21 = 0,1∙(-0,296) = -0,030, z2 = z1 + ∆z1 = -0,473 + (-0,030) =-0,503.

 

Аналогично следует выполнять вычисления для i = 2, 3, 4, 5 (см. рис. 2).●

Режим формул

 

 

Режим решения

Рис. 2

 



<== предыдущая лекция | следующая лекция ==>
Метод парабол (Симпсона) | Репетиционный тест по разделу 1


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


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

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

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


 


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

 
 

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

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