
- •Министерство образования и науки Российской Федерации
- •«Иркутский государственный технический университет»
- •Численные методы решения задач сау Методические указания по выполнению курсовой работы
- •Численные методы решения задач сау. Методические указания по выполнению курсовой работы /Сост. З.А. Федорова. – Иркутск, 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.2. Решение уравнения состояния
Систему дифференциальных уравнений (3.1) можно представить как
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , (3.3)
.
В матричном виде система (3.3) запишется следующим образом:
, (3.4)
или
, (3.5)
где Y – вектор координат состояния (Y1,Y2,…,Yn); - вектор производных координат состояния; А – матрица состояния; F – вектор внешних воздействий.
Уравнения вида (3.4) и (3.5) принято называть уравнением состояния. Алгоритм решения уравнения состояния представлен на рис. 3.5. Схема алгоритма процедуры определения массива приращений {DY} в этом случае будет соответствовать рис. 3.6. Схемы же алгоритмов процедур, реализующих определение х, {Y} на каждом шаге интегрирования останутся прежними (см. рис. 3.2б, рис. 3.3а, рис. 3.3б, рис. 3.4).
Рис. 3.5. Схема алгоритма решения уравнения состояния
Рис. 3.6. Схема алгоритма процедуры определения {DY}
Для методов параллельного типа Пример 3.2. Найти решение уравнения состояния, соответствующего системе уравнений (3.2) из примера 3.1.
, , , . |
|
Этой системе уравнений соответствует уравнение состояния вида
|
(3.6) |
где
.
Программа на языке 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, Sum As Single
Dim n As Integer, i As Integer, j As Integer
Dim L As Integer, Kt As Integer, Lh As Integer
Dim AK(1 To 10, 1 To 10) As Single, FP(1 To 10) As Single
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
For i = 1 To n
For j = 1 To n
AK(i, j) = Cells(i + 6, j + 8)
Next j
Next i
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
FP(1)=0: FP(2)=0: FP(3)=0: FP(4) = 200 * (1 - Exp(-4 * X))
For i = 1 To n
Sum = 0
For j = 1 To n
Sum = Sum + AK(i, j) * YP(j)
Next j
DY(i) = h * (Sum + FP(i))
Next i
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
Результат выполнения программы: