
- •Розділ 1. Загальні питання теорії моделювання
- •1.1. Поняття моделі в прикладному дослідженні
- •1.2. Моделювання і математика
- •1.3. Обчислювальний експеримент
- •Розділ 2. Математичні моделі інженерних задач
- •2.1. Лінійні алгебраїчні моделі
- •2.1.1. Задача про розподіл токів у електричному ланцюзі
- •2.1.2. Системи лінійних алгебраїчних рівнянь
- •2.1.3. Коректність, стійкість, достовірність
- •2.1.4. Методи рішення лінійних систем на еом
- •2.1.5. Вправи
- •2.2. Моделі, що зводяться до задач про власні значення
- •2.2.1. Власні вектори і власні значення матриць
- •2.2.2. Методи рішення задач про власні значення на еом
- •2.2.3. Вправи
- •2.3. Нелінійні алгебраїчні та трансцендентні моделі
- •2.3.1. Задача про розмір критичної сили для стрижня
- •2 .3.2. Корені нелінійних рівнянь і систем
- •2.3.3. Методи рішення нелінійних рівнянь і систем
- •2.3.4. Вправи
- •2.4. Моделі, що зводяться до диференціальних рівнянь.
- •2.4.1. Математичні моделі механічних систем
- •2.4.2. Математичні моделі для електричних ланцюгів
- •2.4.3. Моделі систем автоматичного регулювання
- •2.4.4. Математичні моделі вагонів
- •2.4.5. Рішення звичайних диференціальних рівнянь
- •Метод Ейлера
- •Метод Рунге-Кутта
- •2.4.7. Вправи
Метод Ейлера
Це найпростіший метод рішення задачі Коші, що дозволяє інтегрувати диференціальне рівняння першого порядку. Його точність невелика, і тому на практику їм користуються порівняно рідко.
Проте на основі цього методу легше зрозуміти алгоритм других, більш ефективних методів. Метод заснований на розкладанні в ряд Тейлора функції y в окілі точки x0. Метод реалізує співвідношення:
yn+1=yn+hf(xn,yn), n=1,2,….
де xn = x0 + h*n, x0 = 0, n = 0,1,2,…,N-1, h- крок, із яким проходимо по осі Ox.
Метод Рунге-Кутта
Метод Рунге-Кутта 4-го порядку полягає в тому, що задача Коші для звичайного диференціального рівняння першого порядку задається рекурентною форулою такого вигляду:
yk+1 = yk + (m1 + 2*m2 + 2*m3 + m4) * h/6 ,
де
m1 = f(xk , yk),
m2 = f(xk + h/2, yk + m1*h/2),
m3 = f(xk + h/2, yk+m2*h/2),
m4 = f(xk +h, yk + m3*h/2), k = 1,2,3,…,N-1.
Метод Рунге-Кутта значно точніший за методЕЭйлера, але і програмування його складніше, проте могутній апарат формул Microsoft Excel дозволяє порівняно просто організувати обчислення.
Метод Рунге-Кутта для системи диференціальних рівнянь.
Будь-яку з формул Рунге-Кутта можна використовувати для рішення систем диференціальних рівнянь і, отже, для рішення рівнянь більш високих порядків, тому що будь-яке диференціальне рівняння n-го порядку можна звести до n диференціальних рівнянь першого порядку.
Наприклад, у диференціальному рівнянні другого порядку
можна принять z=dy/dt . Тоді dz/dt=d2y/dt2 і одержуємо два рівняння першого порядку
где f(t,y,z)=z.
Задача Коші в цьому випадку
містить дві початкові
умови
Формули Рунге-Кутта для розглянутого випадку имеют вид
,
где
Тут
K1=hz(tn,yn,zn)
L1= hg(tn,yn,zn)
K2=hz(tn+1/2h,yn+1/2K1,zn+1/2L1),
L2= hg(tn+1/2h,yn+1/2K1,zn+1/2L1),
K3= hz(tn+1/2h,yn+1/2K2,zn+1/2L2),
L3= hg(tn+1/2h,yn+1/2K2,zn+1/2L2),
K4= hz(tn+h,yn+K3,zn+L3),
L4= hg(tn+h,yn+K3,zn+L3).
Всі одношагові методи характеризуються тим, що не потребують дійсного обчислення похідних - обчислюється лише сама функція. Вони дозволяють легко змінювати розмір кроку h.
Методи, у яких для пошуку рішення потрібно інформація більш ніж в одній точці, називаються многошаговими. До них відносять методи прогнозу і корекції, методи Адамса, методи Хемминга, Милна й ін. Перед тим, як застосовувати ці методи, доводиться обчисляти вихідні дані за допомогою якогось одношагового методу. Часто прибігають до методу Рунге-Кутта. У загальному випадку многошагові методи виявляються більш ефективними.
Роздивимося на прикладі застосування і програмування обчислювальних схем одношагових методів.
Приклад 1. Знайдемо рішення диференціального рівняння такого вигляду: dx/dy =y+exp(x)-x, задовольняючій початковій умові y(0) = 0,25.
Рішення потрібно знайти на відрізку (0,T), де параметр T може приймати будь-які значення.
Точне рішення цього рівняння має такий вид:
y(x) = exp(2x) – exp(x) – x .
Нам потрібно
знайти
чисельне
рішення
цього
рівняння,
тобто
функцію
задану в
табличному
виді, що
приймає
значення
на відрізку
з кроком
h і
порівняти
його з
точним
рішенням
у тих
же точках.
Визначим крок h по наступній формулі:
h = T/N
де N - число точок на відрізку , у яких обчислюється значення шуканої функції.
Для рішення поставленої задачі ми застосуємо метод Ейлера і метод Рунге-Кутта 4-го порядку. Перший метод приводиться для ілюстрації, а другий для безпосереднього рішення.
Алгоритм чисельного рішення приклада .
Для рішення скористаємося табличним процесором Excel. У колонці I у нас будуть знаходитися межі відрізка 0,Т. На початку розрахунків покладемо I1 = 0 (це значення лівої межі відрізка 0, Т). У осередку I2 буде розмір Т (правої межі відрізка 0,Т ). У осередки I3 обчисляємо крок h по формулі наступного виду:
= (I1 - I2)/N
У колонці А буде обчислюваться рішення нашої задачі по формулі Ейлера. У комірку А1 задамо початкове значення у0= 0.25. У комірку А2 уведемо формулу наступного вигляду:
=A1 + $I$3*(2*A1 + EXP(B1) + B1)
У колонку B буде знаходитися поточне значення змінної х. У комірках В1 і відповідно нижче, знаходяться формули наступного вляиду:
=I1
=B1 + $I$3, тобто в комірку В1 пересилається ліва межа відрізка (0 ,Т(, а в комірці В2 прибавляеся розмір кроку h із комірки I3 до значення в попередній комірці В1.
У колонку С обчислюєм точне рішення. У комірку С1 занесемо значення y0 рішення в точці х=0, а в комірці С2 формула вигляду:
= ЕХР(2*В2)-ЕХР(В2)+В2/2+0,25
Ця формула обчисляє значення точного рішення рівняння при значенні елемента х із комірки В2.
У колонку Н обчислюється значення чисельного рішення задачі Коші, отримане по методу Рунге-Кутта 4-го порядку. Значення хк береться з комірки В2, а значення ук береться з комірки Н1.
У комірці Н2 написана формула наступного виду:
=Н1+(D2+2*E2+2*F2+G2)*$I$3/6
У комірках D2, E2, F2, G2 записуються формули для коефіцієнтів m1, m2, m3, m4 відповідно. Ці формули мають вид:
=2*H1+EXP(B2)-B2
=2*(H1+D2*$I$3/2)+EXP(B2+ $I$3/2)-B2-$I$3/2
=2*(H1+E2*$I$3/2)+EXP(B2+$I$3/2)-B2-$I$3/2
=2*(H1+F2*$I$3)+EXP(B2+$I$3)-B2-$I$3
Розповсюджуючи формули з 2-го рядка по всіх рядках до значення х=1(у комірці відповідного стовпчика B повинне знаходиться число 1 і останній рядок має номер 101 ), ми одержимо результат по всім точкам інтервалу (0,Т).
Алгоритм обчислення значень рішення задачі Коші реалізований.
За допомогою засобів табличного процесора можна побудувати графіки поводження рішення на інтервалі (0,Т) по методу Рунге-Кутта і Ейлера, а також поводження точного рішення і порівняти ці криві.
Наведемо варіант програми на BASIC , що реалізує метод Ейлера і метод Рунге-Кутта:
0 REM Решение дифференциальных. уравнений
1 REM Методом Эйлера
2 REM Правая часть дифференциального уравнения
3 REM Dy/Dx=F(x,4) описана в
4 REM программе 10000
500 INPUT «Начальное значение Y» Y1
600 INPUT «Значение х, начальное, конеч»; А,Е
1000 N1 = 2
1050 PRINT
1100 H = (E-A)/N1
1200 GOSUB 5000
1300 PRINT N1; TAB (7);»Частичных интервалов»;
1400 PRINT «Y=»;Y
1500 N1=N2*2
1600 GOTO 1100
5000 Программа для вычисления
5002 правой части
5004 дифф. уравнения
5100 Y = Y1
5200 FOR X=A то E-H STEP H
5300 GOSUB 10000
5400 Y=Y+D*H
5500 NEXT X
5600 RETURN
10000 REM задается
10005 REM правая часть
10010 REM уравнения
11000 D=X*Y
12000 RETURN
20000 END
Програма рішення диференціального рівняння методом Рунге-Кутта має вигляд:
0 REM Решение дифф. уравнений
1 REM Методом Рунге-Кутта
2 REM Правая часть дифф. уравнения
3 REM Dy/Dx=F(x,4) описана в
4 REM 10000 программе в виде D=F(X9,Y9)
5 REM Ошибка пропорциональна H///5
500 INPUT «Начальное значение Y» Y1
600 INPUT «Значение х, начальное, конечное»; А,Е
1000 N1 = 2
1050 PRINT
1100 H = (E-A)/N1
1200 GOSUB 5000
1300 PRINT N1; TAB (7):»Частичных интервалов»;
1400 PRINT «Y=»;Y
1500 N1=N2*2
1600 GOTO 1100
5000 REM Программа для вычисления
5010 REM правой части дифференциального уравнения
5100 Y = Y1
5200 FOR X=A то E-H STEP H
5300 Х9 = Х : Y9 = Y : GOSUB 10000: K1 = H * D
5400 X9 =X + H/2 : Y9 = Y + K1/2: GOSUB 10000:K2=H*D
5500 X9 =X + H/2 : Y9 = Y + K2/2: GOSUB 10000:K3=H*D
5600 X9 =X + H : Y9 = Y + K3: GOSUB 10000:K4=H*D
5700 Y = Y + (K1+2*K2+2K3+K4)/6
5800 NEXT X
5900 RETURN
10000 REM задается правая часть
10005 REM дифференциального уравнения
11000 D=X9*Y9
12000 RETURN
20000 END
Деякі диференціальні рівняння не вирішуються жодним з наведених вище методів. Щоб зрозуміти чому це так, необхідно чітко подавати структуру рішення диференціального рівняння. Постійна часу диференціального рівняння першого порядку - це проміжок часу, після закінчення якого величина нестаціонарної частини рішення убуває в e-1 раз. У загальному випадку диференціальне рівняння n- порядку має n постійних часу. Якщо будь-які з них сильно відрізняються по величині або якщо одна з постійних часу достатньо мала в порівнянні з інтервалом часу, для якого розщукується рішення, то задача називається жорсткою і її практично неможливо вирішити звичайними методами. У таких випадках крок повинний бути достатньо малий, щоб можна було враховувати зміну найбільше швидко мінливих членів рівняння навіть після того, як їхній внесок стане практично непомітним. Якщо не вдасться зберегти достатньо малу величину кроку, то рішення стає хитливим. Хоча трудності, пов'язані з забезпеченням усталеності рішення жорстких задач звичайними методами , можна тимчасово обминути, зменшивши величину кроку, такий підхід має дві хиби. По-перше, якщо величина кроку дуже мала в порівнянні з інтервалом, для якого відшукується рішення, то для одержання рішення треба багато часу. По-друге, що накопичуються в процесі тривалих обчислень похибки округлення й усікання можуть призвести до одержання безглуздого результату.
З жорсткими задачами ми зштовхуємося при рішенні ряду важливих задач керування, розрахунку електричних мереж, хімічних реакцій і т.д. Тому велика увага виділена розробці спеціальних методів для рішення таких задач. Серед найбільше відомих варто назвати методи Адамса і методи, запропоновані Гиром і Халлом.
2.4.6. Стійкість
Фізичні процеси, описані звичайними диференціальними рівняннями можуть бути стійкими або нестійкими. Ця характеристика виявляє істотної і, тому, потребуває в перевірці.
Якщо на систему зроблене деякий вплив, то реакцією на цей вплив буде вихід системи з рівноважного стана. При припиненні впливи, стійка система повинна повернутися у вихідний рівноважний стан або другий рівноважний стан. У противному випадку система хитлива.
Так, наприклад, для системи автоматичного регулювання перехідні процеси при виникаючому обуренні повинні бути загасаючими, а для математичної моделі це означає, що всі речовинні корені характеристичного рівняння повинні бути негативними. У комплексних коренях повинна бути негативної речовинна частина. Тоді показники ступеня усіх експонент будуть негативні. Їхня величина буде рости пропорційно часу, у результаті чого з часом абсолютні значенняусіх експоненціальних додатків будуть прямувати до нуля. Отже, щоб відповісти на запитання стійка або хитлива система, достатньо знайти корені її характеристичного рівняння. Цей засіб перевірки усталеності відносить до алгебраїчних критеріїв.
Перевірка диференціального рівняння на стійкість по Раусу-Гурвицю.
Для аналізу стійкості по Раусу-Гурвицу необхідно одержати характеристичне рівняння диференціального рівняння, що описує що моделюється систему або процес. Характеристичне рівняння являє собою алгебраїчне рівняння виду:
a
p
+a
p
+…+a
p+a
=0,
де
a
-
коефіцієнти характеристичного
рівняння (k=
), вони рівні коефіцієнтам диференціального
рівняння; р
- невідома алгебраїчного рівняння (не
можна ототожнювати з змінної
диференціального рівняння);
N - cтепень рівняння; N
дорівнює максимальному порядку похідної
перемінної в диференціальному рівнянні;
a
- вільний член рівняння.
Введемо наступні позначення визначників характеристичного рівняння:
a
0 0 0 0 … 0 0
a
2
a1
a
0 0 … 0 0
a
4
a3
a2
a1
a
… 0 0
……………………………………..
0
0 0 … aN-3
aN-4
aN-5
0
0 0 … a
aN-2
aN-3
0
0 0 … 0 a
a
де ak- коефіцієнти алгебраїчного рівняння (якщо відповідний коефіцієнт у рівнянні відсутніх, те у визначниках він покладається рівним нулю).
Критерій Рауса-Гурвица можна сформулювати в такий спосіб. Для стійкості системи, що описується диференціальним рівнянням N-го порядку, необхідно і достатньо, щоб:
1) усі коефіцієнти характеристичного рівняння були позитивні
2) передостанній визначник
Рауса-Гурвица був позитивний
>0.
Приклад. Для характеристичного рівняння диференціального рівняння автоматичного регулювання маємо:
а3 p3+а2 p2+a1 p+а0=0,
а3=ТмТд
а2=Tм+Tд
а1=1
a0=k1kykмkд
Тоді умови стійкості запишуться у виді
а3>0, а2>0, а1>0, a0>0
= =a1a2-a0a3>0.
Відзначимо, що для рівнянь другого порядку необхідною і достатньою умовою стійкості є статечність коефіцієнтів ak характеристичного рівняння.