- •Bведение
- •1. Основы языка Basic
- •1.1. Основные структуры
- •1.2. Операторы ввода, вывода, позиционирования
- •1.3. Числа
- •1.4. Строки
- •1.5. Операторы def, dim, пользовательский тип
- •1.6. Разветвление и альтернатива
- •1.7. Циклы
- •If k then print "пароль принят" else print "ошибка пароля"
- •Input "Введите произвольный текст : ", txt
- •Input X
- •1.8. Программные стэки
- •1.9. Массивы
- •If I and jb then
- •Input n
- •1.10. Функции, подпрограммы
- •1.11. Файлы
- •1.12. Сегментирование программы
- •Input n
- •1.13. Работа с графической информацией
- •If nu then gosub Move 'перемещение рисунка
- •1.14. Звуковое воспроизведение
- •2. Элементы vba
- •2.1. Типы переменных
- •2.2. Использование массивов
- •2.3. Разветвление и циклы
- •2.4. Работа с ячейками листа
- •If y X Then
- •If Check Then
- •2.5. Элементы управления
- •If X 0 Then
- •2.6. Пользовательские классы
- •If IsEmpty(Text2) Then Exit Sub
- •2.7. Построение графиков в excel
- •2.8. Построение графиков и таблиц в word
- •3. Ключи в word
- •4. Гипертекстовая разметка
- •4.1. Основные тэги html
- •4.2. Форматирование таблиц
- •4.3. Фреймы
- •5. Основы программирования в среде MathCad
- •5.1. Особенности языка MathCad
- •5.2. Некоторые вычислительные модели
- •5.2.1. Системы уравнений
- •5.2.1.1. Системы линейных уравнений
- •Iter(a, b, e) n Last (b)
- •5.2.1.2. Нелинейные уравнения и системы
- •5.2.2. Определенный интеграл
- •5.2.3. Функции на дискретном множестве
- •5.2.4. Обыкновенные дифференциальные уравнения
- •5.2.5. Минимизация функций
- •5.2.5.1. Функции одной переменной
- •5.2.5.2. Функции многих переменных
- •5.2.6. Pазностная модель и прогноз
- •1 Otherwise (коэффициенты непрерывной модели)
- •5.2.7. Сглаживание и осреднение рядов
- •Задания
- •Литература
5.2.6. Pазностная модель и прогноз
Для временнóго ряда z i (i = 0, 1, 2, ...) можно построить разно-стную модель порядка р 1 вида z k + 1 = i z k + 1 - i + (зависи-мость наблюдаемых значений от предыдущих), где коэффициенты i,
находятся из условий
(z k + 1 - i z k + 1 - i - ) 2 → min .
Пусть фиксированы n, p, положим i 0 . . n - 1, j 0 . . n - p - 1,
k 0 . . p, сформируем матрицы A j,k , b j z j + p.
Тогда вектор искомых коэффициентов находится функцией Geninv (обобщенная обратная матрица): s = Geninv(A)b (или minerr).
Для того, чтобы построить непрерывную модель, решим разнос-тные соотношения z k + 1 = s i z k - i + s p (k p - 1) в терминах пока-зательных функций - степеней корней характеристического уравнения r p = s i r p - i - 1. Если {r i} - корни характеристического уравнения, то коэффициенты c i (i = 0, ..., p) представления z k* ≈ ci r ik + c p мож-но получить из условия (z i - z i*) 2 → min (подробнее – см. пример).
Пример. Рассмотрим кубическую параболу
у(х) = 10х(х - 1)(х - 2),
заданную в 20 точках промежутка [0, 2] своими значениями, возму-щенными равномерным "шумом", построим дискретную модель 3- го порядка, построим прогноз последних пяти значений по предыдущим
точкам и, наконец, создадим непрерывную модель процесса.
n 20 p 3 (порядок модели) h i 0 . . n x i i h
y i 10 x i (x i - 1) (x i - 2) m 5 (число точек прогноза)
z i y i + rnd(2) - 1 (равномерная помеха процессу)
Подготовка к вычислению коэффициентов дискретной модели:
j 0 . . n - p - 1 k 0 . . p A j,k := if (k < p, z j + p - k - 1 , 1) b j z j + p
s geninv(A) b s T = (1.121034 0.268413 - 0.562349 - 1.404969 10 - 3)
(коэффициенты разностной модели)
zp z v n - m . . n - 1 zp v s t zp v - t - 1 + s p (прогноз)
Построение непрерывной модели:
a k if (k = p, 1, - s p - k - 1) (коэффициенты характеристического многочлена)
a T = (0.562349 - 0.268413 - 1.121034 1) r polyroot(a)
r T = (- 0.645313 0.883174 - 0.302389i 0.883174 + 0.302389i) (корни многочлена)
d | r 2 | d = 0.933507 angle(Re(r 1), | Im(r 1) |)
(модуль и аргумент комплексного корня)
B i, k (r 0) i if k = 0 c geninv(B) z
(d i cos(i )) if k = 1
(d i sin(i )) if k = 2 c T = (0.321843 -1.462531 7.331131 -0.841310)
1 Otherwise (коэффициенты непрерывной модели)
f(t) c 0 (| r 0 |) cos + d (c 1 cos + c 2 sin ) + c 3
(непрерывная модель)
Результаты можно сравнить на графике (рис. 6):
Рис. 6
В пакете Mcad имеется специальная функция predict, позволя-ющая построить недлинный прогноз по последним значениям времен-
ного ряда. Сравним последние значения ряда z, прогнозируемые с помощью разностной модели zp, соответствующие значения "чистого"
ряда y и значения, полученные функцией predict(z, n-5, 5) (табл. 7):
Таблица 7
-
y
- 3.75
- 3.84
- 3.57
- 2.88
- 1.71
z
- 4.5328
- 3.1776
- 4.2602
- 3.7213
- 1.4280
zp
- 4.1445
- 3.9104
- 3.3896
- 2.5203
- 1.5375
predict
- 1.2452
0.6200
2.7957
2.0844
3.0793