
- •Министерство образования и науки Российской Федерации
- •«Иркутский государственный технический университет»
- •Численные методы решения задач сау Методические указания по выполнению курсовой работы
- •Численные методы решения задач сау. Методические указания по выполнению курсовой работы /Сост. З.А. Федорова. – Иркутск, 2013. – 41 с.
- •Введение
- •1. Определение исходных данных для решения дифференциального уравнения -го порядка
- •1.1. Реализация на эвм методов решения нелинейных уравнений
- •Определение границ существования корней
- •Отделение корней
- •Корней нелинейного уравнения Уточнение корней
- •Корней по методу половинного деления
- •Корней по методу Ньютона (касательных)
- •Нелинейного уравнения двумя методами
- •2. Формирование системы дифференциальных уравнений 1-го порядка и уравнения состояния по заданному дифференциальному уравнению -го порядка
- •2.1. Формирование системы дифференциальных уравнений 1-го порядка по заданному дифференциальному уравнению -го порядка
- •2.2. Формирование уравнения состояния по заданному дифференциальному уравнению -го порядка
- •Пример 2.2. Найти решение уравнения состояния, соответствующего системе уравнений (2.2) из примера 2.1.
- •3. Решение системы дифференциальных уравнений 1-го порядка и уравнения состояния
- •3.1. Решение системы дифференциальных уравнений 1-го порядка
- •Система дифференциальных уравнений при заданных начальных условиях , , ..., , имеет вид
- •Уравнений 1-го порядка
- •По методу Рунге-Кутта 4-го порядка
- •3.2. Решение уравнения состояния
- •Для методов параллельного типа Пример 3.2. Найти решение уравнения состояния, соответствующего системе уравнений (3.2) из примера 3.1.
- •4. Аппроксимация полученного решения дифференциального уравнения 4-го порядка
- •Аппроксимация методом наименьших квадратов
- •Реализация на эвм методов решения системы линейных алгебраических уравнений
- •По методу Гаусса
- •По методу наименьших квадратов
- •Аппроксимации по методу Гаусса
- •Список литературы
- •4. Гарнаев а.Ю. Самоучитель vba. –сПб: бхв –Санкт-Петербург, 2000.–512 с.
- •5. Ломтадзе в.В., Шишкина л.П. Информатика: Учебное пособие. – Изд-во ИрГту, 1999. – 116 с.
- •Варианты заданий
3. Решение системы дифференциальных уравнений 1-го порядка и уравнения состояния
3.1. Решение системы дифференциальных уравнений 1-го порядка
Система дифференциальных уравнений при заданных начальных условиях , , ..., , имеет вид
,
,
. . . . . . . . . . . . . . . . . . . . . (3.1)
Решение
системы дифференциальных уравнений
(3.1) можно получить, используя методы
Эйлера, Эйлера-Коши, ломаных или
Рунге-Кутта. При этом предполагается,
что все приращения
для каждого уравнения определяются
одновременно (методы параллельного
типа). Разработан также численный метод
А.В. Башарина, который предполагает
вычисление приращений не сразу для всех
уравнений, а последовательно, по мере
прохождения сигнала в системе (метод
последовательного типа). Существуют и
многошаговые методы, но они требуют
большего объема вычислений и поэтому
используются редко.
Теми
же способами можно решать и дифференциальное
уравнение n-го
порядка, имеющее вид
при
заданных начальных условиях
,
,
... ,
.
Это уравнение должно быть преобразовано в систему дифференциальных уравнений первого порядка путем введения следующих обозначений:
;
;
;
. . . . . . . . . . . . . . . . . . . ,
.
Получается следующая система дифференциальных уравнений:
,
,
. . . . . . . . . . .
.
.
Решение каждого j-го дифференциального уравнения на i-ом шаге интегрирования можно найти как
.
Способ определения приращения зависит от выбранного численного метода:
по методу Эйлера
;
по методу Эйлера-Коши
;
по методу ломаных
;
по методу Рунге-Кутта 4-го порядка
,
где
,
,
,
.
Схема
алгоритма, реализующего численные
методы параллельного типа, приведена
на рис.3.1. Схема алгоритма определения
массива приращений
для этих методов представлена на
рис.3.2а. Определение переменной
и массива решений
на каждом шаге интегрирования можно
осуществить, организовав обращение к
одной из процедур вычисления
по методу Эйлера, Эйлера-Коши, ломаных,
Рунге-Кутта 4-го порядка. Схемы алгоритмов
этих процедур приведены на рисунках:
3.2б (Эйлера), 3.3а (Эйлера-Коши), 3.3б
(ломаных) и 3.4 (Рунге-Кутта 4-го порядка).
Листинг программы, реализующей алгоритм решения системы дифференциальных уравнений методами параллельного типа, приведен ниже.
Рис. 3.1. Схема алгоритма решения системы дифференциальных
Уравнений 1-го порядка
Рис. 3.2. Схемы алгоритмов процедур:
а – определения {DY} для методов параллельного типа;
б – определения x, {Y} по методу Эйлера
Рис. 3.3. Схема алгоритмов процедур определения x, {Y} по методам:
а – Эйлера-Коши; б – ломаных (Рунге-Кутта 2-го порядка)
Рис. 3.4. Схема алгоритма процедуры определения x, {Y}
По методу Рунге-Кутта 4-го порядка
Пример 3.1. Найти решение дифференциального уравнения 4-го порядка:
при нулевых начальных условиях.
Это уравнение должно быть преобразовано в систему дифференциальных уравнений первого порядка путем введения следующих обозначений:
;
;
;
.
Исходное уравнение представим системой дифференциальных уравнений 1-го порядка следующего вида:
, , , . |
(3.2) |
Программа на языке VBA:
Option Explicit
Dim Y(1 To 10) As Single, DY(1 To 10) As Single
Dim YP(1 To 10) As Single, Ip As Integer, K As Integer
Dim S(1 To 10) As Single, Yo(1 To 10) As Single
Dim h As Single, Xo As Single, X As Single
Dim n As Integer, i As Integer, j As Integer
Dim L As Integer, Kt As Integer, Lh As Integer
Private Sub CommandButton1_Click()
' ......................................................
' : Решение системы дифференциальных уравнений по :
' : методу Эйлера (Эйлера-Коши, ломаных, Рунге-Кутта) :
' :....................................................:
h = TextBoxh: Lh = TextBoxLh: Kt = TextBoxKt
n = TextBoxKn: Xo = TextBoxXo
For j = 1 To n
Yo(j) = Cells(16, j + 5)
Next j
X = Xo: For j = 1 To n: Y(j) = Yo(j): Next j
Cells(1, 1) = "Решение системы дифференциальных уравнений:"
Cells(2, 1) = " X"
For j = 1 To n
Cells(2, j + 1) = " Y(" & Str(j) & ")"
Next j:
Cells(3, 1) = Xo
For j = 1 To n
Cells(3, j + 1) = Yo(j)
Next j:
Ip = 3
For K = 1 To Kt
For L = 1 To Lh
' Call E
' Call EK
' Call RK2
Call RK4
Next L
Cells(Ip + K, 1) = X
For j = 1 To n
Cells(Ip + K, j + 1) = Y(j)
Next j:
Next K
End Sub
Sub ODY()'Процедура определения приращений DY
DY(1) = h * YP(2)
DY(2) = h * YP(3)
DY(3) = h * YP(4)
DY(4)=h*(2*(1-Exp(-4*X))-0.16*YP(4)-0.93*YP(3)-2.3*YP(2)-2* YP(1))/0.01
End Sub
Sub E()'Процедура решения уравнений по методу Эйлера
For j = 1 To n: YP(j) = Y(j): Next j
Call ODY
X = X + h: For j = 1 To n: Y(j) = Y(j) + DY(j): Next j
End Sub
Sub EK()'Процедура решения уравнений по методу Эйлера-Коши
For j = 1 To n: YP(j) = Y(j): Next j
Call ODY
X = X + h / 2:
For j = 1 To n: YP(j) = Y(j) + DY(j) / 2: Next j
Call ODY
X = X + h / 2:
For j = 1 To n: Y(j) = Y(j) + DY(j): Next j
End Sub
Sub RK2()'Процедура решения уравнений по методу ломаных
' ( Рунге - Кутта 2 - го порядка )
For j = 1 To n: YP(j) = Y(j): Next j
Call ODY
For j = 1 To n: S(j) = DY(j): Next j
X = X + h:
For j = 1 To n: YP(j) = Y(j) + DY(j): Next j
Call ODY
For j = 1 To n: Y(j) = Y(j) + (S(j) + DY(j)) / 2:
Next j
End Sub
Sub RK4()'Процедура решения уравнений по методу Рунге-Кутта
' 4-го порядка
For j = 1 To n: YP(j) = Y(j): Next j
Call ODY
For j = 1 To n: S(j) = DY(j): Next j
X = X + h / 2
For i = 1 To 2
For j = 1 To n: YP(j) = Y(j) + DY(j) / 2: Next j
Call ODY
For j = 1 To n: S(j) = S(j) + 2 * DY(j): Next j
Next i
X = X + h / 2:
For j = 1 To n: YP(j) = Y(j) + DY(j): Next j
Call ODY
For j = 1 To n: Y(j) = Y(j) + (S(j) + DY(j)) / 6:
Next j
End Sub
Результат выполнения программы: