29-10-2013_01-02-33 / 8_оду
.docЛабораторная работа № 8.
Численное решение обыкновенного дифференциального уравнения
Задание
Решить заданное дифференциальное уравнение для x [0,1] методом Эйлера и исправленным методом Эйлера с точностью 0,1 и оценить погрешность решения по правилу двойного пересчета.
Варианты:
1. y' = y - 3x/y с начальным условием y(0) = -1
2. y' = 2y - 3x/y с начальным условием y(0) = -0,7
3. y' = y – 2,5x/y с начальным условием y(0) = 0,9
4. y' = 3y - 3x/y с начальным условием y(0) = 0,44
5. y' = y - 4x/y с начальным условием y(0) = 1,2
6. y' = 2y - 4x/y с начальным условием y(0) = 0,9
7. y' = 2y – 2,5x/y с начальным условием y(0) = 0,7
8. y' = y – 1,5x/y с начальным условием y(0) = 0,7
9. y' = 3y - x/y с начальным условием y(0) = 0,25
10. y' = 3,3y - x/y с начальным условием y(0) = 0,23
11. y' = y – 3,5x/y с начальным условием y(0) = 1,2
12. y' = 2y – 3,5x/y с начальным условием y(0) = 0,9
Отчет о выполнении работы в лабораторном журнале
Отчет о выполнении работы в лабораторном журнале должен содержать следующие численные результаты:
-
Исходные данные
-
Расчетные таблицы и формулы
-
Формулы для оценки погрешности
-
Значения y(h) и y(h/2) в точке х=1
-
График функции у(х)
Пример выполнения лабораторной работы в MS Excel
Этапы выполнения работы
Задача: Найти решение уравнения y’ = 0,25y2 + x2 c начальным условием Y(0) = -1 простым и исправленным методом Эйлера на отрезке [0;1] с шагом 0,1. Найти погрешность решений методом двойного пересчета.
-
Создадим электронную таблицу для решения задачи методом Эйлера. Таблица имеет следующую структуру:
|
Метод Эйлера |
Заголовок столбца |
Содержимое столбца |
|
|
x |
Текущее значение переменной x, изменяемое с шагом h/2 |
|
простой |
y(h/2) |
Текущее значение переменной y, рассчитанное с шагом h/2 по формуле yi+1=yi+(h/2)*f(xi,yi) |
|
y(h) |
Текущее значение переменной y, рассчитанное с шагом h по формуле yi+1=yi+h*f(xi,yi) (столбец заполняется через строку) |
|
|
d |
Значение погрешности в текущей точке вычисляется по формуле êyi(h)-yi(h/2)ô (столбец заполняется через строку) |
|
|
исправлен-ный |
y(h/2) |
Текущее значение переменной y, рассчитанное с шагом h/2 по формуле yi+1=yi+(h/2)*Ф(xi,yi) |
|
y(h) |
Текущее значение переменной y, рассчитанное с шагом h по формуле yi+1=yi+h*Ф(xi,yi) (столбец заполняется через строку) |
|
|
K(h/2) |
Текущее значение f(xi,yi), рассчитанное с шагом h/2 |
|
|
K(h) |
Текущее значение f(xi,yi), рассчитанное с шагом h (столбец заполняется через строку) |
|
|
Ф(h/2) |
Текущее значение Ф(xi,yi), рассчитанное с шагом h/2 по формуле 0,5*K + 0,5*f(xi+h/2, yi+(h/2)*K) |
|
|
Ф(h) |
Текущее значение Ф(xi,yi), рассчитанное с шагом h по формуле 0,5*K + 0,5*f(xi+h, yi+h*K) (столбец заполняется через строку) |
|
|
d |
Значение погрешности в текущей точке вычисляется по формуле êyi(h)-yi(h/2)ô/3 (столбец заполняется через строку) |
-
Учитывая правило двойного пересчета, занесем в блок А3:А13 значения x от 0 до 1 с шагом 0,05.
-
В 1-й строке зададим названия методов, во 2-й - названия столбцов.
-
В ячейках B3,C3,E3,F3 зададим начальное значение функции у –1.
-
Расчетные формулы (для заданной функции) в строках 3, 4 и 5 приведены в таблице
ячейка
формула
Строка 3
D3
=ABS(C3-B3)
G3
=0,25*E3^2+A3^2
H3
=0,25*F3^2+A3^2
I3
=0,5*G3+0,5*(0,25*(E3+0,05*G3)^2+(A3+0,05)^2)
J3
=0,5*H3+0,5*(0,25*(F3+0,1*H3)^2+(A3+0,1)^2)
K3
=ABS(F3-E3)
Строка 4
B4
=B3+0,05*(0,25*B3^2+A3^2)
E4
=E3+0,05*I3
Строка 5
C5
=C3+0,1*(0,25*C3^2+A3^2)
F5
=F3+0,1*J3
-
Значения в остальных ячейках получим с помощью копирования этих формул.
-
Для оценки погрешности решения используем встроенную функцию MS EXCEL МАКС.
-
По таблице построим точечные диаграммы по диапазонам А2:С23 (для простого метода Эйлера) и А2:А23;G2:H23 (для исправленного метода Эйлера). При построении диаграмм необходимо задать названия осей координат и диаграммы в целом. Отформатируем шкалу оси y таким образом, чтобы кривая была хорошо видна на диаграмме.
Теоретические основы
Пусть дано:
-
дифференциальное уравнение y’=f(x,y),
-
интервал изменения переменной x:[x0; xn],
-
шаг интегрирования h,
-
начальное условие y(x0)=y0.
Найти численное решение обыкновенного дифференциального уравнения (таблицу приближенных значений y1, y2, …, yn решения уравнения y(x) в точках x1, x2,…,xn).
Простой метод Эйлера
Значение y в следующей точке рассчитывается на основе предыдущего значения y и производной в предыдущей точке:
yi+1=yi+hf(xi,yi), xi=x0+ih, i=0,1,2,…,n. (1)
Исправленный метод Эйлера
Значение y в следующей точке рассчитывается на основе предыдущего значения y и значений двух производных (в предыдущей точке (xi,yi) и в точке (xi+h, yi+hf(xi,yi)):
yi+1=yi+0.5h[f(xi,yi)+f(xi+h, yi+hf(xi,yi))], xi=x0+ih, i=0,1,2,…,n. (2)
или
yi+1=yi+hФ(xi,yi), (2а)
где Ф(xi,yi)= 0.5[f(xi,yi)+f(xi+h, yi+hf(xi,yi))] (2б)
Точность численного решения оценивается по правилу двойного пересчета. Необходимо проделать вычисления не только с шагом h, но и с шагом h/2. Далее сравнить значения, полученные при одних и тех же значениях x:
e = (max êyi(h)-yi(h/2)ô)/(2k-1), (3)
где k – порядок метода, k=1 для простого метода Эйлера и k=2 для исправленного метода Эйлера.

