2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Закон повторного логарифма для винеровского процесса
Сообщение11.05.2014, 01:49 
Здравствуйте.
Подскажите пожалуйста, как найти точки пересечения графиков Вейнеровского процесса ограниченного законом повторного логарифма?

код: [ скачать ] [ спрятать ]
Используется синтаксис Python
import numpy as np
import matplotlib.pyplot as plt
 
@interact
def foo(count=(1,10,1), t=slider(100,1000,100,default=100)):
 
    plt.cla()    
     
    dt = 1/t
   
    x = np.arange(1, step=dt)
    xl = np.arange(1, step=.000001)
       
    W = np.zeros(t, np.dtype(float))
   
#Повторный логарифм "сверху и снизу"
    l = np.sqrt(2*xl*ln(ln(1/xl)))
    plt.plot(xl, l,'r--')    
    plt.plot(xl, -l,'r--')  
       
    mu, sig = 0, 1
       
    for ITER in range(1, count+1): #количество графиков на плоте
        for i in range(1, len(W)):
            W[i] = W[i-1] + np.random.normal(mu, sig) * np.sqrt(dt) #Вейнеровский процесс
        plt.plot(x,W)            
       
    plt.xlabel('t',fontsize=26)
    plt.ylabel('W(t)',fontsize=26)
    plt.grid(True)
    @interact
    def _dee(deep=slider(0.0001, .4, 0.001, default=.2)): #"масштаб"
        plt.xlim(0, deep)
        plt.ylim(-.5, .5)
        plt.show()
 

Изображение

Использую https://cloud.sagemath.com

Спасибо.

 
 
 
 Posted automatically
Сообщение11.05.2014, 05:06 
 i  Тема перемещена из форума «Математика (общие вопросы)» в форум «Карантин»
Тема перемещена в Карантин по следующим причинам:

Сформулируйте внятно постановку задачи.

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 
 
 
 Posted automatically
Сообщение19.05.2014, 20:09 
Аватара пользователя
 i  Тема перемещена из форума «Карантин» в форум «Помогите решить / разобраться (М)»
Возвращено

 
 
 
 Re: Закон повторного логарифма для винеровского процесса
Сообщение20.05.2014, 00:23 
Решено.
Кому интересно:
код: [ скачать ] [ спрятать ]
Используется синтаксис Python
import numpy as np
import matplotlib.pyplot as plt

@interact
def foo(count=(1,20,1), value=slider(1,10000,100,default=100)):
               
    plt.cla()        
    dt = 1/value    
    x = np.arange(1, step=dt)
    xl = np.arange(1, step=0.0000001)    
    W = np.zeros(value, np.dtype(float))  
   
    lin = .2+x*0
    plt.plot(x, lin)
   
    l = np.sqrt(2*x*ln(ln(1/x)))
       
    plt.plot(x, l,'r--') # <= add subplot    
    plt.plot(x, -l,'r--')
    # Z variable, N(0,1)
    mu, sig = 0, 1
       
    for ITER in range(1, count+1):
        for i in range(1, len(W)):
            W[i] = W[i-1] + np.random.normal(mu, sig) * np.sqrt(dt)
        plt.plot(x,W)
    plt.xlabel('t',fontsize=26)
    plt.ylabel('W(t)',fontsize=26)
    plt.grid(True)
    @interact
    def _dee(deep=slider(.01, 2.1, .01,default=1)):
        plt.xlim(0, .5)
        plt.ylim(-.5, .5)
       
        plt.show()
        #print '\nlin ', lin
        print '\nW ', W
        Func = lin - W
        Sign = np.sign(Func)  
        print '\nSign ', Sign
        Diff = np.diff(Sign)
        print '\nDiff ', Diff
        Points = np.where(Diff != 0)[0]        
        print '\nPoints ', Points*dt
 

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group