1 /* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 3 /* 4 Copyright (C) 2003 Ferdinando Ametrano 5 Copyright (C) 2001, 2002, 2003 Sadruddin Rejeb 6 Copyright (C) 2004, 2005 StatPro Italia srl 7 8 This file is part of QuantLib, a free-software/open-source library 9 for financial quantitative analysts and developers - http://quantlib.org/ 10 11 QuantLib is free software: you can redistribute it and/or modify it 12 under the terms of the QuantLib license. You should have received a 13 copy of the license along with this program; if not, please email 14 <quantlib-dev@lists.sf.net>. The license is also available online at 15 <http://quantlib.org/license.shtml>. 16 17 This program is distributed in the hope that it will be useful, but WITHOUT 18 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 FOR A PARTICULAR PURPOSE. See the license for more details. 20 */ 21 22 /*! \file geometricbrownianprocess.hpp 23 \brief Geometric Brownian-motion process 24 */ 25 26 #ifndef quantlib_geometric_brownian_process_hpp 27 #define quantlib_geometric_brownian_process_hpp 28 29 #include <ql/stochasticprocess.hpp> 30 31 namespace QuantLib { 32 33 //! Geometric brownian-motion process 34 /*! This class describes the stochastic process governed by 35 \f[ 36 dS(t, S)= \mu S dt + \sigma S dW_t. 37 \f] 38 39 \ingroup processes 40 */ 41 class GeometricBrownianMotionProcess : public StochasticProcess1D { 42 public: 43 GeometricBrownianMotionProcess(double initialValue, 44 double mue, 45 double sigma); 46 Real x0() const; 47 Real drift(Time t, Real x) const; 48 Real diffusion(Time t, Real x) const; 49 protected: 50 double initialValue_; 51 double mue_; 52 double sigma_; 53 }; 54 55 } 56 57 58 #endif 59