Ответ 1
Вы посмотрели sage?
Я ищу библиотеку python, которая позволила бы мне вычислить стохастическое исчисление, например (условное) ожидание случайного процесса, который я бы определил для диффузии. Я посмотрел на simpy (simpy.sourceforge.net), но, похоже, это не касается моих потребностей.
Это для быстрого прототипирования и экспериментирования. В java я с успехом использовал (теперь неактивную) http://martingale.berlios.de/Martingale.html библиотеку.
Проблема не сложна сама по себе, но есть много нетривиальных, шаблонных вещей, которые нужно делать (эффективное использование памяти, методы смены переменных и т.д.).
В идеале я мог бы написать что-то вроде этого (просто иллюстративное):
def my_diffusion(t, dt, past_values, world, **kwargs): W1, W2 = world.correlated_brownians_pair(correlation=kwargs['rho']) X = past_values[-1] sigma_1 = kwargs['sigma1'] sigma_2 = kwargs['sigma2'] dX = kwargs['mu'] * X * dt + sigma_1 * W1 * X * math.sqrt(dt) + sigma_2 * W2 * X * X * math.sqrt(dt) return X + dX X = RandomProcess(diffusion=my_diffusion, x0 = 1.0) print X.expectancy(T=252, dt = 1./252., N_simul= 50000, world=World(random_generator='sobol'), sigma1 = 0.3, sigma2 = 0.01, rho=-0.1)
Кто-нибудь знает о чем-то другом, кроме переопределения его в numpy, например?
Вы посмотрели sage?
Ближайшим, что я видел в Python, является PyMC - реализация различных алгоритмов Марковской цепи Монте-Карло.
Я знаю кого-то, кто использует Sundials для решения стохастических проблем ODE/PDE, хотя я недостаточно разбираюсь в библиотеке убедитесь, что это соответствует вашему делу. Для него есть привязки python здесь.
Я работаю над стохастическими процессами (включая диффузионные процессы и некоторую условную) библиотеку python. Проверьте эту ссылку на главной странице google-проекта. Ура!
Вы можете использовать StochPy (Stochastic моделирования в Python)