Моделирование разностных уравнений. Мироновский Л.А. - 94 стр.

UptoLike

Составители: 

94
Для оценки качества решения выполним моделирование той же
задачи в непрерывном времени. Она описывается системой обыкно!
венных дифференциальных уравнений второго порядка
,,xkxyykxyy1 2 1 2
1
1
где
0,0001,k 1
х(0) = 50, у(0) = 20000.
Программа моделирования этой системы уравнений в пакете
MATLAB имеет вид:
T=[0 12]; X0=[20000 50]'; % Период наблюдения и начальные значения
[t,X]=ode23('epid',T,X0); % Моделирование
plot(t,X(:,2)), grid
В команде ode23 используется вспомогательная функция xdot
function xdot=epid(t,x)
k=0.0001;
x1=k*x(1)*x(2);
y1=k*x(1)*x(2)x(2);
xdot=[x1; y1];
Результат моделирования эпидемии в непрерывном времени по!
казан плавной кривой на том же графике. Здесь критическая точка –
шестой день (3119 больных), спад эпидемии – на двенадцатый день
(209 больных). Сравнение графиков показывает, что погрешность
результатов компьютерного моделирования составляет около 20%.
Она может быть уменьшена путем корректировки дискретной мате!
матической модели.
Пример 5. Члены последовательности {x
n
} связаны рекуррентной
зависимостью
x
n
= 1 – n x
n–1
. (5.8)
Она представляет собой нестационарное линейное разностное урав!
нение первого порядка.
Требуется составить программу для вычисления членов этой пос!
ледовательности при
150n11
, если известно, что x
1
= 1/e.
Очевидный путь состоит в построении программы с простым цик!
лом, вычисляющей члены x
2
, x
3
и т. д., непосредственно по формуле
(5.8). Приведем ее вариант, написанный на языке пакета MATLAB:
x=zeros(1,50); x(1) = exp(1);
for i=2:50,
x(i)=1i*x(i1);
end;
Вычисление первых четырех членов дает:
x
1
= 1/e = 0,3678794, x
2
= 1–2 x
1
= 0,2642411, x
3
= 1–3 x
2
=
= 0,2072766, x
4
= 1–4 x
3
= 0,1708934.