Случайные процессы. Процесс Винера. Стохастическое интегрирование
Решение методом Рунге-Кутты четвертого порядка точности дифференциального уравнения. Характерситика функции распределения и плотности вероятности стандартной величины. Фрагмент сгенерированной стандартной величины. Особенности Винеровского процесса.
Рубрика | Математика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 20.05.2021 |
Размер файла | 831,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Федеральное государственное автономное образовательное
учреждение высшего образования
«Национальный исследовательский
Томский политехнический Университет»
Инженерная школа ядерных технологий
Направление «Прикладная математика и информатика»
ОТЧЕТ
По лабораторной работе
Случайные процессы. Процесс Винера. Стохастическое интегрирование
по дисциплине: Теория случайных процессов
Томск - 2021
Оглавление
- Задание
- Сгенерировать 103 значений стандартной случайной величины
- Построить график винеровского процесса для моментов t из интервала [0,4] с шагом h=4x10-3
- В соответствии с номером варианта сгенерировать процесс ценообразования рискового актива по формуле
- Решить методом Рунге-Кутты четвертого порядка точности дифференциальное уравнение
- Заключение
- Приложение
Задание
Сгенерировать 103 значений стандартной случайной величины.
Построить график винеровского процесса для моментов t из интервала [0,4] с шагом h=4x10-3.
В соответствии с номером варианта сгенерировать процесс ценообразования рискового актива по формуле (не забудьте перевести волатильность в исходном задании в доли)
.
Интегралы вычислять численно методом трапеций и Монте-Карло для первого и второго интегралов соответственно с погрешностью не ниже 10-2 и вероятностью не ниже 0,95. Последовательно положить моменты времени равными t=0,5; 1;…; 4.
Сравнить полученные данные для Stc данными для котировок облигаций в те же моменты времени.
Решить методом Рунге-Кутты четвертого порядка точности дифференциальное уравнение . Сравнить с результатом, найденным в п.3 в те же моменты времени t. Не забудьте перевести волатильность в исходном задании в доли.
S0 - 10
µt, доли - 0.1 t
уt,% - t
Сгенерировать 103 значений стандартной случайной величины
Стандартная случайная величина - величина, принимающая значения с вероятностью, заданной функцией плотности вероятности вида
,
где - математическое ожидание, - среднеквадратическое отклонение распределения (Рис.1).
Рис. 1. Функции распределения и плотности вероятности стандартной величины.
Генерация стандартной случайной величины (Рис.2).
Рис. 2. Фрагмент сгенерированной стандартной величины.
Построить график винеровского процесса для моментов t из интервала [0,4] с шагом h=4x10-3.
Винеровский процесс () - случайный процесс блуждания с непрерывным временем.Значениевеличины в момент времени t = 0 . Дальнейшие приращения значения случайной величины независимы от предыдущих приращений и имеют нормальное распределение с параметрами , и , где - временной интервал между значениями случайной величины. винеровский рунге дифференциальное уравнение
Построение графика винеровского процесса (Рис.3).
Рис. 3. Винеровский процесс
На Рис. 3 приведены 10 реализаций Винеровского процесса.
В соответствии с номером варианта сгенерировать процесс ценообразования рискового актива по формуле
.
Интегралы вычислять численно методом трапеций и Монте-Карло для первого и второго интегралов соответственно с погрешностью не ниже 10-2 и вероятностью не ниже 0,95. Последовательно положить моменты времени равными t=0,5; 1;…; 4.
Вычисление интеграла функции методом трапеций заключается в следующем:
· разбиении отрезка интегрирования на n равных интервалов длиной h точками:
· последовательно вычисляются значения функции в двух соседних точках и и строятся прямоугольные трапеции (;;; ).
· вычисляется площадь каждой трапеции
приближенное значение интеграла - сумма:
Для достижения требуемого значенияточности вычисления eps количество интервалов разбиения удваивают каждую итерацию пока не будет выполняться условие
Вычисление интеграла функции наотрезке интегрирования методом Монте-Карло заключается в следующем:
· при помощи генератора случайных чисел генерируется n точек
· для каждой точки вычисляется значение функции
приближенное значение интеграла - сумма:
Код задания приведен в приложении. График сгенерированного процесса и сравнительный график котировок по формуле
приведены на Рис. 4.
Рис. 4.Процесс ценообразования рискового актива и котировки облигаций
Из Рис.4 видно, что детерминированная часть случайного процесса ценообразования рискового актива совпадает с процессом котировки облигаций. Отличия вносит стохастическая часть случайного процесса ценообразования рискового актива - Винеровский процесс.
Решить методом Рунге-Кутты четвертого порядка точности дифференциальное уравнение
.
Сравнить с результатом, найденным в п.3 в те же моменты времени t.
Метод Рунге-Кутты один из методов численного решения дифференциальных уравнений. В основном применяется для решения обыкновенных дифференциальных уравнений. Существуют алгоритмы для решения стохастических дифференциальных уравнений. Метод заключается в следующем:
· разбиении отрезка интегрирования на n равных интервалов длиной h точками:
· рекурсивного расчета значений по формуле:
??????
где
Результат решения дифференциального уравнения методом Рунге-Кутты приведен на Рис. 5. Приведен также график процесса ценообразования рискового актива.
Рис. 5 Результат решения дифференциального уравнения методом Рунге-Кутты
Заключение
В работе проведено решение стохастических дифференциальных уравнений различными методами. Приведены теоретические сведения, программный код, рисунки с результатами работы. Работа выполнена на языке Pythonв среде JupyterLab.
Приложение
Кодзадания
importnumpyasnp
import scipy as sp
import random
import math
from matplotlib import pyplot as plt
from matplotlib.pyplot import figure
from datetime import datetime
random.seed(datetime.now())
X = sp.random.normal(0,1,10**3)
print(X)
random.seed(datetime.now())
def WienerProcess(W, dt, T):
W = random.gauss(0, math.sqrt(dt)) + W
if(dt < T):
# recursion
wpr = np.insert(WienerProcess(W, dt, T - dt), 0, W)
else:
wpr = np.array(W)
return wpr
## Wiener process parameters
W0 = 0.
dt = 4e-3
T = 4
realizationCount = 10
plt.figure(figsize=(15, 8))
plt.suptitle('Wiener process', fontsize=20)
plt.xlabel('Time', fontsize=12)
plt.ylabel('Value', fontsize=12)
for i in range(0,realizationCount):
## realize wiener process
wpr = np.insert(WienerProcess(W0, dt, T), 0, W0)
plt.plot(wpr)
## show plot
plt.show()
random.seed(datetime.now())
## ******************************
def mu(t):
return 0.1*t
## ******************************
def sigma(t):
return t / 100
## ******************************
## simple integral
def SimpleInt(func, t_beg, t_end, eps):
n = 2
I = None
while True:
t_step = (t_end - t_beg) / n
I_ref = 0
fl = 0
fr = func(t_beg)
t = t_beg + t_step
while True:
fl = fr
fr = func(t)
I_ref = I_ref + ((fl + fr) / 2) * (t_step)
if (abs(t_end - t) < 0.000001):
break
elif (t + t_step>t_end) :
t_step = t_end - t
t = t_end
else:
t = t + t_step
# end while
if I is None or I - I_ref> eps :
I = I_ref
n = n * 2
else:
I = I_ref
break
# **************
return I
## ******************************
def StochasticInt(func, t_beg, t_end, eps):
## sample number 1.96 - 0.95 % likehood
n = int(((t_end - t_beg)**2 * 1.96**2) / eps**2)
X = sp.random.uniform(t_beg, t_end, n)
X = np.append(X, t_beg)
X = np.append(X, t_end)
X.sort()
I = 0
x0 = t_beg
for i in range(0, len(X) - 2):
dt = X[i+1] - X[i]
nu = random.gauss(0, math.sqrt(dt))
ft = func(X[i])
I = I + ft * nu
#print("Stoch I ", I)
return I
## ******************************
# determined function
def detFunc(t):
return mu(t) - (sigma(t)**2)/2
# stochastic functiom
def stochFunc(t):
return sigma(t)
Spr = np.array([])
Bpr = np.array([])
S_start = 10.
t_start = 0.
t_end = 4.
N=50
t = t_start
h=(t_end - t_start)/N
eps = 0.01
t_list = []
while(t <= t_end):
t_list.append(round(t, 2))
S = S_start*math.exp(SimpleInt(detFunc, t_start, t, eps) + StochasticInt(stochFunc, t_start, t, eps))
Spr = np.append(Spr, S)
B = S_start*math.exp(SimpleInt(mu, t_start, t, eps))
Bpr = np.append(Bpr, B)
t = t + h
print("Done")
plt.figure(figsize=(15, 5))
plt.suptitle('Price process', fontsize=20)
plt.xlabel('Time', fontsize=12)
plt.ylabel('Value', fontsize=12)
#plt.axis(t_list)
plt.plot(t_list, Spr)
plt.plot(t_list, Bpr)
plt.legend(['Risky asset S', 'Bond quotes B'])
## show plot
plt.show()
random.seed(datetime.now())
def f(Y, t):
f_val = Y*mu(t)
return f_val
def w(Y, t):
w_val = Y*sigma(t)
return w_val
def deltaW(h):
#dW = random.gauss(0, math.sqrt(h))
dW = WienerProcess(0, h, h)
return dW
def calcNextY(Y, t, h):
# print('mu t', mu(t), "Y", Y)
#Y = Y + mu(t) * Y * h
k1 = h * f(Y, t)
k2 = h * f(Y + k1/2, t + h/2)
k3 = h * f(Y + k2/2, t + h/2)
k4 = h * f(Y + k3, t + h)
dY = 1/6*(k1 + 2*k2 + 2*k3 + k4)
detY = Y + dY
Gm = Y + f(Y, t) * h + w(Y, t) * (h**(1/2))
dW = deltaW(h)
wienY = w(Y, t) * dW + (1/2) *(w(Gm, t) - w(Y, t)) * (dW**2 - h) * h**(-1/2)
Y = detY + wienY
return Y
# S_start = 10.
# t_start = 0.
# t_end = 4.
# N=1000
t = t_start
# h=(t_end - t_start)/N
Y = S_start
YList = []
t_list = []
while(t <= t_end):
t_list.append(round(t, 2))
YList.append(Y)
Y = calcNextY(Y, t, h)
t = t + h
#print(YList)
plt.figure(figsize=(15, 5))
plt.suptitle('Price process', fontsize=20)
plt.xlabel('Time', fontsize=12)
plt.ylabel('Value', fontsize=12)
plt.plot(t_list, Spr)
plt.plot(t_list, YList)
plt.legend(['Risky asset S', 'Equation'])
## show plot
plt.show()
Размещено на Allbest.ru
...Подобные документы
Проверка непрерывности заданных функций. Интегрирование заданного уравнения и выполние преобразования с ним. Интегрирование однородного дифференциального уравнения. Решение линейного дифференциального уравнения. Общее решение неоднородного уравнения.
контрольная работа [65,3 K], добавлен 15.12.2010Изучение методов Рунге-Кутты четвертого порядка с автоматическим выбором длины шага интегрирования для решения дифференциальных уравнений. Оценка погрешности и сходимость методов, оптимальный выбор шага. Листинг программы для ЭВМ, результаты, иллюстрации.
курсовая работа [2,9 M], добавлен 14.09.2010Случайные величины. Функция и плотность распределения вероятностей дискретной случайной величины. Сингулярные случайные величины. Математическое ожидание случайной величины. Неравенство Чебышева. Моменты, кумулянты и характеристическая функция.
реферат [244,6 K], добавлен 03.12.2007Определение вероятности для двух несовместных и достоверного событий. Закон распределения случайной величины; построение графика функции распределения. Нахождение математического ожидания, дисперсии, среднего квадратичного отклонения случайной величины.
контрольная работа [97,1 K], добавлен 26.02.2012Дискретные случайные величины и их распределения. Формула полной вероятности и формула Байеса. Общие свойства математического ожидания. Дисперсия случайной величины. Функция распределения случайной величины. Классическое определение вероятностей.
контрольная работа [33,8 K], добавлен 13.12.2010Определение вероятности появления события в каждом из независимых испытаний. Случайные величины, заданные функцией распределения (интегральной функцией), нахождение дифференциальной функции (плотности вероятности), математического ожидания и дисперсии.
контрольная работа [59,7 K], добавлен 26.07.2010Исследование сходимости рядов. Степенной ряд интеграла дифференциального уравнения. Определение вероятности событий, закона распределения случайной величины, математического ожидания, эмпирической функции распределения, выборочного уравнения регрессии.
контрольная работа [420,3 K], добавлен 04.10.2010Общая характеристика и особенности двух методов решения обычных дифференциальных уравнений – Эйлера первого порядка точности и Рунге-Кутта четвёртого порядка точности. Листинг программы для решения обычного дифференциального уравнения в Visual Basic.
курсовая работа [1,1 M], добавлен 04.06.2010Получение точного решения дифференциального уравнения вручную, операторным методом, приближенное решение с помощью рядов (до 5 элемента ряда) на заданном интервале, графическое решение. Относительная и абсолютная погрешность методов Эйлера и Рунге-Кутты.
курсовая работа [990,8 K], добавлен 17.07.2014Практическое решение дифференциальных уравнений в системе MathCAD методами Рунге—Кутты четвертого порядка для решения уравнения первого порядка, Булирша — Штера - системы обыкновенных дифференциальных уравнений первого порядка и Odesolve и их графики.
лабораторная работа [380,9 K], добавлен 23.07.2012Решение дифференциального уравнения методом численного интегрирования Адамса. Методы, основанные на применении производных высших порядков. Формулы, обеспечивающие более высокую степень точности, требующие вычисления третьей производной искомого решения.
курсовая работа [81,9 K], добавлен 29.08.2010Решение задач по определению вероятности событий, ряда и функции распределения с помощью формулы умножения вероятностей. Нахождение константы, математического описания и дисперсии непрерывной случайной величины из функции распределения случайной величины.
контрольная работа [57,3 K], добавлен 07.09.2010Понятие случайной величины, а также ее основные числовые характеристики. Случайная величина, подчиняющаяся нормальному закону распределения. Кривые плотности вероятности. Использование генератора случайных чисел. Изображение векторов в виде графика.
лабораторная работа [301,4 K], добавлен 27.05.2015Вычисление математического ожидания, дисперсии, функции распределения и среднеквадратического отклонения случайной величины. Закон распределения случайной величины. Классическое определение вероятности события. Нахождение плотности распределения.
контрольная работа [38,5 K], добавлен 25.03.2015Непрерывная случайная величина и функция распределения. Математическое ожидание непрерывной случайной величины. Среднее квадратичное отклонение. Кривая распределения для непрерывной случайной величины. Понятие однофакторного дисперсионного анализа.
контрольная работа [165,5 K], добавлен 03.01.2012Основные методы Рунге-Кутта: построение класса расчетных формул. Расчетная формула метода Эйлера. Получение различных методов Рунге-Кутта с погрешностью второго порядка малости при произвольном задавании параметров. Особенности повышения порядка точности.
реферат [78,4 K], добавлен 18.04.2015Численное решение уравнения методом Эйлера и Рунге-Кутта в Excel. Программа на языке Turbo Pascal. Блок-схема алгоритма. Метод Рунге-Кутта для дифференциального уравнения второго порядка. Модель типа "хищник-жертва" с учетом внутривидового взаимодействия.
курсовая работа [391,5 K], добавлен 01.03.2012Пространства элементарных событий. Совместные и несовместные события. Функция распределения системы случайных величин. Функции распределения и плотности распределения отдельных составляющих системы случайных величин. Условные плотности распределения.
задача [45,4 K], добавлен 15.06.2012Формирование системы их пяти уравнений по заданным параметрам, ее решение методом Гаусса с выбором главного элемента. Интерполяционный многочлен Ньютона. Численное интегрирование. Решение нелинейных уравнений. Метод Рунге-Кутта четвертого порядка.
контрольная работа [115,5 K], добавлен 27.05.2013Теоретическое обоснование расчетных формул. Задача Коши для дифференциального уравнения первого порядка. Метод Рунге-Кутта. Ломаная Эйлера. Построение схем различного порядка точности. Выбор шага. Апостериорная оценка погрешности. Правило Рунге.
курсовая работа [111,1 K], добавлен 13.11.2011