Numpy Exercise 3

Imports


In [1]:
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns

In [2]:
import antipackage
import github.ellisonbg.misc.vizarray as va


Downloading:  https://raw.githubusercontent.com/ellisonbg/misc/master/vizarray.py
Using existing version:  github.ellisonbg.misc.vizarray

Geometric Brownian motion

Here is a function that produces standard Brownian motion using NumPy. This is also known as a Wiener Process.


In [11]:
def brownian(maxt, n):
    """Return one realization of a Brownian (Wiener) process with n steps and a max time of t."""
    t = np.linspace(0.0,maxt,n)
    h = t[1]-t[0]
    Z = np.random.normal(0.0,1.0,n-1)
    dW = np.sqrt(h)*Z
    W = np.zeros(n)
    W[1:] = dW.cumsum()
    return t, W

Call the brownian function to simulate a Wiener process with 1000 steps and max time of 1.0. Save the results as two arrays t and W.


In [15]:
c = np.array(brownian(1.0, 1000))
c
t = c[0,:]
W = c[1,:]
print t
print W


[ 0.          0.001001    0.002002    0.003003    0.004004    0.00500501
  0.00600601  0.00700701  0.00800801  0.00900901  0.01001001  0.01101101
  0.01201201  0.01301301  0.01401401  0.01501502  0.01601602  0.01701702
  0.01801802  0.01901902  0.02002002  0.02102102  0.02202202  0.02302302
  0.02402402  0.02502503  0.02602603  0.02702703  0.02802803  0.02902903
  0.03003003  0.03103103  0.03203203  0.03303303  0.03403403  0.03503504
  0.03603604  0.03703704  0.03803804  0.03903904  0.04004004  0.04104104
  0.04204204  0.04304304  0.04404404  0.04504505  0.04604605  0.04704705
  0.04804805  0.04904905  0.05005005  0.05105105  0.05205205  0.05305305
  0.05405405  0.05505506  0.05605606  0.05705706  0.05805806  0.05905906
  0.06006006  0.06106106  0.06206206  0.06306306  0.06406406  0.06506507
  0.06606607  0.06706707  0.06806807  0.06906907  0.07007007  0.07107107
  0.07207207  0.07307307  0.07407407  0.07507508  0.07607608  0.07707708
  0.07807808  0.07907908  0.08008008  0.08108108  0.08208208  0.08308308
  0.08408408  0.08508509  0.08608609  0.08708709  0.08808809  0.08908909
  0.09009009  0.09109109  0.09209209  0.09309309  0.09409409  0.0950951
  0.0960961   0.0970971   0.0980981   0.0990991   0.1001001   0.1011011
  0.1021021   0.1031031   0.1041041   0.10510511  0.10610611  0.10710711
  0.10810811  0.10910911  0.11011011  0.11111111  0.11211211  0.11311311
  0.11411411  0.11511512  0.11611612  0.11711712  0.11811812  0.11911912
  0.12012012  0.12112112  0.12212212  0.12312312  0.12412412  0.12512513
  0.12612613  0.12712713  0.12812813  0.12912913  0.13013013  0.13113113
  0.13213213  0.13313313  0.13413413  0.13513514  0.13613614  0.13713714
  0.13813814  0.13913914  0.14014014  0.14114114  0.14214214  0.14314314
  0.14414414  0.14514515  0.14614615  0.14714715  0.14814815  0.14914915
  0.15015015  0.15115115  0.15215215  0.15315315  0.15415415  0.15515516
  0.15615616  0.15715716  0.15815816  0.15915916  0.16016016  0.16116116
  0.16216216  0.16316316  0.16416416  0.16516517  0.16616617  0.16716717
  0.16816817  0.16916917  0.17017017  0.17117117  0.17217217  0.17317317
  0.17417417  0.17517518  0.17617618  0.17717718  0.17817818  0.17917918
  0.18018018  0.18118118  0.18218218  0.18318318  0.18418418  0.18518519
  0.18618619  0.18718719  0.18818819  0.18918919  0.19019019  0.19119119
  0.19219219  0.19319319  0.19419419  0.1951952   0.1961962   0.1971972
  0.1981982   0.1991992   0.2002002   0.2012012   0.2022022   0.2032032
  0.2042042   0.20520521  0.20620621  0.20720721  0.20820821  0.20920921
  0.21021021  0.21121121  0.21221221  0.21321321  0.21421421  0.21521522
  0.21621622  0.21721722  0.21821822  0.21921922  0.22022022  0.22122122
  0.22222222  0.22322322  0.22422422  0.22522523  0.22622623  0.22722723
  0.22822823  0.22922923  0.23023023  0.23123123  0.23223223  0.23323323
  0.23423423  0.23523524  0.23623624  0.23723724  0.23823824  0.23923924
  0.24024024  0.24124124  0.24224224  0.24324324  0.24424424  0.24524525
  0.24624625  0.24724725  0.24824825  0.24924925  0.25025025  0.25125125
  0.25225225  0.25325325  0.25425425  0.25525526  0.25625626  0.25725726
  0.25825826  0.25925926  0.26026026  0.26126126  0.26226226  0.26326326
  0.26426426  0.26526527  0.26626627  0.26726727  0.26826827  0.26926927
  0.27027027  0.27127127  0.27227227  0.27327327  0.27427427  0.27527528
  0.27627628  0.27727728  0.27827828  0.27927928  0.28028028  0.28128128
  0.28228228  0.28328328  0.28428428  0.28528529  0.28628629  0.28728729
  0.28828829  0.28928929  0.29029029  0.29129129  0.29229229  0.29329329
  0.29429429  0.2952953   0.2962963   0.2972973   0.2982983   0.2992993
  0.3003003   0.3013013   0.3023023   0.3033033   0.3043043   0.30530531
  0.30630631  0.30730731  0.30830831  0.30930931  0.31031031  0.31131131
  0.31231231  0.31331331  0.31431431  0.31531532  0.31631632  0.31731732
  0.31831832  0.31931932  0.32032032  0.32132132  0.32232232  0.32332332
  0.32432432  0.32532533  0.32632633  0.32732733  0.32832833  0.32932933
  0.33033033  0.33133133  0.33233233  0.33333333  0.33433433  0.33533534
  0.33633634  0.33733734  0.33833834  0.33933934  0.34034034  0.34134134
  0.34234234  0.34334334  0.34434434  0.34534535  0.34634635  0.34734735
  0.34834835  0.34934935  0.35035035  0.35135135  0.35235235  0.35335335
  0.35435435  0.35535536  0.35635636  0.35735736  0.35835836  0.35935936
  0.36036036  0.36136136  0.36236236  0.36336336  0.36436436  0.36536537
  0.36636637  0.36736737  0.36836837  0.36936937  0.37037037  0.37137137
  0.37237237  0.37337337  0.37437437  0.37537538  0.37637638  0.37737738
  0.37837838  0.37937938  0.38038038  0.38138138  0.38238238  0.38338338
  0.38438438  0.38538539  0.38638639  0.38738739  0.38838839  0.38938939
  0.39039039  0.39139139  0.39239239  0.39339339  0.39439439  0.3953954
  0.3963964   0.3973974   0.3983984   0.3993994   0.4004004   0.4014014
  0.4024024   0.4034034   0.4044044   0.40540541  0.40640641  0.40740741
  0.40840841  0.40940941  0.41041041  0.41141141  0.41241241  0.41341341
  0.41441441  0.41541542  0.41641642  0.41741742  0.41841842  0.41941942
  0.42042042  0.42142142  0.42242242  0.42342342  0.42442442  0.42542543
  0.42642643  0.42742743  0.42842843  0.42942943  0.43043043  0.43143143
  0.43243243  0.43343343  0.43443443  0.43543544  0.43643644  0.43743744
  0.43843844  0.43943944  0.44044044  0.44144144  0.44244244  0.44344344
  0.44444444  0.44544545  0.44644645  0.44744745  0.44844845  0.44944945
  0.45045045  0.45145145  0.45245245  0.45345345  0.45445445  0.45545546
  0.45645646  0.45745746  0.45845846  0.45945946  0.46046046  0.46146146
  0.46246246  0.46346346  0.46446446  0.46546547  0.46646647  0.46746747
  0.46846847  0.46946947  0.47047047  0.47147147  0.47247247  0.47347347
  0.47447447  0.47547548  0.47647648  0.47747748  0.47847848  0.47947948
  0.48048048  0.48148148  0.48248248  0.48348348  0.48448448  0.48548549
  0.48648649  0.48748749  0.48848849  0.48948949  0.49049049  0.49149149
  0.49249249  0.49349349  0.49449449  0.4954955   0.4964965   0.4974975
  0.4984985   0.4994995   0.5005005   0.5015015   0.5025025   0.5035035
  0.5045045   0.50550551  0.50650651  0.50750751  0.50850851  0.50950951
  0.51051051  0.51151151  0.51251251  0.51351351  0.51451451  0.51551552
  0.51651652  0.51751752  0.51851852  0.51951952  0.52052052  0.52152152
  0.52252252  0.52352352  0.52452452  0.52552553  0.52652653  0.52752753
  0.52852853  0.52952953  0.53053053  0.53153153  0.53253253  0.53353353
  0.53453453  0.53553554  0.53653654  0.53753754  0.53853854  0.53953954
  0.54054054  0.54154154  0.54254254  0.54354354  0.54454454  0.54554555
  0.54654655  0.54754755  0.54854855  0.54954955  0.55055055  0.55155155
  0.55255255  0.55355355  0.55455455  0.55555556  0.55655656  0.55755756
  0.55855856  0.55955956  0.56056056  0.56156156  0.56256256  0.56356356
  0.56456456  0.56556557  0.56656657  0.56756757  0.56856857  0.56956957
  0.57057057  0.57157157  0.57257257  0.57357357  0.57457457  0.57557558
  0.57657658  0.57757758  0.57857858  0.57957958  0.58058058  0.58158158
  0.58258258  0.58358358  0.58458458  0.58558559  0.58658659  0.58758759
  0.58858859  0.58958959  0.59059059  0.59159159  0.59259259  0.59359359
  0.59459459  0.5955956   0.5965966   0.5975976   0.5985986   0.5995996
  0.6006006   0.6016016   0.6026026   0.6036036   0.6046046   0.60560561
  0.60660661  0.60760761  0.60860861  0.60960961  0.61061061  0.61161161
  0.61261261  0.61361361  0.61461461  0.61561562  0.61661662  0.61761762
  0.61861862  0.61961962  0.62062062  0.62162162  0.62262262  0.62362362
  0.62462462  0.62562563  0.62662663  0.62762763  0.62862863  0.62962963
  0.63063063  0.63163163  0.63263263  0.63363363  0.63463463  0.63563564
  0.63663664  0.63763764  0.63863864  0.63963964  0.64064064  0.64164164
  0.64264264  0.64364364  0.64464464  0.64564565  0.64664665  0.64764765
  0.64864865  0.64964965  0.65065065  0.65165165  0.65265265  0.65365365
  0.65465465  0.65565566  0.65665666  0.65765766  0.65865866  0.65965966
  0.66066066  0.66166166  0.66266266  0.66366366  0.66466466  0.66566567
  0.66666667  0.66766767  0.66866867  0.66966967  0.67067067  0.67167167
  0.67267267  0.67367367  0.67467467  0.67567568  0.67667668  0.67767768
  0.67867868  0.67967968  0.68068068  0.68168168  0.68268268  0.68368368
  0.68468468  0.68568569  0.68668669  0.68768769  0.68868869  0.68968969
  0.69069069  0.69169169  0.69269269  0.69369369  0.69469469  0.6956957
  0.6966967   0.6976977   0.6986987   0.6996997   0.7007007   0.7017017
  0.7027027   0.7037037   0.7047047   0.70570571  0.70670671  0.70770771
  0.70870871  0.70970971  0.71071071  0.71171171  0.71271271  0.71371371
  0.71471471  0.71571572  0.71671672  0.71771772  0.71871872  0.71971972
  0.72072072  0.72172172  0.72272272  0.72372372  0.72472472  0.72572573
  0.72672673  0.72772773  0.72872873  0.72972973  0.73073073  0.73173173
  0.73273273  0.73373373  0.73473473  0.73573574  0.73673674  0.73773774
  0.73873874  0.73973974  0.74074074  0.74174174  0.74274274  0.74374374
  0.74474474  0.74574575  0.74674675  0.74774775  0.74874875  0.74974975
  0.75075075  0.75175175  0.75275275  0.75375375  0.75475475  0.75575576
  0.75675676  0.75775776  0.75875876  0.75975976  0.76076076  0.76176176
  0.76276276  0.76376376  0.76476476  0.76576577  0.76676677  0.76776777
  0.76876877  0.76976977  0.77077077  0.77177177  0.77277277  0.77377377
  0.77477477  0.77577578  0.77677678  0.77777778  0.77877878  0.77977978
  0.78078078  0.78178178  0.78278278  0.78378378  0.78478478  0.78578579
  0.78678679  0.78778779  0.78878879  0.78978979  0.79079079  0.79179179
  0.79279279  0.79379379  0.79479479  0.7957958   0.7967968   0.7977978
  0.7987988   0.7997998   0.8008008   0.8018018   0.8028028   0.8038038
  0.8048048   0.80580581  0.80680681  0.80780781  0.80880881  0.80980981
  0.81081081  0.81181181  0.81281281  0.81381381  0.81481481  0.81581582
  0.81681682  0.81781782  0.81881882  0.81981982  0.82082082  0.82182182
  0.82282282  0.82382382  0.82482482  0.82582583  0.82682683  0.82782783
  0.82882883  0.82982983  0.83083083  0.83183183  0.83283283  0.83383383
  0.83483483  0.83583584  0.83683684  0.83783784  0.83883884  0.83983984
  0.84084084  0.84184184  0.84284284  0.84384384  0.84484484  0.84584585
  0.84684685  0.84784785  0.84884885  0.84984985  0.85085085  0.85185185
  0.85285285  0.85385385  0.85485485  0.85585586  0.85685686  0.85785786
  0.85885886  0.85985986  0.86086086  0.86186186  0.86286286  0.86386386
  0.86486486  0.86586587  0.86686687  0.86786787  0.86886887  0.86986987
  0.87087087  0.87187187  0.87287287  0.87387387  0.87487487  0.87587588
  0.87687688  0.87787788  0.87887888  0.87987988  0.88088088  0.88188188
  0.88288288  0.88388388  0.88488488  0.88588589  0.88688689  0.88788789
  0.88888889  0.88988989  0.89089089  0.89189189  0.89289289  0.89389389
  0.89489489  0.8958959   0.8968969   0.8978979   0.8988989   0.8998999
  0.9009009   0.9019019   0.9029029   0.9039039   0.9049049   0.90590591
  0.90690691  0.90790791  0.90890891  0.90990991  0.91091091  0.91191191
  0.91291291  0.91391391  0.91491491  0.91591592  0.91691692  0.91791792
  0.91891892  0.91991992  0.92092092  0.92192192  0.92292292  0.92392392
  0.92492492  0.92592593  0.92692693  0.92792793  0.92892893  0.92992993
  0.93093093  0.93193193  0.93293293  0.93393393  0.93493493  0.93593594
  0.93693694  0.93793794  0.93893894  0.93993994  0.94094094  0.94194194
  0.94294294  0.94394394  0.94494494  0.94594595  0.94694695  0.94794795
  0.94894895  0.94994995  0.95095095  0.95195195  0.95295295  0.95395395
  0.95495495  0.95595596  0.95695696  0.95795796  0.95895896  0.95995996
  0.96096096  0.96196196  0.96296296  0.96396396  0.96496496  0.96596597
  0.96696697  0.96796797  0.96896897  0.96996997  0.97097097  0.97197197
  0.97297297  0.97397397  0.97497497  0.97597598  0.97697698  0.97797798
  0.97897898  0.97997998  0.98098098  0.98198198  0.98298298  0.98398398
  0.98498498  0.98598599  0.98698699  0.98798799  0.98898899  0.98998999
  0.99099099  0.99199199  0.99299299  0.99399399  0.99499499  0.995996
  0.996997    0.997998    0.998999    1.        ]
[  0.00000000e+00   2.63895322e-02  -2.14425969e-02   4.95618499e-02
  -8.53770396e-03  -3.48121183e-02  -5.84571685e-02  -1.21808675e-01
  -9.39000946e-02  -9.92656362e-02  -1.02946259e-01  -1.39151715e-01
  -1.84744668e-01  -1.67362275e-01  -1.72634321e-01  -1.59122375e-01
  -1.03300153e-01  -1.06082239e-01  -1.08281572e-01  -1.40922346e-01
  -1.83072782e-01  -1.93301933e-01  -1.53199326e-01  -1.71429037e-01
  -1.42375211e-01  -1.32597605e-01  -1.36203984e-01  -1.55043963e-01
  -1.77757402e-01  -1.81314265e-01  -2.24383249e-01  -2.42902051e-01
  -2.18837037e-01  -1.68870070e-01  -1.44738545e-01  -1.16969875e-01
  -9.98689691e-02  -6.75124743e-02  -6.16310049e-02  -1.59629493e-02
  -5.82223057e-04   7.54294711e-03   2.69183661e-02   5.97694619e-02
   8.19214152e-02   2.32422637e-02   1.16276746e-02   8.15042137e-03
  -7.57962202e-03   1.16303287e-02  -3.20261676e-02  -5.80389280e-02
  -7.04604306e-02  -5.80236196e-02  -5.49125855e-02  -1.07458822e-01
  -1.33178911e-01  -8.30505511e-02  -5.67450123e-02  -9.36679315e-03
   2.20368646e-02   6.06998581e-02   4.56825453e-02   7.53085280e-03
  -4.22702266e-02  -9.12016535e-02  -1.26282363e-01  -1.90635316e-01
  -2.10706997e-01  -1.78641107e-01  -2.45569401e-01  -2.40669194e-01
  -2.21276775e-01  -2.36427204e-01  -1.75248008e-01  -2.11077143e-01
  -1.94414268e-01  -2.27773024e-01  -2.41812514e-01  -2.70648082e-01
  -2.88253549e-01  -2.53884274e-01  -2.93968058e-01  -3.33123582e-01
  -3.36713165e-01  -3.02604069e-01  -3.15523043e-01  -3.50082288e-01
  -3.05364776e-01  -2.95870475e-01  -3.24851378e-01  -2.96122041e-01
  -3.19693305e-01  -3.38622615e-01  -3.17078935e-01  -3.55730432e-01
  -3.56365750e-01  -3.43336522e-01  -3.48626424e-01  -3.28191567e-01
  -3.33769709e-01  -3.91770673e-01  -3.40128019e-01  -3.41993483e-01
  -3.35011033e-01  -3.91225621e-01  -4.03961149e-01  -3.46438940e-01
  -3.57469412e-01  -4.04163348e-01  -4.40797766e-01  -4.40495383e-01
  -4.52866918e-01  -4.02034726e-01  -3.99321843e-01  -4.19192737e-01
  -4.20711771e-01  -4.06863112e-01  -4.88321927e-01  -4.53662024e-01
  -5.22242366e-01  -5.14808262e-01  -5.33909168e-01  -5.71784517e-01
  -5.90312611e-01  -5.95593026e-01  -6.32783336e-01  -5.78155938e-01
  -5.68370458e-01  -5.83536411e-01  -6.14098252e-01  -6.22460347e-01
  -6.16940133e-01  -6.45263245e-01  -6.57450909e-01  -6.82422624e-01
  -6.85882126e-01  -6.76448056e-01  -6.68022656e-01  -6.70573305e-01
  -6.62643758e-01  -6.94553736e-01  -7.57270425e-01  -7.36334819e-01
  -7.13029129e-01  -6.86081753e-01  -7.44075196e-01  -7.99921606e-01
  -7.86384638e-01  -8.13666545e-01  -8.34295610e-01  -8.25299038e-01
  -8.10148413e-01  -8.20047537e-01  -8.19448974e-01  -7.81651399e-01
  -7.87241115e-01  -7.44786933e-01  -7.79529835e-01  -7.36269466e-01
  -7.09418799e-01  -7.44834565e-01  -7.92648649e-01  -8.34432167e-01
  -8.22065137e-01  -8.17809360e-01  -7.85519179e-01  -7.51346861e-01
  -7.47644635e-01  -7.61294273e-01  -7.37667793e-01  -7.71867447e-01
  -7.94378174e-01  -8.37913412e-01  -8.53625503e-01  -8.12687939e-01
  -7.87193555e-01  -7.68090305e-01  -8.09262001e-01  -8.29066200e-01
  -8.50040398e-01  -8.42882511e-01  -8.45232092e-01  -8.21605726e-01
  -8.18569691e-01  -7.68001112e-01  -7.62973775e-01  -7.39330402e-01
  -7.04738785e-01  -6.49395255e-01  -6.47789471e-01  -6.68282852e-01
  -5.97006874e-01  -6.30214902e-01  -6.47464327e-01  -6.48747735e-01
  -6.69021352e-01  -6.46557342e-01  -6.47836664e-01  -6.57817143e-01
  -6.30589160e-01  -5.93577881e-01  -5.54217699e-01  -5.99789353e-01
  -5.96566435e-01  -6.23984417e-01  -5.99326038e-01  -5.83360268e-01
  -6.04087520e-01  -6.07988869e-01  -5.59611574e-01  -5.44682506e-01
  -5.37361873e-01  -5.56985484e-01  -5.57628465e-01  -5.60246693e-01
  -5.27208107e-01  -5.30969111e-01  -5.25679013e-01  -5.36421346e-01
  -5.67429104e-01  -5.74267237e-01  -5.90629488e-01  -5.68966536e-01
  -5.51301018e-01  -5.58845253e-01  -5.82452847e-01  -6.26133174e-01
  -6.32114906e-01  -6.82323368e-01  -6.40151709e-01  -6.02018010e-01
  -5.65236912e-01  -5.52149105e-01  -5.48349940e-01  -5.42726535e-01
  -5.66651746e-01  -5.96012967e-01  -5.64222943e-01  -5.93537910e-01
  -6.16208149e-01  -6.71509039e-01  -6.04636721e-01  -6.07771315e-01
  -5.68667034e-01  -5.41176263e-01  -6.00062138e-01  -6.02176743e-01
  -6.21289614e-01  -6.15437924e-01  -6.70837151e-01  -6.57217410e-01
  -6.44576058e-01  -5.74064891e-01  -5.58389736e-01  -5.72980593e-01
  -5.06472134e-01  -4.90968798e-01  -5.06218361e-01  -4.70570464e-01
  -5.08194786e-01  -4.36670398e-01  -4.35226795e-01  -4.61137646e-01
  -4.52857732e-01  -4.67399764e-01  -5.17529329e-01  -5.17205058e-01
  -5.06818388e-01  -5.30277821e-01  -5.38495043e-01  -5.28323208e-01
  -5.40242317e-01  -5.40612073e-01  -5.68882952e-01  -5.64196533e-01
  -6.09324452e-01  -6.10719314e-01  -5.72882699e-01  -5.94180724e-01
  -5.47170986e-01  -5.22260972e-01  -5.35891797e-01  -5.47358038e-01
  -5.63192821e-01  -6.00342143e-01  -5.93635358e-01  -6.31967616e-01
  -6.68309928e-01  -6.60423484e-01  -6.77168780e-01  -6.78701355e-01
  -6.39035005e-01  -6.21744813e-01  -5.98098982e-01  -6.00962222e-01
  -5.56788072e-01  -5.41734137e-01  -5.18305977e-01  -5.08944417e-01
  -5.60157424e-01  -5.67497225e-01  -5.60079230e-01  -5.52925520e-01
  -5.06339568e-01  -4.87953450e-01  -5.45262329e-01  -4.97850331e-01
  -5.16221733e-01  -5.18363890e-01  -5.02900585e-01  -4.97212300e-01
  -4.80880265e-01  -4.96372425e-01  -4.60680921e-01  -3.83057354e-01
  -4.20390314e-01  -4.03794495e-01  -3.69111965e-01  -4.13681238e-01
  -4.44301321e-01  -4.58860631e-01  -4.53992204e-01  -4.73263554e-01
  -4.87896896e-01  -4.65418536e-01  -5.01459783e-01  -5.52490113e-01
  -5.56452582e-01  -6.16572598e-01  -6.69055055e-01  -6.98335831e-01
  -6.54216251e-01  -5.71786371e-01  -6.15255515e-01  -6.24864525e-01
  -6.70989200e-01  -6.45089696e-01  -6.65687731e-01  -7.14682566e-01
  -7.99824750e-01  -8.07754457e-01  -7.92894577e-01  -8.06218525e-01
  -8.16895321e-01  -8.23253763e-01  -8.81367211e-01  -8.76575981e-01
  -8.84293959e-01  -8.61545983e-01  -8.57618141e-01  -8.80612570e-01
  -8.54332345e-01  -8.33237814e-01  -8.32033663e-01  -8.56863916e-01
  -8.10502301e-01  -7.49560300e-01  -7.88678438e-01  -7.93132288e-01
  -7.88243931e-01  -7.63453688e-01  -7.40199282e-01  -7.60579247e-01
  -7.89557046e-01  -7.77086720e-01  -8.01216174e-01  -7.96888507e-01
  -7.66018647e-01  -8.21434078e-01  -7.59903688e-01  -7.88890256e-01
  -8.19031160e-01  -8.26028143e-01  -7.97190794e-01  -8.48516389e-01
  -8.30339034e-01  -8.14734461e-01  -8.07738428e-01  -8.54272086e-01
  -8.99286939e-01  -9.01818857e-01  -9.45147622e-01  -9.86474342e-01
  -9.71997922e-01  -9.41675313e-01  -9.54185607e-01  -9.03882588e-01
  -8.94306047e-01  -8.75150961e-01  -8.76450835e-01  -8.86558900e-01
  -9.06857015e-01  -8.53601076e-01  -8.50241643e-01  -8.65590489e-01
  -8.83371582e-01  -8.92690615e-01  -9.08873131e-01  -8.85173262e-01
  -9.73059141e-01  -9.73897897e-01  -9.75148173e-01  -1.03020948e+00
  -1.02334032e+00  -1.01272191e+00  -1.03967380e+00  -1.02728260e+00
  -1.02069704e+00  -9.79961315e-01  -9.76267194e-01  -1.01307542e+00
  -1.04547665e+00  -9.95694940e-01  -1.00788096e+00  -9.90235024e-01
  -9.86434482e-01  -1.05476321e+00  -1.07318128e+00  -1.06822443e+00
  -1.01028010e+00  -9.44702415e-01  -9.89101397e-01  -9.87621460e-01
  -1.00835266e+00  -9.70723190e-01  -9.68783550e-01  -9.86681859e-01
  -9.42831591e-01  -9.35869720e-01  -9.18318657e-01  -8.61027067e-01
  -8.79107007e-01  -8.97160322e-01  -8.71023558e-01  -8.62890129e-01
  -8.47205192e-01  -8.46632039e-01  -8.18509919e-01  -8.29776668e-01
  -7.75379599e-01  -7.53708763e-01  -7.83699636e-01  -7.12953567e-01
  -6.93152116e-01  -7.23177327e-01  -7.78811930e-01  -7.32242440e-01
  -7.23712061e-01  -7.12116226e-01  -6.87951789e-01  -6.80739865e-01
  -6.58597693e-01  -6.10525262e-01  -6.13382188e-01  -5.99274855e-01
  -6.19628768e-01  -6.38149699e-01  -6.49077291e-01  -6.72434625e-01
  -6.63565106e-01  -6.76177788e-01  -6.70233717e-01  -6.93032277e-01
  -7.16008228e-01  -7.18436025e-01  -7.36271314e-01  -7.18363880e-01
  -6.90976952e-01  -7.24858660e-01  -7.52817081e-01  -7.37674542e-01
  -7.57248459e-01  -7.47027968e-01  -7.31079338e-01  -7.41251415e-01
  -7.10349549e-01  -7.37039335e-01  -7.26240127e-01  -7.41972258e-01
  -7.22689878e-01  -7.66288451e-01  -7.12712981e-01  -7.31062629e-01
  -7.01538921e-01  -7.48105013e-01  -7.35346755e-01  -8.19581812e-01
  -7.62892501e-01  -7.17178488e-01  -7.53696656e-01  -7.75193994e-01
  -8.24808906e-01  -8.37023019e-01  -8.73418223e-01  -8.32959449e-01
  -8.20900987e-01  -8.09918257e-01  -8.15415803e-01  -7.26276186e-01
  -7.19124054e-01  -7.52580773e-01  -7.96968308e-01  -8.28041786e-01
  -8.03754855e-01  -8.03085131e-01  -7.85805163e-01  -7.97292734e-01
  -7.85752086e-01  -7.76425053e-01  -7.27494384e-01  -7.40404674e-01
  -7.12279389e-01  -7.06703643e-01  -6.91181180e-01  -6.93946218e-01
  -7.01602370e-01  -6.69140143e-01  -6.80130142e-01  -7.13124786e-01
  -7.01440308e-01  -6.58533710e-01  -5.83486417e-01  -5.62055168e-01
  -5.53123698e-01  -5.54155891e-01  -6.30572277e-01  -6.68760657e-01
  -6.81244745e-01  -6.82251401e-01  -6.13308342e-01  -6.71236974e-01
  -6.74171991e-01  -6.82212452e-01  -6.77730426e-01  -6.86511290e-01
  -6.66893524e-01  -6.08969387e-01  -6.10005316e-01  -6.14808793e-01
  -6.14316614e-01  -6.02243124e-01  -6.07406707e-01  -5.78358178e-01
  -6.10500485e-01  -6.39978370e-01  -6.49916397e-01  -6.68097440e-01
  -7.35436393e-01  -7.69858557e-01  -8.11595195e-01  -7.91786132e-01
  -7.54819792e-01  -7.32043097e-01  -7.41423014e-01  -7.36376080e-01
  -7.38515372e-01  -7.87296519e-01  -7.84168010e-01  -7.78336869e-01
  -8.03607253e-01  -8.19971877e-01  -8.24458975e-01  -8.22761212e-01
  -8.10951047e-01  -8.18440835e-01  -8.09744218e-01  -8.20178213e-01
  -8.37836156e-01  -8.36710717e-01  -8.18333801e-01  -8.27597312e-01
  -8.12716417e-01  -8.46214173e-01  -8.40339350e-01  -7.71383272e-01
  -7.38307560e-01  -7.22355483e-01  -6.96878331e-01  -7.18958562e-01
  -7.58582561e-01  -7.59910747e-01  -7.66673883e-01  -7.47774353e-01
  -6.91078354e-01  -7.03029626e-01  -6.90737176e-01  -7.08657209e-01
  -7.48719922e-01  -7.17961607e-01  -7.15080286e-01  -7.35805697e-01
  -7.61354929e-01  -7.45246546e-01  -7.48110605e-01  -7.65532091e-01
  -7.96047476e-01  -7.62054842e-01  -7.58439987e-01  -7.75430055e-01
  -8.09966294e-01  -7.88512042e-01  -7.54986671e-01  -7.44809529e-01
  -7.06195638e-01  -7.26618737e-01  -7.10315541e-01  -6.89545215e-01
  -7.33788998e-01  -7.62220651e-01  -7.68994279e-01  -8.33489745e-01
  -8.20040822e-01  -8.09670292e-01  -8.64922781e-01  -8.79426718e-01
  -9.02801546e-01  -9.58997636e-01  -9.73787974e-01  -9.65379006e-01
  -1.01914074e+00  -1.00664410e+00  -9.99082697e-01  -1.00988443e+00
  -9.94908333e-01  -9.70870215e-01  -9.88059896e-01  -9.74021280e-01
  -9.92180064e-01  -9.53658515e-01  -9.56348745e-01  -9.83342808e-01
  -9.90851539e-01  -9.81708573e-01  -9.58788131e-01  -9.65362536e-01
  -9.96787495e-01  -9.49110951e-01  -8.78662190e-01  -8.85395202e-01
  -8.87650743e-01  -8.25329144e-01  -7.74287255e-01  -7.62701212e-01
  -7.37891286e-01  -6.84881082e-01  -6.95482223e-01  -7.47544112e-01
  -7.41132907e-01  -7.13657794e-01  -7.20298655e-01  -7.08815848e-01
  -6.85322780e-01  -6.38344175e-01  -6.34766248e-01  -6.35727134e-01
  -6.16381222e-01  -6.17612948e-01  -5.93135463e-01  -5.81114661e-01
  -5.79909035e-01  -6.12489106e-01  -6.14077524e-01  -5.91460020e-01
  -5.82591661e-01  -5.47260586e-01  -5.25667923e-01  -5.44186939e-01
  -4.77239899e-01  -5.23999077e-01  -5.12063520e-01  -4.63506136e-01
  -4.11859739e-01  -3.74438114e-01  -3.69010461e-01  -3.99962997e-01
  -3.80450850e-01  -3.72432785e-01  -3.68961578e-01  -3.75075580e-01
  -3.90746186e-01  -3.99916775e-01  -3.85625051e-01  -4.08450535e-01
  -4.52882821e-01  -4.82393735e-01  -5.26591563e-01  -5.64492923e-01
  -5.84586896e-01  -5.46013602e-01  -5.48152382e-01  -5.08114049e-01
  -4.92115209e-01  -4.78392778e-01  -4.67007216e-01  -4.62788151e-01
  -4.83246426e-01  -5.16499674e-01  -5.33829216e-01  -5.06235310e-01
  -5.51246765e-01  -5.77229646e-01  -5.58816494e-01  -5.63285227e-01
  -5.12887250e-01  -5.02221207e-01  -5.32979309e-01  -5.09823153e-01
  -5.14759667e-01  -4.99505873e-01  -5.01874879e-01  -4.94691592e-01
  -5.24731162e-01  -4.94194326e-01  -4.67484371e-01  -4.83434575e-01
  -4.64941538e-01  -4.68303836e-01  -4.73500978e-01  -4.50635609e-01
  -4.28528231e-01  -3.90409993e-01  -4.09287251e-01  -3.78165796e-01
  -3.43551098e-01  -3.42138717e-01  -3.70832559e-01  -3.67413315e-01
  -4.21644704e-01  -4.80497554e-01  -4.94671724e-01  -5.02871767e-01
  -4.87112714e-01  -4.35482015e-01  -4.67880024e-01  -4.54216806e-01
  -4.40303321e-01  -4.60131911e-01  -4.44988862e-01  -4.59965581e-01
  -4.54827304e-01  -4.59831890e-01  -4.29953698e-01  -4.49050482e-01
  -4.25367957e-01  -4.57614376e-01  -4.75068304e-01  -4.67352599e-01
  -4.57575060e-01  -5.12947387e-01  -4.69852600e-01  -5.01400035e-01
  -5.31234876e-01  -4.81432584e-01  -4.13323344e-01  -3.99908120e-01
  -3.85579365e-01  -4.20853350e-01  -4.35451378e-01  -4.45289410e-01
  -4.86704910e-01  -4.45988328e-01  -4.87738625e-01  -4.50866981e-01
  -4.47739351e-01  -4.42730343e-01  -4.23470567e-01  -4.47142065e-01
  -5.02985205e-01  -5.18855758e-01  -5.40224482e-01  -5.16830876e-01
  -4.94622717e-01  -5.38120236e-01  -5.84411700e-01  -6.26382459e-01
  -6.10963395e-01  -5.72372858e-01  -6.13030005e-01  -6.19292317e-01
  -5.86464159e-01  -5.65650331e-01  -4.87349374e-01  -5.15014381e-01
  -4.98822491e-01  -5.01123242e-01  -4.77778225e-01  -4.74559474e-01
  -4.78844425e-01  -4.96244974e-01  -5.03244590e-01  -5.29443649e-01
  -5.44175392e-01  -5.53346753e-01  -5.67504256e-01  -5.64188115e-01
  -5.91784618e-01  -5.72316202e-01  -6.03043957e-01  -5.76582093e-01
  -5.72324736e-01  -6.03825157e-01  -6.31087624e-01  -6.45005173e-01
  -6.54211303e-01  -6.60832544e-01  -6.73481691e-01  -6.36185055e-01
  -6.24775367e-01  -6.19707508e-01  -6.61525935e-01  -6.55045738e-01
  -6.09843962e-01  -6.42472192e-01  -5.97223729e-01  -6.37660168e-01
  -5.89570755e-01  -5.50010416e-01  -5.43725017e-01  -5.93221096e-01
  -6.30805197e-01  -6.67045810e-01  -6.82639538e-01  -6.92641312e-01
  -6.87758341e-01  -7.10894300e-01  -7.15420330e-01  -6.68139705e-01
  -6.41004239e-01  -6.28993618e-01  -6.11845275e-01  -6.05398325e-01
  -6.45423439e-01  -6.38724912e-01  -6.04362095e-01  -5.60885051e-01
  -5.06461427e-01  -5.30193223e-01  -5.48938310e-01  -5.18744973e-01
  -5.31965505e-01  -5.68455374e-01  -5.46317623e-01  -6.14113134e-01
  -6.43765299e-01  -6.53911649e-01  -6.28573060e-01  -6.92569588e-01
  -6.75090587e-01  -6.95229918e-01  -7.42213437e-01  -7.43558518e-01
  -7.34320954e-01  -7.15623760e-01  -7.14323847e-01  -6.82040199e-01
  -7.16704742e-01  -7.50635083e-01  -7.11792629e-01  -7.34583670e-01
  -7.28092180e-01  -6.90005983e-01  -6.24847644e-01  -6.24281262e-01
  -6.17223181e-01  -6.02761384e-01  -6.48323356e-01  -6.31818537e-01
  -7.28413071e-01  -7.16900664e-01  -7.06313873e-01  -6.73731130e-01
  -6.83122401e-01  -6.67107103e-01  -7.02061991e-01  -7.07225243e-01
  -6.97548938e-01  -7.09658305e-01  -7.10003908e-01  -7.25154077e-01
  -6.67453604e-01  -5.91729210e-01  -5.68423369e-01  -6.17424121e-01
  -5.65424028e-01  -5.87765663e-01  -6.24577041e-01  -6.17537465e-01
  -6.08861695e-01  -6.04589058e-01  -6.16216032e-01  -6.05363851e-01
  -5.77354139e-01  -5.81298927e-01  -5.66894255e-01  -5.77727792e-01
  -5.64212707e-01  -6.45645724e-01  -6.80399480e-01  -7.04282648e-01
  -7.54656232e-01  -7.58282782e-01  -7.45538041e-01  -7.69180393e-01
  -7.64581177e-01  -7.50948392e-01  -7.43913469e-01  -7.18684103e-01
  -6.73125202e-01  -7.03940263e-01  -6.85362033e-01  -7.39978023e-01
  -7.57009969e-01  -7.61249140e-01  -7.92427328e-01  -8.18068632e-01
  -8.14873496e-01  -8.59500535e-01  -8.94608907e-01  -9.29134103e-01
  -9.89700451e-01  -1.00559576e+00  -1.03119104e+00  -1.00463429e+00
  -9.90447370e-01  -9.57255421e-01  -9.61694817e-01  -9.76267596e-01
  -1.00151348e+00  -1.00662264e+00  -1.04715372e+00  -1.02417990e+00
  -1.02019896e+00  -1.04752647e+00  -1.04332617e+00  -1.04334957e+00
  -1.07792375e+00  -1.07070094e+00  -1.09751454e+00  -1.12095335e+00
  -1.09869792e+00  -1.08193039e+00  -1.04100771e+00  -1.02387164e+00
  -1.02556003e+00  -1.02617780e+00  -1.02066994e+00  -1.00321420e+00
  -9.86721029e-01  -9.95145283e-01  -9.65749868e-01  -9.54616834e-01
  -9.55416019e-01  -1.00373089e+00  -1.03058468e+00  -1.03567152e+00
  -1.04326657e+00  -9.62765286e-01  -9.60226145e-01  -9.22822823e-01
  -9.07313887e-01  -8.78887454e-01  -8.55722043e-01  -8.13755647e-01
  -8.32058896e-01  -8.44610421e-01  -8.27824086e-01  -7.78570767e-01
  -7.79862091e-01  -6.90213356e-01  -6.28977891e-01  -6.77015677e-01
  -6.89504029e-01  -7.11341592e-01  -7.37377879e-01  -6.86690217e-01
  -7.12689201e-01  -7.38238004e-01  -7.25614126e-01  -7.86874820e-01
  -7.19543878e-01  -7.18382747e-01  -6.85995158e-01  -6.43030121e-01
  -6.18527814e-01  -5.60879734e-01  -5.34825648e-01  -5.27746475e-01
  -5.16651495e-01  -4.68647147e-01  -4.68380874e-01  -5.16143286e-01
  -5.19976853e-01  -4.33498980e-01  -4.11641714e-01  -4.44374318e-01
  -4.44549546e-01  -4.51263448e-01  -4.61589515e-01  -4.48767467e-01]

In [16]:
assert isinstance(t, np.ndarray)
assert isinstance(W, np.ndarray)
assert t.dtype==np.dtype(float)
assert W.dtype==np.dtype(float)
assert len(t)==len(W)==1000

Visualize the process using plt.plot with t on the x-axis and W(t) on the y-axis. Label your x and y axes.


In [18]:
plt.plot(t, W)
plt.xlabel('t')
plt.ylabel('W(t)')


Out[18]:
<matplotlib.text.Text at 0x7f9db276aad0>

In [ ]:
assert True # this is for grading

Use np.diff to compute the changes at each step of the motion, dW, and then compute the mean and standard deviation of those differences.


In [29]:
dW = np.diff(W)
y = dW.mean()
z = dW.std()

In [30]:
assert len(dW)==len(W)-1
assert dW.dtype==np.dtype(float)

Write a function that takes $W(t)$ and converts it to geometric Brownian motion using the equation:

$$ X(t) = X_0 e^{((\mu - \sigma^2/2)t + \sigma W(t))} $$

Use Numpy ufuncs and no loops in your function.


In [35]:
def geo_brownian(t, W, X0, mu, sigma):
    "Return X(t) for geometric brownian motion with drift mu, volatility sigma."""
    X_t = X0 * np.exp((mu - sigma**2) * t + sigma * W)
    return X_t

In [36]:
assert True # leave this for grading

Use your function to simulate geometric brownian motion, $X(t)$ for $X_0=1.0$, $\mu=0.5$ and $\sigma=0.3$ with the Wiener process you computed above.

Visualize the process using plt.plot with t on the x-axis and X(t) on the y-axis. Label your x and y axes.


In [37]:
plt.plot(t, geo_brownian(t, W, 1.0, 0.5, 0.3))
plt.xlabel('t')
plt.ylabel('X(t)')


Out[37]:
<matplotlib.text.Text at 0x7f9db2547bd0>

In [ ]:
assert True # leave this for grading