几何布朗运动,布朗运动 几何布朗运动 MATLAB

一、正态随机变量概率密度函数描述:
几何布朗运动" alt="" src="http://91793q.bay.livefilestore.com/y1mGG1MV6Y4cP6GGX4krKJSEsZ1h0MB_PQCjnLQGU2I-U0Jc0ryDqOIdPoI1yo7UUHrlvciYUAsUdRih95FannTJMeKVFzSTKOxmp0wMK98kQ1a6iR18o66lxK-dVoVjySk97UqK_pTMb7FhDIzI6aPfg/%E6%AD%A3%E6%80%81%E9%9A%8F%E6%9C%BA%E5%8F%98%E9%87%8F%E6%A6%82%E7%8E%87%E5%AF%86%E5%BA%A6%E5%87%BD%E6%95%B0.gif" real_src="http://91793q.bay.livefilestore.com/y1mGG1MV6Y4cP6GGX4krKJSEsZ1h0MB_PQCjnLQGU2I-U0Jc0ryDqOIdPoI1yo7UUHrlvciYUAsUdRih95FannTJMeKVFzSTKOxmp0wMK98kQ1a6iR18o66lxK-dVoVjySk97UqK_pTMb7FhDIzI6aPfg/%E6%AD%A3%E6%80%81%E9%9A%8F%E6%9C%BA%E5%8F%98%E9%87%8F%E6%A6%82%E7%8E%87%E5%AF%86%E5%BA%A6%E5%87%BD%E6%95%B0.gif">(μ为总体均数、σ为标准差)
二、布朗运动的数学描述:
价格时间函数P(x),T+t时刻的价格P(T+t)与T时刻价格P(T)的差值:P(T+t)-P(T)是一个正态随机变量,分布的平均期望值μt,标准差为几何布朗运动" alt="" src="http://91793q.bay.livefilestore.com/y1mW3BOXKegXVH6VzhiUespFD9ki-Yt44XKwlguFYkrwwEbFes4LcGqTD09RGE1A-uJKNNRNe3V0HAiEYDokOOYxPV8ICa8y1DAIkSJ-GPwbu1tUycBQ6vayAhWojLrgCexLVFuSz8xVwR0yZQbr_JgTw/%CF%83squr%20t.gif" real_src="http://91793q.bay.livefilestore.com/y1mW3BOXKegXVH6VzhiUespFD9ki-Yt44XKwlguFYkrwwEbFes4LcGqTD09RGE1A-uJKNNRNe3V0HAiEYDokOOYxPV8ICa8y1DAIkSJ-GPwbu1tUycBQ6vayAhWojLrgCexLVFuSz8xVwR0yZQbr_JgTw/%CF%83squr%20t.gif">。(T>0,t>0)
重大缺陷:
1、按此价格理论上可有负值,但实际中价格不可能存在负值。
2、不论价格初值为何值,固定时间长度的价格差具有相同的正态分布,不符合常理。
三、几何布朗运动:
把价格差改为价格的涨跌幅:可以避免直接使用布朗运动描述价格的缺陷,即为几何布朗运动。
几何布朗运动" alt="" src="http://91793q.bay.livefilestore.com/y1mGovGH0DbA-qWwboZfxLrrUT5JbNdueRzFkhhF-9vwnKsqV7E1Ljh7KhzBSDLPU9VEGxTvd3AKP5lQTDeCpK7m8xdqzrUZ4WTmwwERckDWMtD8AfHJyPxMQczFXBW0zlgtoUI1P-Wei1ZgujgyKFWdg/ln(pt.gif" real_src="http://91793q.bay.livefilestore.com/y1mGovGH0DbA-qWwboZfxLrrUT5JbNdueRzFkhhF-9vwnKsqV7E1Ljh7KhzBSDLPU9VEGxTvd3AKP5lQTDeCpK7m8xdqzrUZ4WTmwwERckDWMtD8AfHJyPxMQczFXBW0zlgtoUI1P-Wei1ZgujgyKFWdg/ln(pt.gif"> 是一个正态随机变量,分布的平均期望值μt,标准差为几何布朗运动" alt="" src="http://91793q.bay.livefilestore.com/y1mw1QXIOoJLRM2b4s5rm0XFQg15LylUX6HFhAfI3UP6UlSB4Lzz08_gBIuVmkYB0lUqkLOf2Hc0Frw34vzWhhAuzWLCk41C-eYijcbSlKgu2y8ykR2ZhCnW5iQLlfd_CWh4PakLpvTxvn709KynPIDrA/%CF%83squr%20t.gif" real_src="http://91793q.bay.livefilestore.com/y1mw1QXIOoJLRM2b4s5rm0XFQg15LylUX6HFhAfI3UP6UlSB4Lzz08_gBIuVmkYB0lUqkLOf2Hc0Frw34vzWhhAuzWLCk41C-eYijcbSlKgu2y8ykR2ZhCnW5iQLlfd_CWh4PakLpvTxvn709KynPIDrA/%CF%83squr%20t.gif">。(T>0,t>0)
******************
几何布朗运动 几何布朗运动的作用是用来模拟股价的变动。它的好处在于,一般形式布朗运动中取值可能为负数,而几何布朗运动取值永远不小于0,这一点符合股价永远不为负的特征。
几何布朗运动微分形式的表述。或者称SDE(随机微分方程)形式:
几何布朗运动" src="http://www.macro2.cn/notes/intro2mc/lectures.files/lectures-31730.png" width=144 height=45 real_src="http://www.macro2.cn/notes/intro2mc/lectures.files/lectures-31730.png">
其中的S(t)可以理解为股价。
几何布朗运动函数形式表述:
几何布朗运动" src="http://www.macro2.cn/notes/intro2mc/lectures.files/lectures-31803.png" width=282 height=61 real_src="http://www.macro2.cn/notes/intro2mc/lectures.files/lectures-31803.png">
上述式子告诉我们,可以先生成一服从几何布朗运动" src="http://www.macro2.cn/notes/intro2mc/lectures.files/lectures-31863.png" width=174 height=42 real_src="http://www.macro2.cn/notes/intro2mc/lectures.files/lectures-31863.png">的一般形式布朗运动,然后求其指数函数,最后乘以S(0),即期初的股价,就可以得到几何布朗运动。
补充:为何这里t的系数多出一项?具体可以参考伊藤公式。
--- 摘自: 基于Matlab语言的Monte Carlo入门教程
http://www.macro2.cn/notes/intro2mc/monte_carlo3.htm
*******************
学蒙特卡罗模拟时候编的布朗运动程序%布朗运动路径模拟;几何布朗运动路径模拟;关于布朗运动的随机积分模拟
%BrownMotPath布朗运动路径
%GeometryBroPath
%BrownMotintegral
function BrownMotPath(t,delt_t,path_number) %[B_path,GEB_path]=BrownMotPath(t,delt_t,path_number)
t=1;
%产生布朗运动路径,时间区间(0,1)
path_number=10;
delt_t=0.001;
points_number=1/0.001;
brown_motion_values=zeros(points_number+1,path_number);
for j=1:path_number
for i=1:points_number
brown_motion_values(i+1,j)= brown_motion_values(i,j)+sqrt(delt_t)*normrnd(0,1,1);%从0位置出发的布朗运动
end
end
%产生布朗运动路径,时间区间(0,100)
%产生几何布朗运动路径d(log(s))=mu*s*d(t)+sigma*s*d(w),w表示布朗运动
% price_stock() :
mu=0.05;
sigma=1;
dt=1/1000;
n_path=10;
n_points=1001;
price_stock=zeros(n_points,n_path);
for j=1:n_path
price_stock(1,j)=1; %目前的股票价格为1
end
for j=1:n_path
for i=1:n_points-1
price_stock(i+1,j)=price_stock(i,j)*exp(dt*(mu-0.5*sigma^2)+sigma*sqrt(dt)*normrnd(0,1,1));
end
end
x=(0:0.001:1)';
subplot(2,1,1);
plot(x,brown_motion_values);
xlabel('t')
ylabel('y_value')
title('布朗运动路径')
subplot(2,1,2);
plot(x, price_stock);
xlabel('t')
ylabel('y_value')
title('几何布朗运动路径')
Matlab 基础
标签: 杂谈
创建一维数组:
Matlab 中一般用方括号([])、逗号(,)或空格,以及分号(;)来创建数组
方括号中给出数组的所有元素,同一行中的元素间用逗号或空格分隔,不同行之间用分号分隔。
很多时候要创建的一维数组实际上是一个等差数列,这时候可以通过冒号(:)来创建。
例如:
Var=start_val:step:stop_val
表示创建一个一维行向量Var,它的第一个元素师start_val,然后依次递增(step为正)或递减(step为负)step,直到向量中的最后一个元素与stop_val差的绝对值小于等于step的绝对值为止。当不指定step时,默认step等于1
和冒号功能相似的linspace函数
Var=linspace(start_val,stop_val,n)
表示创建一个一维行向量Var,它的第一个元素是start_val,最后一个元素是stop_val,形成总共是n个元素的等差数列,不指定n时,默认n等于100。
注意,这和冒号是不同的,冒号创建等差的一维数组时,stop_val可能取不到。
一维列向量可以通过一维行向量的转置(')得到。
行向量(Colum vector)
列向量(Row vector)
>>C(3,2:4)
所取到的是C矩陣第三列第二、三、四行的元素。
若要取得其中之全行,則僅使用冒號(:),前後不加數字即可,如取A之第一列轉置再與C之第二、三行合併成D矩陣:
>>D=[A(1,:)' C(:,2:3)]
randn函数用于产生元素服从标准正态分布的随机数组
3.5.1数组保存和装载
最简单易用的是将数组变量保存为二进制的.mat文件,用户可以通过save命令将工作区中指定的变量存储在.mat文件中
save命令语法
save <filename> <var1> <var2> .... <varN>
装载load命令
load <filename> <var1> <var2> .... <varN>
流程控制:
Matlab中,循环的执行效率很低,提高程序效率的一个办法就是多采用数组结构和Matlab内联函数
比如result=sum(1:100),就是从1加到100,这比用循环效率更高
for循环中的循环变量index也可以赋值为数组A,那么第一次循环中index就被赋值为A(:,1),即A的第一列元素
第二次循环index被赋值为A(:,2),以此类推,若A有n列元素,则循环执行n次,第n次循环时,循环变量index被赋值为A(:,n)
两种M文件:
脚本M文件
函数M文件
二维图形
Matlab中最基本的二维绘图函数是:直角坐标系下的简单画线函数line、核心绘图函数plot和极坐标系下的绘图函数polar
line的语法为:
line(X,Y)
其中X,Y都是一维数组
plot(Y)是plot最简单的用法。当Y是一维数组时,plot(Y)是把(i,Y(i))各点依次连接起来,其中i的取值范围从1到length(Y)
当Y是普通二维数组时,相当于对Y的每一列进行plot(Y(:,I))画线,并把所有的折线累叠绘制在当前坐标轴下
plot最常用的语法格式是plot(X,Y)
当X和Y都是一维数组时,功能和line(X,Y)类似
但plot函数中X和Y也可以是一般的二维数组,这时就是对X和Y的对应列画线
Matlab与Excel接口:
安装Excel link
1,启动Excel
2,工具-加载宏
3,在安装目录中:也就是 Matlab7\toolbox\exlink 下选中excllink.xla
4,确定后,Excel link则被加载到Excel中
Tags:  布朗运动实验 分数布朗运动 布朗运动是什么 布朗运动 几何布朗运动

延伸阅读

最新评论

发表评论