- •Случайные события
- •Стохастический мир
- •Случайные величины
- •Совместная и условная вероятности
- •Зависимость и независимость
- •Характеристическая функция
- •Модель аддитивного блуждания
- •Случайные процессы
- •Стохастические уравнения
- •Уравнение Ито
- •Остановка перед восхождением
- •Лемма Ито
- •Точные решения
- •Простые стохастические модели
- •Представление решений
- •Автокорреляция и спектр
- •Порождающий процесс Винера
- •Средние значения
- •Динамическое уравнение для средних
- •Процесс Феллера
- •Логистическое уравнение
- •Вероятности
- •Марковские плотности вероятности
- •Граничные условия
- •Стохастические интегралы
- •Площадь под траекторией Винера
- •Интегралы Ито
- •Интегрирование стохастических уравнений
- •Единственность решений
- •Метод последовательных приближений
- •Системы уравнений
- •Скоррелированные блуждания
- •Системы стохастических уравнений
- •Стохастический осциллятор
- •Линейные многомерные модели
- •Многомерие помогает одномерию
- •Как решать стохастические задачи?
- •Стохастическая природа
- •Теория броуновского движения
- •Стохастический осциллятор
- •Дрожание земной оси
- •Электронный шум
- •Хищники и их жертвы
- •Стохастическое общество
- •Финансовые рынки
- •Эмпирические закономерности
- •Диверсификация
- •Портфель на всю жизнь
- •Опционы
- •Кривая доходности
- •Компьютерное моделирование
- •Статистики
- •Случайные числа
- •Моделирование стохастических процессов
- •Ошибки вычислений и ускорение сходимости
- •Вычисление средних
- •R: Стохастический справочник
- •Основные соотношения теории
- •Системы уравнений с одинаковым шумом
- •M: Математические приложения
- •H: Помощь
- •C: Примечания
- •Рекомендуемая литература
254 |
Глава 9. |
9.5Ошибки вычислений и ускорение сходимости
Если мы хотим найти изменение во времени среднего значения или волатильности случайного процесса, необходимо создать большое коли- чество выборочных траекторий, на основании которых провести соответствующее усреднение. На конечные результаты могут оказывать влияние ошибки тр¼х видов:
1)Конечность выборки
2)Конечность временного шага
3)Ошибки округлений
Статистические ошибки конечности выборки достаточно хорошо контролируемы при помощи соотношений, приведенных в разделе x9.2. Ïðè
расч¼те любой интегральной величины v (среднее, квадрат среднего, и
т.д.) необходимо вычислять также выборочную волатильность ~v ýòîé
величины. Стандартная ошибка, которую мы будемpïîлучать для выборочного среднего v~ по n экспериментам, равна ~v= n. При необходимо-
сти можно определить доверительные интервалы, в которые с заданной достоверностью попадает истинное среднее значение.
Простым рецептом проверки наличия ошибок округления может быть переход от двойной точности double к одинарной oat äëÿ òèïà Float. Если результаты при этом изменяются несущественно (на той же последовательности случайных чисел), то вс¼ нормально. Так как мы определили тип Float в начале файла stat.cpp, для подобной проверки достаточно изменить только одну строку.
Рассмотрим теперь величину ошибок, связанных с конечностью временного шага в итерационной схеме. Чтобы статистические ошибки не мешали, воспользуемся следующим при¼мом. Как известно, конкретная траектория винеровского процесса полностью определяет любую траекторию диффузного процесса, если е¼ изменения стоят в стохастическом члене дифференциального уравнения (порождающий процесс: стр. 72).
Для процессов, точные решения которых выражаются явным видом через винеровскую переменную x = f(t; Wt), можно вычислить среднюю абсолютную ошибку расхождения точного решения и численного:
E = jx(tk) xexact(tk)j
Для этого необходимо получить дискретную траекторию Винера при помощи последовательности случайных гауссовых величин "1; :::; "n è, èñ- пользуя их же, построить итерационную схему.
Компьютерное моделирование |
255 |
Для уравнения dx = a(x) dt + b(x) W базовая итерационная схе-
ма, которой мы пользовались на протяжении книги, называется схемой Эйлера : p
xk+1 = xk + ak t + bk "k t;
ãäå "k N(0; 1), à ak = a(xk), bk = b(xk). Естественно, сам Эйлер о стохастических уравнениях не слышал, а использовал подобное приближение для решения обыкновенных дифференциальных уравнений.
Чем меньше интервал времени t, тем ближе последовательность зна- чений случайного процесса xk = x(tk) находится к непрерывной траекто- ðèè xexact(t) в моменты времени tk. Если для обыкновенных дифференциальных уравнений уменьшение шага итерационной схемы для повышения точности решения обычно не вызывает особых сложностей, то в
стохастическом случае ситуация значительно сложнее. Чтобы получить среднее значение случайного процесса с относительной точностью 10 3,
необходимо проделать около миллиона экспериментов. В результате временные затраты становятся в миллион раз больше, чем в детерминированном случае. Понятно, что, если при каждом из таких экспериментов, уменьшая t, мы должны выполнять большое число итераций, то ситу-
ация становится критической. Поэтому важную роль играют различные методы ускорения сходимости итерационной процедуры.
 x5.6, ñòð. 148, при рассмотрении метода последовательных приближений мы получили следующую итерационную схему:
xk+1 = xk + ak t + bk "k p |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
t |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
+ bk0 |
bk ("k2 |
1) |
t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
2 |
" 2 |
|
|
|
2 k# |
|
|
|
|
|
|
||||||||
+ bk0 |
ak "k |
( t)3=2 + ak0 bk akbk0 |
|
|
"k + |
p3 |
+ ak0 ak |
( 2 ; |
|||||||||||
|
|
|
|
|
|
|
|
p |
3 |
|
|
1 |
( t)3=2 |
|
t)2 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ãäå a0k = a0(xk), b0k = b0(xk), а N(0; 1) случайная величина, статистически не зависящая от ". Добавление к схеме Эйлера второй строки
называется схемой Милстейна. Третья строка является следующим приближением по времени, и добавление е¼ мы будем называть модифицированной схемой Милстейна. Новое случайное число k
даря интегралу от винеровской траектории St, который, являясь случай-
ным процессом, зависит от формы Wt, поэтому не определяется только p
значением Wt = " t в момент времени t. Случайная величина пропорциональна площади отклонения от трапеции, соединяющей начальное и конечное значения винеровского процесса на интервале [t; t + t] (см.
x5.1, ñòð. 124).
256 |
Глава 9. |
Рассмотрим программу, вычисляющую средние ошибки при использовании модифицированной схемы Милстейна
# include |
" stat . cpp " |
// ôàéë ñ RndG ( ) |
|||||
const int nex = 10000; // количество экспериментов |
|||||||
void main () |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
SRnd ( time (0)); |
|
// " встряхиваем " генератор |
|||||
Float |
x0 |
=1; |
|
|
// начальное значение x |
||
Float |
t0 |
=0 , |
t1 =1; |
// начальное и конечное время |
|||
Float |
err [ nex ]; |
// квадраты |
ошибок |
||||
for ( Float dt =0.01; |
dt >=0.0001; |
dt *=0.1){ |
|||||
Float |
sqrt_dt = sqrt ( dt ); |
|
|
||||
for ( int |
ex =0; ex < nex ; ex ++){ |
// |
эксперименты |
||||
|
Float x=x0 , t=t0 , w =0; |
|
|
||||
|
while (t < t1 ){ |
|
|
|
|||
|
|
Float |
r = |
RndG (); |
|
|
|
|
|
x |
+= |
x* dt |
+ x*r* sqrt_dt |
+ |
0.5* x *( r*r -1)* dt |
|
|
|
+ |
x*r* dt * sqrt_dt + 0.5* x* dt * dt ; |
|||
|
|
w |
+= |
r; |
|
|
|
|
|
t |
+= |
dt ; |
|
|
|
|
} |
|
|
|
|
|
|
|
w *= sqrt_dt ; |
|
|
|
|||
|
err [ ex ] |
= fabs (x - x0 * exp (w +0.5* t )); |
|||||
} |
|
|
|
|
|
|
|
Float av = Aver (err , nex ); |
|
|
|||||
Float |
si |
= |
Sigma (err , nex )/ sqrt ( nex ); |
printf (" %12.8 f\t %12.8 f\t %12.8 f\n" ,dt ,av , si );
}
}
В данном случае использовано логарифмическое блуждание
dx = x dt + x W:
Во внешнем цикле происходит табулирование временного шага t. Далее
проводится nex экспериментов, для каждого из которых по итерационной схеме вычисляется значение случайного процесса в момент времени t1,
которое сравнивается с точным
x(t) = x0 eWt+t=2;
которое зависит от значения винеровской переменной w в тот же момент времени.
Компьютерное моделирование |
257 |
Привед¼м результаты для логарифмического блуждания на интервале времени t = [0:::1]. Ниже в таблице приведены абсолютные отклонения
траектории процесса от точного решения для различных временных шагов t и итерационных схем. Усреднение ошибок проводилось по 10000
экспериментам:
Схема |
t = 10 2 |
t = 10 3 |
t = 10 4 |
Эйлера EE |
1.6 10 1 |
4.9 10 2 |
1.5 10 2 |
Милстейна EM |
2.7 10 2 |
2.6 10 3 |
2.5 10 4 |
Модифицированная E2 |
8.7 10 3 |
9.0 10 4 |
9.0 10 5 |
При постоянном применении итерационной схемы ошибка со временем накапливается, и с ростом t достаточно быстро увеличивается. Этот рост
является экспоненциальным, и на интервале t = [0:5; :::; 3] для схем Эй-
лера, Милстейна и модифицированной Милстейна может быть аппроксимирован функциями:
EE = 0:39 e1:33 t ( t)1=2; EM = 0:61 e1:42 t t; E2 = 0:23 e1:34 t t:
Естественно, константы в этих функциях зависят от вида уравнения, однако экспоненциальная зависимость от времени и степенная от шага итерационной схемы являются достаточно универсальными. Таким образом: 1) с увеличением диапазона времени t ошибки накапливаются очень быст-
ро; 2) схемы Милстейна существенно лучше схемы Эйлера, их ошибка быстрее убывает с уменьшением интервала t.
Ниже приведен пример динамики ошибок в виде их натурального логарифма, как функции времени t для t = 10 2 è 10 3. Прямые линии
в этом масштабе означают экспоненциальную зависимость от t.
|
1 |
1.5 |
2 |
2.5 |
t |
-2 |
|
|
|
t=0.01 |
|
|
|
|
|
|
|
-4 |
y = 1.35x - 6.13 |
|
|
t=0.001 |
|
|
|
|
|
||
|
|
|
|
|
|
ln E2 -6 |
y = 1.33x - 8.39 |
|
t=0.0001 |
|
|
|
|
|
|
|
|
-8 |
|
y = 1.33x - 10.68 |
|
|
|
|
|
|
|
|
-10
-12
На самом деле, логарифмическое блуждание, являясь линейной задачей, достаточно комфортно для любого численного моделирования, по крайней мере, пока значения процесса в силу экспоненциального роста среднего значения не сильно выросли. В частности, в модифицированной схеме Милстейна не задействован член со случайным числом .