首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编程小技巧之matlab python画二项分布的动态图

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

作者头像
猫叔Rex
发布2020-06-30 11:29:52
1.1K0
发布2020-06-30 11:29:52
举报
文章被收录于专栏:科学计算科学计算

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

中心极限定理的定义为:

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

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

对于二项分布而言,

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

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

matlab动态图:

python动态图:

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 pltp = 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()
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 傅里叶的猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档