русс | укр

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

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

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

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


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

Численное дифференцирование


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


 

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

F(X,Y,Y',Y”,...,Y n-1 ,Y n ) = 0 , (1)

где Х - независимая переменная;

Y - искомая функция от Х;

Y',Y»,...,Yn -производные порядка 1,2,...,n.

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

Простейшим обыкновенным дифференциальным уравнением является уравнение 1-го порядка

y'= f(x,y) (2).

Основная задача, относящаяся к этому уравнению, есть задача Коши: найти реше­ние дифференциального уравнения (2) в виде у=у(х), удовлетворяющее начальному усло­вию Y(Xo)=Yo, т.е. требуется найти интегральную кривую у=у(х), проходящую через заданную точку М(Хо,Yo).

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

Yo=Y(Xo); Yo'=Y'(Xo),...,Y0 n-1 = Yn-1 (Xo) (3)

Уравнение (1) называется разрешенным относительно старшей производной, если оно имеет вид

Y(n) =f(X,Y,Y',Y»,...,Yn-1 ) (4)

Если дифференциальное уравнение (1) разрешимо относительно старшей произ­водной, то его можно свести к системе обыкновенных дифференциаль­ных уравнений 1-го порядка заменой на неизвестную функцию Р1(х), у» на Р2(х) и т.д.

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

y'=P1,

P1'=P2,

P2'=P3,

...

P'n-1 = f (x,y,P1,P2,...,Pn-1), причем

Y(Xo)=Yo

P1(Xo)=Yo'

P2(Xo)=Yo»

. . . . . . . . .

P n-1(Xo)=Yon-1 .

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



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

 

Метод численного решения дифференциального уравнения 1-го по­рядка

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

с начальным условием Y(Xo)=Yo основан на разложении решения в ряд Тейлора в h-окрестности точки Хо:

Y1 = Y(x+h) = Y(Xo) + h*Y'(Xo) + (h2/2)*Y»(Xo) +...

При отбрасывании всех членов ряда, содержащих производные 2-го и высших порядков, получим

Y1 = Yo + h*f(Xo,Yo),

где f(x,y) - правая часть уравнения (7). Пользуясь значением Y1 из разложения y(x) в h –окрестности точки Х1=Хо+h, получим

Y2=Y1+h*f(X1,Y1),

аналогично продолжая для следующей Х i+1 точки, получим

Y i+1 = Yi+h*f(Xi,Yi). (8)

Если дано уравнение 2-го порядка

Y»=f(x,y,y') (9)

c начальными условиями Y(Xo)=Yo и Y'(Xo)=Yo', то такое уравнение можно свести к системе двух уравнений 1-го порядка

у'=P (10)

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

причем

Y(Xo)=Yo, (11)

P(Xo)=Po=Yo'.

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

Yi+1 = Yi+h*Pi (12)

Pi+1 = Pi+h*f(Xi, Yi, Pi),

где f( Xi, Yi, Pi) - правая часть уравнения (9).

При достаточно малой величине шага h метод Эйлера дает реше­ние с большой

точностью, т.к. погрешность решения близка к h2.

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

Y0i+1=Yi+hF(xi ,Yi).

Затем с помощью итерационной формулы

Yкi+1=Yi + + [ F(xi, Yi) + F(xi+1, ]

решение уточняется. Итерации проводят до тех пор, пока совпадает заданное число цифр результата на двух последних шагах итераций. Погрешность метода составляет примерно h3. Обычно число итераций не должно превышать 3-4, иначе нужно уменьшить шаг h.

Модифицированный метод Эйлера второго порядкареализуется следующими рекуррентными формулами:

Yi+1 = Yi + hF(xi + h/2, Y*i+1/2 ),

где Y*i+1/2 = Yi + hF(xi , Yi)/2 . Метод дает погрешность порядка h3 и имеет меньшее время вычислений, поскольку вместо нескольких итераций производится вычисление только одного значения Y*i+1/2.

Метод трапеций – одна из модификаций метода Эйлера второго порядка. Он реализуется применением на каждом шаге формулы

Yi+1 = Yi + 0.5(K1+K2)

где K1 = h F(xi,Yi);

K2 = h F(xi+h,Yi+K1)

и дает погрешность порядка h3. Этот метод относится к общим методам Рунге-Кутта.



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


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


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

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

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


 


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

 
 

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

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