
- •Министерство образования Московской области
- •Содержание
- •Введение
- •Лабораторная работа № 15
- •"Численное интегрирование обыкновенных дифференциальных
- •Уравнений первого порядка"
- •Элементы теории
- •Численные методы решения задачи Коши
- •Порядок выполнения лабораторной работы.
- •Типовой отчет.
- •Варианты
- •Порядок выполнения лабораторной работы.
- •Типовой отчет.
- •Варианты
- •Вид рабочего листа Excel
- •Порядок выполнения лабораторной работы.
- •Типовой отчет
- •Варианты
- •Лабораторная работа № 18 «Решение задач эллиптического типа» Элементы теории
- •Порядок выполнения лабораторной работы.
- •Варианты
- •Вид рабочего листа ms Excel
- •Лабораторная работа № 19 "Решение задач параболического типа" Элементы теории
- •Порядок выполнения лабораторной работы.
- •Варианты
- •Порядок выполнения лабораторной работы.
- •Варианты
- •Вид рабочего листа Расчет
- •Вид рабочего листа Динамика
- •Вид диаграммы на рабочем листе Расчет для задачи б)
- •Заключение
- •Литература
- •Учебно-методическое издание
Порядок выполнения лабораторной работы.
Пример 1. Найти решение задачи Коши для системы двух обыкновенных дифференциального уравнений первого порядка:
с начальными
условиями y(1)
= 0, z(1)
= 2 на
отрезке x
[1;
2]
на сетке с числом шагов m
= 5 и m
= 10, оценить
по правилу Рунге точность расчетов и
сравнить с точным решением
.
Перед началом вычислений преобразуем систему уравнений:
Вид рабочего листа табличного процессора MS Excel приведен на рисунке. Оформление расчетов аналогично лабораторной работе "Численное интегрирование обыкновенного дифференциального уравнения первого порядка" для метода Рунге-Кутта. Отличие связано с появлением дополнительных строк для второго уравнения.
В диапазоне A5:A63 размещаем заголовки строк. Задаем узловые точки сетки: В5="1", С5="1.1", протягиваем диапазон В5:С5 до ячейки L5.
Программируем
рабочий лист для вычислений с шагом
h=0,2.
Размещаем начальное условие y(1)
= 0, z(1)
= 2: ячейка
В31="0",
В32="2".
Проводим расчет в 1-ой узловой точке.
Вычисляем угловой коэффициент функции
у
в начальной точке
:
ячейкаD6
="=-B31/B5/(B5^2+1)+B32/(B5^2)/(B5^2+1)".
Вычисляем угловой коэффициент функции
z
в начальной
точке
:
ячейкаD7="=-(B5^2)*B31/(B5^2+1)+(2*B5^2+1)*B32/B5/(B5^2+1)".
Вычисляем коэффициент
:
ячейкаD8="=(D5-B5)*D6".
Вычисляем коэффициент
:
ячейкаD9="=(D5-B5)*D7".
Вычисляем аргументы
коэффициентов k2
и l2:
ячейка
D10="=B5+(D5-B5)/2"
(),
ячейкаD11="=B31+D8/2"
(y0
+ k1/2
), ячейка
D12="
=B32+D9/2"
(z0
+ l1/2
) . Вычисляем
функцию f1
от полученных аргументов: ячейка
D13="=-D11/D10/(D10^2+1)+D12/D10^2
/(D10^2+1)".
Вычисляем функцию f2
от полученных аргументов: ячейка
D14="=-(D10^2)*D11/(D10^2+1)+(2*D10^2+1)
*D12/D10/(D10^2+1)".
Вычисляем коэффициент k2=hf1:
ячейка D15="=(D5-B5)*D13".
Вычисляем коэффициент l2=hf2:
ячейка D16="=(D5-B5)*D14".
Вычисляем аргументы
коэффициентов k3
и l3:
ячейка
D17="
=B5+(D5-B5)/2"
(),
ячейкаD18="
=B31+D15/2"
(y0
+ k2/2
), ячейка
D19=
"=B32+D16/2"
(z0
+ l2/2)
. Вычисляем функцию f1
от
полученных аргументов: ячейка D20=
"=-D18/D17/(D17^2+1)+D19/D17^2/ (D17^2+1)".
Вычисляем функцию f2
от полученных аргументов: ячейка
D21=
"=-(D17^2)*D18/(D17^2+1)+(2*D17^2+1)*D19/D17/(D17^2+1)".
Вычисляем коэффициент k3=hf1:
ячейка D22="=(D5-B5)*D20".
Вычисляем коэффициент l3=hf2:
ячейка D23="
=(D5-B5)*D21".
Вычисляем аргументы
коэффициентов k4
и l4:
ячейка
D24="=D5"
(),
ячейкаD25="=B31+D22"
(y0
+ k3
), ячейка
D26="=B32+D23"
(z0
+ l3).
Вычисляем функцию f1
от
полученных аргументов: ячейка
D27=
"=-D25/D24/(D24^2+1)+D26/D24^2/(D24^2+1)".
Вычисляем функцию f2
от полученных аргументов: ячейка
D28="=-(D24^2)*D25/(D24^2+1)
+(2*D24^2+1)*D26/D24/(D24^2+1)".
Вычисляем коэффициент k4=hf1:
ячейка D29="=(D5-B5)*D27".
Вычисляем коэффициент l4=hf2:
ячейка D30="=(D5-B5)*D28".
Вычисляем следующее приближенное
значение функции у1
= у0
+ (k1
+ 2k2
+ 2k3
+ k4
)/6
: ячейка
D31="=B31+(D8+2*D15+2*D22+D29)/6".
Вычисляем следующее приближенное
значение функции z1
= z0
+ (l1
+ 2l2
+ 2l3
+ l4
)/6
: ячейка
D32="=B32+(D9+2*D16+2*D23+D30)/6".
Протягиваем диапазон D6:E32
в диапазон
D6:L32
для вычислений в остальных узловых
точках.
Программируем
рабочий лист для вычислений с шагом
h=0,1.
Размещаем начальное условие y(1)
= 0, z(1)
= 2: ячейка
В58="0",
В59="2".
Проводим расчет в 1-ой узловой точке.
Вычисляем угловой коэффициент функции
у
в начальной точке
:
ячейкаC33="=-B58/B5/(B5^2+1)+B59/B5^2/(B5^2+1)".
Вычисляем угловой коэффициент функции
z
в начальной
точке
:
ячейкаC34="=-(B5^2)*B58/(B5^2+1)+(2*B5^2+1)*B59/B5/(B5^2+1)".
Вычисляем коэффициент
:
ячейкаC35="=(C5-B5)*C33".
Вычисляем коэффициент
:
ячейкаC36="=(C5-B5)*C34".
Вычисляем аргументы
коэффициентов k2
и l2:
ячейка
C37=
"=B5+(C5-B5)/2"
(),
ячейкаC38="=B58+C35/2"
(y0
+ k1/2
), ячейка
C39="=B59+C36/2"
(z0
+ l1/2
) . Вычисляем
функцию f1
от полученных аргументов: ячейка
C40="=-C38/C37/(C37^2+1)+C39/C37^2/(C37^2+1)".
Вычисляем функцию f2
от полученных аргументов: ячейка
C41=
"=-(C37^2)*C38/(C37^2+1)+(2*C37^2+1)*C39/C37/(C37^2+1)".
Вычисляем коэффициент k2=hf1:
ячейка C42="=(C5-B5)*C40".
Вычисляем коэффициент l2=hf2:
ячейка C43="=(C5-B5)*C41".
Вычисляем аргументы
коэффициентов k3
и l3:
ячейка
C44=
"=B5+(C5-B5)/2"
(),
ячейкаC45="=B58+C42/2"
(y0
+ k2/2
), ячейка
C46="=B59+C43/2"
(z0
+ l2/2)
. Вычисляем функцию f1
от
полученных аргументов: ячейка
C47="=-C45/C44/(C44^2+1)+C46/C44^2/(C44^2+1)".
Вычисляем функцию f2
от полученных аргументов: ячейка
C48=
"=-(C44^2)*C45/(C44^2+1)+(2*C44^2+1)*C46/C44/(C44^2+1)".
Вычисляем коэффициент k3=hf1:
ячейка C49="=(C5-B5)*C47".
Вычисляем коэффициент l3=hf2:
ячейка C50="=(C5-B5)*C48".
Вычисляем аргументы
коэффициентов k4
и l4:
ячейка
C51="=C5"
(),
ячейкаC52="=B58+C49"
(y0
+ k3
), ячейка
C53="=B59+C50"
(z0
+ l3).
Вычисляем функцию f1
от
полученных аргументов: ячейка
C54=
"=-C52/C51/(C51^2+1)+C53/C51^2/(C51^2+1)".
Вычисляем функцию f2
от полученных аргументов: ячейка
C55="=-(C51^2)*C52/(C51^2+1)+
(2*C51^2+1)*C53/C51/(C51^2+1)".
Вычисляем коэффициент k4=hf1:
ячейка C56="=(C5-B5)*C54".
Вычисляем коэффициент l4=hf2:
ячейка C57="=(C5-B5)*C55".
Вычисляем следующее приближенное
значение функции у1
= у0
+ (k1
+ 2k2
+ 2k3
+ k4
)/6
: ячейка
C58="=B58+(C35+2*C42+2*C49+C56)/6".
Вычисляем следующее приближенное
значение функции z1
= z0
+ (l1
+ 2l2
+ 2l3
+ l4
)/6
: ячейка
C59="=B59+(C36+2*C43+2*C50+C57)/6".
Протягиваем диапазон C33:C59
в диапазон
D33:L59
для вычислений в остальных узловых
точках.
Вычисляем точное
значение функции
в узловых точках: ячейкаВ60="=1-1/B5"
и протягиваем формулу в диапазон B60:L60.
Вычисляем
точное значение функции zт
= x
+ x2
в узловых
точках: ячейка В61="=B5+B5^2"
и протягиваем формулу в диапазон B61:L61.
По формуле (7)
вычисляем оценку точности в узловых
точках более крупной сетки: ячейка
D62="=МАКС(ABS(D58-D31);ABS(D59-D32))/15"
и протягиваем диапазон D62:E62
до ячейки L62.
По формуле (6)
вычисляем фактическое отклонение
приближенного значения на сетке h/2
в узлах более крупной сетки: ячейка
D63="
=МАКС(ABS(D58-D60);ABS(D59-D61))" и
протягиваем диапазон D63:E63
до ячейки L63.
Вычисления по классическому методу
Рунге-Кутта закончены.
Пример 2. Задачу Коши для дифференциального уравнения
преобразовать к
задаче Коши для системы двух дифференциальных
уравнений первого порядка и решить с
помощью разработанного расчетного
листа, внеся в него соответствующие
изменения. Точное решение
.
Преобразуем уравнение к задаче Коши для системы двух дифференциальных уравнений первого порядка, используя обозначения предыдущего примера:
y(0) = 1, z(0) = 0.
По сравнению с
предыдущим примером на рабочий лист
внесены следующие изменения. Изменен
диапазон интегрирования на отрезок [0;
1].
Изменены формулы в строках, в которых
вычисляются функции f1
и f2
. Изменено точное вычисление функции у
в строке 60. Точное значение функции z
(строка 61) получено дифференцированием
функции у:
.
Остальные вычисления проводятся
автоматически. Вид рабочего листа
табличного процессораMS
Excel
приведен на рисунке.