Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Решение дифференциальных уравнений второго порядка




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

Общий вид дифференциальных уравнений второго порядка:

(12.10)

Нормальная форма дифференциальных уравнений второго порядка:

(12.11)

Пример

Уравнение в общем виде

Его нормальная форма

(12.12)

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

Заменим y1=y',

Тогда y'1=y".

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

Для примера (12.12) эта система имеет вид:

(12.13)

Решением этой системы являются две функции y(x) и y1(x),

где

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

Дана система

(12.14)

Даны два начальных условия:

Необходимо проинтегрировать систему на участке [a, b] с шагом h.

В численных методах задача Коши для системы (12.14) ставится следующим образом:

Найти табличные функции

и т.е. найти таблицу

i x y y1
0 x0 y0 (y1)0
1 x1 y1 (y1)1
2 x2 y2 (y1)2
3 x3 y3 (y1)3
... ... ... ...
n xn yn (y1)n

Здесь

h - шаг интегрирования дифференциального уравнения,

a=x0 - начало участка интегрирования уравнения,

b=xn - конец участка,

n=(b-a)/h - число шагов интегрирования уравнения.

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

При этом на каждом шаге, т.е. для каждого значения xi решением являются две узловые точки с координатами (xi, yi), (xi, (y1)i).


Рис. 12.15.

Для решения системы дифференциальных уравнений используем те же методы, что и для решения одного дифференциального уравнения первого порядка. При этом необходимо соблюдать условие: на каждом шаге интегрирования, т. е. в точках с координатами х1, х2, х3,:, хn все уравнения системы надо решать параллельно.

Для вычисления правых частей уравнений системы (12.14) необходимо сформировать подпрограмму PRAV.

Вернемся к примеру (12.13). Здесь на каждом шаге в подпрограмме PRAV будем вычислять правые части каждого уравнения системы:

 

Схема алгоритма решения системы (12.13) представлена на рис 12.16.


Рис. 12.16. Схема алгоритма решения системы (12.6)

Здесь

h - шаг интегрирования дифференциального уравнения,

b - конец участка,

n - число шагов интегрирования уравнения,

x, y, y1 - при вводе начальные значения, далее - текущие значения табличной функции.

Решение дифференциальных уравнений m-го порядка методом Рунге-Кутта (4-го порядка)

Как уже было сказано, любое дифференциальное уравнение m-го порядка

(12.15)

сводится к системе, состоящей из m дифференциальных уравнений 1-го порядка

(12.6)

Численным решением системы (12.9), а значит и дифференциального уравнения m-го порядка (12.8) является m табличных функций

т.е. функция y(x) и все ее производные, включая производную (m-1)-го порядка.

При этом каждая из табличных функций определяется на промежутке [a, b] с шагом h и включает n узловых точек. Таким образом, численным решением уравнения (12.8) или системы (12.9) является матрица порядка , (табл. 12.8)

Таблица 12.1.

i x y y1=y', y1=y''1, : y_m-1=y^(m-1)
0 x0 y0 (y1)0 (y2)0 : (ym-1)0
1 x1 y1 (y1)1 (y2)1 : (ym-1)1
2 x2 y2 (y1)2 (y2)2 : (ym-1)2
3 x3 y3 (y1)3 (y2)3 : (ym-1)3
: : : : : : :
n xn yn (y1)n (y2)n : (ym-1)n

где

m - порядок дифференциального уравнения, равен количеству столбцов матрицы,

n = (b-a)/h - количество шагов интегрирования, равно количеству строк матрицы.

Каждый j-й столбец матрицы - это массив решений одной j-й табличной функции по всем n шагам интегрирования.

Каждая i-ая строка матрицы - это массив решений m табличных функций на одном i-ом шаге интегрирования.

На графике решением дифференциального уравнения m-го порядка (12.8) является совокупность узловых точек. При этом каждому шагу интегрирования, т.е. каждому значению xi, , соответствуют m узловых точек скоординатами

При построении алгоритма задачи будем как и ранее расчет вести по шагам интегрирования, т.е. в цикле по . При этом, как и ранее, на каждом i-ом шаге цикла будем рассчитывать решение дифференциального уравнения и тут же его печатать. Тогда нет необходимости формировать матрицу решений, а можно ограничиться формированием массива решений (12.15), который соответствует одной i-й строке матрицы:

(12.17)

где

(12.18)

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

Рассмотрим пример (12.19).

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

(12.19)

С учетом обозначений (12.18) имеем:

Тогда дифференциальное уравнение (12.19) сводится к системе:

(12.20)

Вычисление правых частей уравнений системы (12.20) будем выполнять в подпрограмме PRAV. При этом подпрограмма PRAV будет иметь вид

Обращение к подпрограмме

PRAV(m, x, Y, F),

где

m-порядок системы,

x- значение x на i-м шаге интегрирования,

Y=[y(1), y(2), y(3),:, y(m)] - входной массив длиной m,

F=[f(1), f(2),:, f(m)] - результат, массив значений правых частей уравнений системы (12.10) длиной m.

Программу решения системы дифференциальных уравнений реализуем в виде 3-х программных модулей:

  1. основной программы, в которой организуем циклический процесс по всем шагам интегрирования, ;
  2. подпрограммы RGK, в которой на каждом i-м шаге реализуется метод Рунге Кутта (4-го порядка) для системы дифференциальных уравнений m-го порядка. Здесь на каждом шаге интегрирования вычисляется массив решений Y длиной m. Для этого внутри подпрограммы RGK организуем циклы по j, где ;
  3. подпрограммы PRAV, обращение к которой осуществляется из подпрограммы RGK для вычисления массива F длиной m - значений правых частей уравнений системы.

Схема алгоритма основной программы представлена на рис.12.17.


Рис. 12.17. Схема алгоритма основной программы

Здесь

m-порядок системы,

h-шаг интегрирования,

n-количество шагов интегрирования,

x-начальное и далее - текущее значение x,

Y-массив длинной m, куда заносим начальные и далее - текущие значения решений системы на одном шаге интегрирования.

В подпрограмме RGK для вычисления элементов массива Y, используем те же формулы, что и для решения одного дифференциального уравнения 1-го порядка методом Рунге-Кутта (4-го порядка), но с учетом поправки на массивы.

Тогда

Здесь

Y- массив решений длиной m,

Y1 - рабочий массив длиной m,

T - рабочая матрица порядка ().

Для вычисления значений fj правых частей дифференциальных уравнений системы перед вычислением каждого элемента матрицы Т на каждом j-ом шаге необходимо выполнить обращение к подпрограмме PRAV.

Схема алгоритма подпрограммы RGK представлена на рис.12.18


Рис. 12.18. Схема алгоритма подпрограммы RGK





Поделиться с друзьями:


Дата добавления: 2018-11-11; Мы поможем в написании ваших работ!; просмотров: 184 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Чтобы получился студенческий борщ, его нужно варить также как и домашний, только без мяса и развести водой 1:10 © Неизвестно
==> читать все изречения...

2431 - | 2320 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.