- •ПРЕДИСЛОВИЕ
- •ОПРЕДЕЛЕНИЕ И НАЗНАЧЕНИЕ МОДЕЛИРОВАНИЯ
- •1.1. ЧТО ТАКОЕ МОДЕЛЬ?
- •Место моделирования среди методов познания
- •Определение модели
- •Определение модели
- •Цели моделирования
- •1.2. КЛАССИФИКАЦИЯ МОДЕЛЕЙ
- •Материальное моделирование
- •Идеальное моделирование
- •Когнитивные, концептуальные и формальные модели
- •1.3. Классификация математических моделей
- •Классификационные признаки
- •Классификация математических моделей в зависимости от оператора модели
- •Классификация математических моделей в зависимости от целей моделирования (рис. 1.11)
- •Классификация математических моделей в зависимости от методов реализации (рис. 1.12)
- •Задания для самостоятельного выполнения
- •Глава 2
- •ЭТАПЫ ПОСТРОЕНИЯ МАТЕМАТИЧЕСКОЙ МОДЕЛИ
- •2.1. ОБСЛЕДОВАНИЕ ОБЪЕКТА МОДЕЛИРОВАНИЯ
- •2.2. КОНЦЕПТУАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ МОДЕЛИРОВАНИЯ
- •2.3. МАТЕМАТИЧЕСКАЯ ПОСТАНОВКА ЗАДАЧИ МОДЕЛИРОВАНИЯ
- •2.4. ВЫБОР И ОБОСНОВАНИЕ ВЫБОРА МЕТОДА РЕШЕНИЯ ЗАДАЧИ
- •stop
- •2.5. РЕАЛИЗАЦИЯ МАТЕМАТИЧЕСКОЙ МОДЕЛИ В ВИДЕ ПРОГРАММЫ ДЛЯ ЭВМ
- •2.6. ПРОВЕРКА АДЕКВАТНОСТИ МОДЕЛИ
- •2.7. ПРАКТИЧЕСКОЕ ИСПОЛЬЗОВАНИЕ ПОСТРОЕННОЙ МОДЕЛИ И АНАЛИЗ РЕЗУЛЬТАТОВ МОДЕЛИРОВАНИЯ
- •Задания для самостоятельного выполнения
- •ПРИМЕРЫ МАТЕМАТИЧЕСКИХ МОДЕЛЕЙ
- •3.1. СТАТИЧЕСКИЙ АНАЛИЗ КОНСТРУКЦИЙ
- •Содержательная постановка задачи
- •Концептуальная постановка задачи
- •Математическая постановка задачи
- •Решение задачи
- •Анализ результатов
- •Концептуальная постановка
- •Математическая постановка задачи
- •Методика решения задачи
- •Анализ результатов
- •3.3. ДИНАМИКА ПОПУЛЯЦИИ
- •Содержательная постановка задачи
- •Концептуальная постановка задачи
- •Решение задачи
- •Анализ результатов
- •Математическая постановка задачи для модели Ферхюльста
- •Решение задачи
- •Анализ результатов
- •Численное исследование модели Ферхюльста
- •3.4. МОДЕЛЬ КОНКУРЕНЦИИ ДВУХ ПОПУЛЯЦИЙ
- •Математическая постановка задачи
- •Качественный анализ задачи
- •Численное исследование модели конкуренции популяций
- •3.5. ГАРМОНИЧЕСКИЙ ОСЦИЛЛЯТОР
- •Содержательная постановка задачи
- •Концептуальная постановка задачи
- •Математическая постановка задачи
- •Решение задачи
- •Качественный анализ задачи
- •Численное исследование модели
- •Качественный анализ задачи
- •Решение задачи
- •Задания для самостоятельного выполнения
- •Глава 4
- •СТРУКТУРНЫЕ МОДЕЛИ
- •4.1. ЧТО ТАКОЕ СТРУКТУРНАЯ МОДЕЛЬ?
- •4.2. СПОСОБЫ ПОСТРОЕНИЯ СТРУКТУРНЫХ МОДЕЛЕЙ
- •4.3. ПРИМЕРЫ СТРУКТУРНЫХ МОДЕЛЕЙ
- •Задания для самостоятельного выполнения
- •МОДЕЛИРОВАНИЕ В УСЛОВИЯХ НЕОПРЕДЕЛЕННОСТИ
- •5.1. ПРИЧИНЫ ПОЯВЛЕНИЯ НЕОПРЕДЕЛЕННОСТЕЙ И ИХ ВИДЫ
- •5.2. МОДЕЛИРОВАНИЕ В УСЛОВИЯХ НЕОПРЕДЕЛЕННОСТИ, ОПИСЫВАЕМОЙ С ПОЗИЦИЙ ТЕОРИИ НЕЧЕТКИХ МНОЖЕСТВ
- •5.3. МОДЕЛИРОВАНИЕ В УСЛОВИЯХ СТОХАСТИЧЕСКОЙ НЕОПРЕДЕЛЕННОСТИ
- •5.4. МОДЕЛИРОВАНИЕ МАРКОВСКИХ СЛУЧАЙНЫХ ПРОЦЕССОВ
- •Задания для самостоятельного выполнения
- •ЛИНЕЙНЫЕ И НЕЛИНЕЙНЫЕ ЯВЛЕНИЯ
- •6.1. О ЗАКОНЕ ГУКА И ГРАНИЦАХ ЛИНЕЙНОСТИ
- •6.3. О ПОСТРОЕНИИ СПЛОШНЫХ МОДЕЛЕЙ. ВЫВОД ВОЛНОВОГО УРАВНЕНИЯ ИЗ ЗАКОНОВ МЕХАНИКИ
- •6.4. РЕШЕНИЕ ВОЛНОВОГО УРАВНЕНИЯ МЕТОДОМ ФУРЬЕ
- •6.6. УРАВНЕНИЯ МАКСВЕЛЛА
- •6.7. О КЛАССИФИКАЦИИ КВАЗИЛИНЕЙНЫХ СИСТЕМ
- •6.8. СВЯЗЬ НЕПРЕРЫВНОГО И ДИСКРЕТНОГО НА ПРИМЕРАХ УРАВНЕНИЯ КОЛЕБАНИЙ СТРУНЫ И УРАВНЕНИЯ ШРЕДИНГЕРА
- •6.9. О ПОЛЬЗЕ ФЕНОМЕНОЛОГИИ ПРИ ПОСТРОЕНИИ МАТЕМАТИЧЕСКИХ МОДЕЛЕЙ
- •6.10. АНАЛИЗ ПОДОБИЯ И РАЗМЕРНОСТИ
- •6.11. АВТОМОДЕЛЬНОСТЬ
- •6.12. САМООРГАНИЗАЦИЯ И СТРУКТУРЫ В НЕЛИНЕЙНЫХ СРЕДАХ
- •6.13. О НЕЛИНЕЙНЫХ ВОЛНАХ В СПЛОШНЫХ СРЕДАХ
- •6.14. ИЕРАРХИЧЕСКИЕ МОДЕЛИ ТУРБУЛЕНТНОСТИ И МНОГОМАСШТАБНЫЕ ФУНКЦИОНАЛЬНЫЕ БАЗИСЫ
- •Иерархический базис для турбулентных полей
- •Одномерный иерархический базис
- •Двумерный базис
- •6.15. ВЕЙВЛЕТЫ
- •Непрерывное вейвлет-преобразование
- •6.16. ВЕЙВЛЕТ-АНАЛИЗ ВРЕМЕННЫХ КОЛЕБАНИЙ
- •6.17. О ФРАКТАЛАХ И ИХ ПРИМЕНЕНИИ
- •Примеры фракталов
- •Подобие и скейлинг
- •Множества Мандельброта и Жюлиа
- •Фрактальная размерность кластеров
- •Экспериментальные методы определения фрактальной размерности
- •Модель случайных фракталов для описания растущих дендритных структур
- •Результаты применения модели случайных фракталов
- •6.18. НЕЛИНЕЙНЫЕ МОДЕЛИ ДНК
- •Структура и физические свойства ДНК
- •Модель Пейрара-Бишопа
- •Задания для самостоятельного выполнения
- •Глава 7
- •7.2. ИМИТАТОР СИСТЕМЫ МАССОВОГО ОБСЛУЖИВАНИЯ
- •7.3. КЛЕТОЧНЫЕ АВТОМАТЫ
- •7.4. МОДЕЛИРОВАНИЕ ДИСЛОКАЦИЙ В МЕТАЛЛЕ
- •Самоорганизация дислокаций в модели клеточных автоматов
- •Задания для самостоятельного выполнения
- •ЯЗЫК ФОРМАЛЬНОГО ОПИСАНИЯ АЛГОРИТМОВ
- •====== Приложение 2
- •П2.1. Решение уравнений высоких степеней и трансцендентных уравнений с одним неизвестным
- •П2.2. Решение систем линейных уравнений
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
- •ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
- •ОГЛАВЛЕНИЕ
- •Введение в математическое моделирование
====== Приложение 2
ЧИСЛЕННЫЕ МЕТОДЫ
(минимальные сведения)
Раздел математики, в котором разработаны способы приближенно го решения различных задач (решения уравнений, интегрирование, диф ференцирование, нахождение экстремумов функций и т.д.) не алгебраи ческим путем и не методами математического анализа, а путем много кратных арифметических действий над числами, называется «Численные методы», или «Вычислительная математика». Начало развития численных методов решения задач относится ко временам Ньютона. Однако лишь с появлением вычислительной техники эти методы нашли широкое при менение.
Ниже описываются только самые простые методы, неэффективные в отношении скорости вычислений, дающие сравнительно грубые резуль таты, но зато доступные для понимания. С более совершенными мето дами можно познакомиться в курсах и пособиях по вычислительной ма тематике.
П2.1. Решение уравнений высоких степеней и трансцендентных уравнений с одним неизвестным
Очень часто при исследовании математических моделей приходится сталкиваться с необходимостью решать уравнения с одной неизвестной. Так, для линейного уравнения
ах + b = О |
(П2.1) |
все сводится к нахождению х по формуле х = —b/а . В случае квадрат
ного уравнения —к нахождению хх и х^ по Алгоритму П1.1 из приложе ния 1. Кубическое уравнение
ах3 + Ъх2 + сх + d = О |
(П2.2) |
всегда может быть приведено к виду
у* + ру + q = о |
(П2.3) |
путем деления его на а и подстановкой х = у - Ь/(Ъа). Корни уравнения (П2.3) могут быть найдены по формуле Кардано:
(П2.4)
Преобразование (П2.2) к виду (П2.3) и нахождение корней с помо щью (П2.4) довольно громоздко, поэтому применение вычислительной техники здесь уже вполне рационально. Не менее сложным является решение уравнения четвертой степени, если только оно не сводится к биквадратному. Формул для решения уравнений пятой степени и выше не существует. Уравнения, в которых неизвестное встречается не толь ко в какой-либо степени, но и под знаком других функций (sin х, lg х, е^ит.п.), называются трансцендентными. Кроме самых простых случаев для нахождения корней этих уравнений формул не существует.
Численные методы в совокупности с ЭВМ позволяют решать срав нительно просто как алгебраические уравнения произвольных степеней, так и трансцендентные. Любое уравнение с одним неизвестным может быть приведено к виду
Дх) = 0. |
(П2.5) |
Корнем такого уравнения будет значение х, при котором Дх) про ходит через ноль (рис. П2.1). Разобьем решение уравнения на два эта па: изоляцию корней и уточнение значения изолированного корня.
Рис. П2.1. Корни уравнения
Изоляция корней означает определение такого отрезка [а, А], где есть корень, притом только один. Эта задача решается либо путем анализа функции Дх), либо построением таблицы значений функции при различ ных значениях аргумента (выполнение табуляции функции). Далее по строенный по полученной таблице график функции Дх) удобно исполь зовать для приближенного вычисления корней уравнения. Как табуля цию, так и построение графика функции целесообразно выполнять с использованием электронных таблиц (например, электронной таблицы MS Excel), не прибегая к написанию собственных программ.
Рис. П2.2. Иллюстрация к методу деления отрезка пополам
Для уточнения значения корня уравнения после его изоляции суще ствуют различные методы. Простейшим является метод деления отрезка пополам. Идея метода заключается в следующем. На первом шаге вычис ляются значения функции на концах отрезка (рис. П2.2). Затем исход ный отрезок [а, Ь] делят пополам (точка Xj) и вычисляют значение фун кции в этой точке. Из двух отрезков выбирается тот, для которого зна чения функции на концах отрезка имеют противоположные знаки (отрезок [xj, b\ на рис. П2.2). Выбранный отрезок снова делят пополам, вновь вычисляют значение функции в полученной точке и осуществля ют выбор отрезка. Процесс продолжается до тех пор, пока модуль зна чения функции в средней точке очередного выбранного отрезка не ста нет меньше некоторого малого положительного е. Ниже приведен воз можный алгоритм данного метода.
А л гор и тм П2.1
Procedure Уточнение корней уравнения методом деления пополам. Данные: F(x) —исследуемая функция;
а, b —Исходный исследуемый отрезок; е - точность вычислений. Результаты: х —значение корня уравнения,
start
х := а
if (F(a)F(b) < 0) then while (|Дх)| > () do
х:= (a + b )/ 2
if (F(x):F(a) < 0) then b : = x новый отрезок [a, (a+ b)/2] else а:=хновый отрезок [(a+b)/2, b]
end if end while
else Attention(Отрезок задан неверно. Корень не изолирован.)
return
Более эффективным методом уточнения корней уравнения являет ся метод хорд. В отличие от предыдущего метода исследуемый отрезок разбивается на два новых точкой пересечения оси абсцисс с линией,
проходящей через точки А и В графика функции Дх), соответствующие
концам отрезка (рис. П2.3). Ниже приведен алгоритм метода хорд.
Рис. П2.3. Схема к методу хорд
А л гор и тм П2.2
Procedure Уточнение корней уравнения методом хорд.
Данные: Дх) - исследуемая функция; е —точность вычислений. а, Ъ—исходный исследуемый отрезок, а < Ь.
Результаты: х —значение корня уравнения, start
х := а
if (Дд)-Д6) < 0) then |
|
|
while (|F(x)| > е) |
do |
|
* = * + (ь- |
а) *\ттьут)\ |
|
if (Д х)Д а) < 0) then b:=x |
новый отрезок [а, х] |
|
|
else а\—х |
новый отрезок [х, Ь\ |
end if end while
else Attention(Отрезок задан неверно. Корень не изолирован,)
return
П2.2. Решение систем линейных уравнений
Многие задачи математического моделирования сводятся к системе п линейных алгебраических уравнений:
аих1+а12х2+...+а1пхп=Ь1, а21хх+ап х1 + ...+агпхп=Ъ1,
(П2.6)
anlx l +a n2x2 + - + a nnxn = bn-
°\\ |
°п |
и\п |
|
°2 1 |
°2 2 |
°2п |
(П2.7) |
|
|
|
|
_ап1 |
ап2 |
|
|
ИЛИ
[А]{Х}={В}. (П2.8)
При исследовании многих моделей, связанных, например, с реше нием задач механики сплошных сред в объемной постановке или задач из области экономики, приходится решать системы, состоящие из не скольких тысяч или десятков тысяч уравнений. В этом случае особое вни мание приходится уделять вопросам повышения эффективности и точ ности применяемых методов решения.
Все методы решения систем линейных уравнений делят на прямые и итерационные.
Прямые методы позволяют за конечное число действий найти точ ное решение системы уравнений (П2.6), если входная информация (пра вая часть уравнений {В} и элементы ау матрицы [А]) заданы точно и
вычисления ведутся без округления. Конечно, прямые методы также дают решение с определенной точностью, которая зависит от ошибок округ ления, т.е. от точности представлений данных в ЭВМ, характера решае мых задач и самого метода решения системы уравнений. К наиболее известным представителям прямых методов можно отнести методы Га усса и квадратного корня.
Итерационный метод позволяет найти приближенное решение сис темы путем построения последовательности приближений (итераций), начиная с некоторого начального приближения. К этому классу методов относят методы итераций и Зейделя. При выборе того или иного метода исходят из мощности имеющейся вычислительной техники и требуемой точности получаемого решения. Для больших систем (более 10 тыс. урав нений), как правило, используют итерационные методы.
В качестве примера рассмотрим алгоритм наиболее часто применя емого метода —метода Гаусса. Как уже отмечалось, данный метод отно сится к прямым и позволяет найти решение за конечное число шагов. Алгоритм метода состоит из двух этапов, или ходов: прямого и обратно го. При прямом ходе система уравнений приводится к треугольному виду.
Пусть требуется решить следующую систему уравнений:
2JCJ + 8JC2 +4х3 = 4, |
(П2.9а) |
4 * i + * 2 “ |
2 х з = |
(П2.96) |
|
П р я м о й х о д . Первый шаг. И с к л ю ч а е м |
и з в с е х у р а в н е н и й , к р о м е п е р |
в о г о , н е и з в е с т н о е xv Р а з д е л и м п е р в о е у р а в н е н и е ( П 2 .9 а ) н а аи = 2: |
|
*! + 4*2 + 2*3 = 2. |
( П 2 .1 0 ) |
Д л я |
и с к л ю ч е н и я хх и з у р а в н е н и я ( П 2 .9 6 ) , у м н о ж и м (П 2 .1 0 ) н а — 4 |
и с л о ж и м с ( П 2 .9 6 ) . А н а л о г и ч н о , у м н о ж а я ( П 2 . 10) н а - 8 и с к л а д ы в а я с |
( П 2 .9 в ) , и с к л ю ч и м и з |
н е г о |
х{: |
|
|
|
|
|
|
|
- 1 5 * 2 - 1 0 * 3 = - 1 0 , |
|
|
( П 2 .1 1 а ) |
||||
|
- 2 0 * 2 |
- 8*3 = - 4 . |
|
|
( П 2 .1 1 6 ) |
|||
В р е з у л ь т а т е и м е е м с и с т е м у у р а в н е н и й в т о р о г о п о р я д к а . |
|
|
||||||
Второй шаг. И с к л ю ч и м |
*2 и з в с е х у р а в н е н и й , к р о м е п е р в о г о |
и в т о |
||||||
р о г о . Д л я э т о г о р а з д е л и м ( П 2 .1 1 а ) н а - 1 5 |
|
|
|
|
||||
|
*2 + 0,6 7 * 3 |
= 0 ,6 7 . |
|
|
|
( П 2 .1 2 ) |
||
У м н о ж и м ( П 2 .1 2 ) н а 2 0 и с л о ж и м с ( П 2 .1 1 6 ) : |
|
|
||||||
|
|
5,33*з = 9,33. |
|
|
(П2.13) |
|||
Третий шаг. Д е л и м ( П 2 .1 3 ) |
н а 5 ,3 3 , в |
р е з у л ь т а т е и м е е м |
* 3 = |
1 ,7 5 . |
||||
И т а к п о л у ч а е м с и с т е м у : |
|
|
|
|
|
|
||
|
|
* j + 4 * 2 + 2 * 3 = 2, |
|
|
||||
|
|
* 2 + 0 ,6 7 * 3 = 0 ,6 7 , |
( П 2 .1 4 ) |
|||||
|
|
* 3 = 1 ,7 5 |
|
|
|
|
||
|
|
|
1 |
4 |
2 |
' |
|
|
с в е р х н е й т р е у г о л ь н о й м а т р и ц е й |
0 1 0 ,6 7 |
|
|
|
||||
|
|
|
0 |
0 |
1 |
|
|
|
О б р а т н ы й х о д . И з с и с т е м ы ( П 2 .1 4 ) п о с л е д о в а т е л ь н о н а х о д и м : |
||||||||
3 - е у р а в н е н и е : * 3 = 1 ,7 5 ; |
|
|
|
|
|
|
||
2 - е у р а в н е н и е : х^ = 0 ,6 7 - 0 ,6 7 * 3 = - 0 ,5 ; |
|
|
||||||
1 -е у р а в н е н и е : |
*1 = |
2 - 4*2 - |
2*3 = |
0 ,5 . |
|
|
||
Р е ш е н и е с и с т е м ы у р а в н е н и й ( П 2 .9 ) н а й д е н о : |
|
|
||||||
|
* ! = 0 ,5 , |
*2 = - 0 ,5 , |
* 3 = 1 ,7 5 . |
|
|
Н и ж е п р и в е д е н а з а п и с ь а л г о р и т м а м е т о д а Г а у с с а н а п с е в д о к о д е д л я с и с т е м ы и з п у р а в н е н и й с п н е и з в е с т н ы м и .
А л г о р и т м П 2 .3 . |
|
|
|
|
|||
P r o c e d u r e М е т о д |
Г а у с с а |
д л я |
с и с т е м ы у р а в н е н и й [А ]{Х }={В }. |
||||
Данные: |
п - |
|
ч и с л о н е и з в е с т н ы х ; |
||||
|
В[1...п] |
|
— к в а д р а т н а я м а т р и ц а к о э ф ф и ц и е н т о в ; |
||||
|
— п р а в а я ч а с т ь с и с т е м ы у р а в н е н и й . |
||||||
Результат: В[1...п\ |
— р е ш е н и е с и с т е м ы , |
||||||
s t a r t |
|
|
|
|
|
|
|
fo r к:=1 to л -1 |
|
|
|
< = п р я м о й х о д |
|||
if \АкrJc\< |
1 0 “ 20 |
th e n |
|
||||
E r r o r |
( Элемент главной диагонали равен О) |
||||||
E x it |
|
|
|
|
|
|
|
e n d |
if |
|
|
|
|
|
|
В/с := Вк / Akk |
|
обработка k-й строки |
|||||
fo r / |
:= k + 1 to |
|
|
|
|||
A ki |
|
|
A k i / A kk |
|
|||
n e x t |
i |
|
|
|
|
|
|
fo r j |
k+ \ |
to |
n |
обработка всех нижележащих строк |
|||
|
if |
\Ajk\ |
> |
10”20 th e n |
|||
|
|
|
Bj |
|
Bj — B k Ajk |
||
|
|
fo r |
/ := |
k + 1 |
t o n |
||
|
|
|
|
|
Aji |
Aji ~~ Ajk ' A ki |
|
|
|
|
n e x t |
/ |
|
|
|
|
|
AJ k = 0 |
|
|
|||
|
e n d |
if |
|
|
|
|
|
n e x t j |
|
|
|
|
|
|
|
n e x t k |
|
Ann |
|
|
|
||
B„ := Bn / |
|
|
|
||||
n |
n • |
nn |
|
|
|
<= обратный ход |
|
fo r j := YI—1 to |
1 s te p - 1 |
||||||
fo r / := n to y+ 1 s te p - 1 |
|||||||
|
Bj |
|
Bt - |
AJt |
B, |
||
n e x t |
/ |
|
|
|
|
|
|
n e x t j |
|
|
|
|
|
|
|
r e tu r n |
|
|
|
|
|
|
|
П 2.3. Решение обыкновенных дифференциальных уравнений
М а т е м а т и ч е с к а я п о с т а н о в к а м н о г и х з а д а ч м а т е м а т и ч е с к о г о м о д е л и
р о в а н и я с в о д и т с я к с и с т е м е обыкновенных дифференциальных уравнений
(О Д У ) . П р о с т е й ш е е О Д У - у р а в н е н и е п е р в о г о п о р я д к а
% = |
(П 2 .1 5 ) |
а х |
|
Р е ш е н и е э т и х у р а в н е н и й з а к л ю ч а е т с я в н а х о ж д е н и и т а к и х ф у н к ц и й у (х ), к о т о р ы е п р и п о д с т а н о в к е о б р а щ а ю т у р а в н е н и е в т о ж д е с т в о . Н а п р и
м е р , у р а в н е н и е |
dyjdx = ax+b и м е е т |
р е ш е н и е |
у = ах2/ 2 + Ьх + с . |
Е с л и д а н о |
н а ч а л ь н о е у с л о в и е , |
н а п р и м е р |
>|х=0 = у0 , т о м о ж н о н а й т и |
з н а ч е н и е к о н с т а н т ы |
с : с —у 0. |
|
К а к п р а в и л о , |
т о л ь к о в |
о т н о с и т е л ь н о п р о с т ы х с л у ч а я х р е ш е н и е |
О Д У м о ж н о п о л у ч и т ь а н а л и т и ч е с к и , т .е . в в и д е ф о р м у л . Ч и с л е н н ы е м е
т о д ы п о з в о л я ю т н а й т и р е ш е н и е любого О Д У , |
о д н а к о о т в е т п о л у ч а е т с я н е |
в в и д е а н а л и т и ч е с к о й з а в и с и м о с т и , а в в и д е |
т а б л и ц ы : |
X
Y
X ,
У,
Хг Хз
ЪУз
П р и э т о м о б я з а т е л ь н о з а д а н и е н а ч а л ь н ы х у с л о в и й . О д н и м и з п р о с т е й ш и х
м е т о д о в ч и с л е н н о г о и н т е г р и р о в а н и я О Д У я в л я е т с я м е т о д Э й л е р а .
М е т о д Э й л е р а . П у с т ь д и ф ф е р е н ц и а л ь н о е у р а в н е н и е п р и в е д е н о к
в и д у ( П 2 . 1 5 ) , а в и д ф у н к ц и и f(x ,y ) и з в е с т е н . |
З а м е н и м |
п р и б л и ж е н н о |
||
д и ф ф е р е н ц и а л ы п р и р а щ е н и я м и : |
|
|
|
|
Ау |
Ау = f(x,y)А х . |
|
||
— |
= / ( * , У ) , и л и |
( П 2 .1 6 ) |
||
З а д а д и м н а ч а л ь н ы е у с л о в |
и я jjx=0 = у0 и |
в ы б е р е м |
ш а г А х п р и р а щ е н и я а р |
г у м е н т а . Т о г д а , и с п о л ь з у я ( П 2 .1 6 ) , м о ж н о п о с л е д о в а т е л ь н о в ы ч и с л и т ь з н а ч е н и я х и у:
*0 |
X\=XQ+ A X |
х2=х\+Ах |
х3=х2+Дх |
|
|
Уо |
У1=Уо+А.х»Уо) Д* |
У2=У1+Л*1.л) А* |
Уз=У |
+Л хьУ ) Лх |
. . . |
|
|
2 |
2 |
|
|
и л и |
|
|
|
|
|
|
xk+l =хк +Ах, yk+l =yk + f(x k,yk)Ax. |
( П 2 .1 7 ) |
С п о м о щ ь ю а н а л и т и ч е с к о г о м е т о д а п о л у ч а е м р е ш е н и е в в и д е г л а д к о й и н т е г р а л ь н о й к р и в о й у р а в н е н и я ( П 2 .1 5 ) (р и с . П 2 .4 ) .
И с п о л ь з о в а н и е м е т о д а Э й л е р а п о з в о л я е т п о л у ч и т ь п о с л е д о в а т е л ь н о с т ь т о ч е к , с о е д и н и в к о т о р ы е м о ж н о п о с т о о и т ь ломаную Эйлера. С у м е н ь -
шением шага интегрирования Дх кривая Эйлера приближается к интег ральной кривой.
Для метода Эйлера характерны малая точность вычислений и систе матическое накопление ошибок. Пример алгоритма, использующего ме тод Эйлера, для системы уравнений первого порядка приведен в гл. 2.
Примечание. Задачи динамики точки, как правило, приводят к сис теме двух ОДУ первого порядка по каждой координате. При вычислении новых скоростей точки значения действующих сил берутся на момент начала каждого шага и не учитывается их изменение за шаг. Таким об разом, принимается, что на шаге по времени точка движется под дей ствием постоянных сил и с постоянным ускорением.
Это обстоятельство можно учесть при вычислении новой координа ты точки. Если уравнение для координат решать после уравнения для скоростей, то в этом случае можно воспользоваться значениями скорос тей точки на начало и на конец шага по времени. При равноускоренном движении пройденный путь равен произведению величины интервала времени на среднюю скорость точки на этом интервале. С учетом ука занного обстоятельства соотношения для скорости и координаты точки могут быть переписаны следующим образом:
v*+l =vk +AtF(t,xk,vk); хк+\ =xk +*t(vM +vk)/2.
Приведенная схема вычисления соответствует модифицированному методу Эйлера и дает более точные результаты интегрирования.
Метод Рунге-Кутта. Пусть дифференциальное уравнение приведено к виду (П2.15), а вид функции f(x,y) известен. Выберем шаг интегриро вания Ах и для краткости введем обозначения хк = х$ + кАх и Ук~У(х1)’ к = 0, 1,2, 3,...
р\к) = /(**, Ук)Ах, |
|
Р{к) = f ( x k + &х/2, ук +p[k)/l)Ax, |
|
р2к) =f(xk + Дх/2, ук +р\к)/2)Ах, |
(П2.18) |
Р(к) = f(xk + Ах, ук + р(3к))Ах. |
|
Согласно обычному методу Рунге-Кутта [36], последовательность значений ук искомой функции у определяется по формуле:
Ук+l = У к+ АУк’
где
АУк = (Р\к) + 2/4*> + 2р\к) + 4*>)/б, к = 0, 1, 2, 3, |
(П2.19) |
Метод Рунге-Кутта обладает значительной точностью и несмотря на свою трудоемкость широко используется при численном решении ОДУ.
Основная сложность при использовании численных методов интег рирования ОДУ — выбор величины шага интегрирования Ах. На прак тике величину шага Ах выбирают двойным пересчетом: вначале опреде ляют ук с шагом Ах, а затем с шагом Дх/2. Если расхождение результа тов превысило некоторую малую заданную величину е, то шаг уменьшают еще в 2 раза и повторяют вычисления. Уменьшение производят до тех пор, пока не будет достигнута заданная точность вычислений.