在数据处理中,matlab和Python是常用的工具,在量化模型中,概率论是一项很重要的基础,而中心极限定理在概率论中又是一个很重要的理论。

中心极限定理的定义为:

设随机序列{Xi}独立同分布,有共同的数学期望u和方差σ^2,部分和由编程小技巧之matlab python画二项分布的动态图-LMLPHP定义,则Sn的标准化

编程小技巧之matlab python画二项分布的动态图-LMLPHP

依分布收敛到标准正态分布。即对任何x,

编程小技巧之matlab python画二项分布的动态图-LMLPHP

这里Φ(x)是标准正态分布的分布函数。


对于二项分布而言,

编程小技巧之matlab python画二项分布的动态图-LMLPHP

当n→∞时,Sn的分布形状很像正态分布。

所以,今天我们就来看看,n从小到大时,Sn形状的变化。


matlab动态图:


编程小技巧之matlab python画二项分布的动态图-LMLPHP


python动态图:

编程小技巧之matlab python画二项分布的动态图-LMLPHP


matlab代码:

clear all;
close all;
clc;

%% 二项分布
p = 0.6;
n = 1000;
Psn = zeros(1,n+1);
if 1
   h2 =plot(0:n,Psn);
   grid on
   % axis([0 n 0 0.05]);
   axis([1 100 0 0.09]);
   for i=100:10:n
      for k = 0:i
          Psn(k+1) = nchoosek(i,k) * (p^k) * ((1-p)^(i-k));
      end
      set(h2,'XData',1:101,'YData',Psn(floor(i*0.6)-50:floor(i*0.6)+50));
      drawnow
      grid on
      pause(0.01)
   end
end


python代码:

# -*- coding: utf-8 -*-
"""
-------------------------------------------------
  File Name:    central_limit_theorem1.py
  Description :
  Author :       Z270
  date:        2018/8/30
-------------------------------------------------
  Change Activity:
                  2018/8/30:
-------------------------------------------------
"""
import numpy as np
from scipy.special import comb
import matplotlib.pyplot as plt

p = 0.6
n = 1000
Psn = np.zeros(n+1)

plt.figure(figsize=(8, 6), dpi=80)
# 打开交互模式
plt.ion()
for i in range(100,n+1,10):
  for k in range(i+1):
      Psn[k] = comb(i,k) * (p**k) * ((1-p)**(i-k))
  plt.cla()
  plt.grid(True)
  plt.xlim(1,100)
  plt.ylim(0,0.09)
  plt.plot(range(1,102), Psn[int(np.floor(i*0.6))-50:int(np.floor(i*0.6))+51], 'b--', linewidth = 2.0)
  plt.pause(0.1)
  print(i)
plt.ioff()
plt.show()



本文分享自微信公众号 - 科学计算Tech(Quant_Times)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

08-31 00:17