标准正态分布,t分布,双指数分布函数密度图,含MATLAB、R语言、Python代码

本文主要用MATLAB、R语言、Python三个软件分别绘制了标准正态分布、t自由度为1,2,10的t分布以及双指数分布的密度函数图像。

1.MATLAB原理及其代码

MATLAB原理,内嵌函数

unifpdf(x,a,b);        %均匀分布
normpdf(x,0,1);        %标准正态分布
exppdf(x,lamda);       %指数分布
binopdf(x,n,p);        %二项分布
geopdf(x5,p);          %几何分布
poisspdf(x6,lamda);    %泊松分布

实现代码:

clear all; clc;
Lw=3;  
x=-4:0.01:4; %定义x取值范围,步长为0.01
%标准正态分布
y1=normpdf(x,0,1)
%t(1)
y2=tpdf(x,1);
%t(2)
y3=tpdf(x,2);
%t(10)
y4=tpdf(x,10);
%双指数
y5=0.5*exp(-abs(x));
plot(x, y1, 'linewidth', Lw);
hold on
plot(x,y2,'linewidth',Lw);
hold on
plot(x,y3,'linewidth',Lw);
hold on
plot(x,y4,'linewidth',Lw);
hold on
plot(x,y5,'linewidth',Lw)
xlim=get(gca,'Xlim'); % 画x=0的参考线
hold on
plot([0,0],ylim,'k-','LineWidth',1)
legend('标准正态分布','t(1)','t(2)','t(10)', '双指数分布')

画图如下:

2.R语言原理及代码

rnorm(x,miu,sigma)
rexp(n,lambda)
rpois(n,lambda)
rt(n,df)
rf(n,df1,df2)
加前缀d,p,q,r
d 表示密度函数(density);
p 表示分布函数;
q 表示分位数函数;
r 表示随机函数;
例如:
dnorm(n,0,1)表示标准正态分布密度函数
pnorm(n,0,1)表示标准正态分布分布函数
qnorm(p,0,1)表示标准正态分布p分位数函数
rnorm(n,0,1)表示标准正态分布随机函数,可用于生成随机数

代码:

x1 <- seq(-4,4,0.001)
y1<-dnorm(x1,0,1)
y2 <- dt(x1,1)
y3 <- dt(x1,2)
y4 <- dt(x1,10)
y5<-0.5*exp(-abs(x1))
plot(x1,y1,type="l",col="red",lwd=3,xlim = c(-4,4), ylim = c(0,0.5))
lines(x1,y2,lwd=3,type="l",col="black")
lines(x1,y3,lwd=3,type="l",col="blue")
lines(x1,y4,lwd=3,type="l",col="yellow")
lines(x1,y5,lwd=3,type="l",col="green")
legend("topright",c("正态分布","t(1)","t(2)","t(10)","双指数"),col = c("red","black", "blue","yellow", "green"),lwd=3,lty=1)
abline(v=0) #加x=0的直线

画图如下:

3.Python原理及代码

主要使用scipy库,里边内嵌各大分布函数:

from scipy import stats
正态分布
stats.norm.cdf(α,均值,方差);分布函数值
stats.norm.pdf(α,均值,方差);概率密度函数值
stats.norm.isf(α,均值,方差) α分位数
t分布
stats.t.cdf(α,自由度);
stats.t.pdf(α,自由度);
stats.t.isf(α,自由度);
# 正态分布
stats.norm
# t分布
stats.t

代码:

import numpy as np
from scipy import stats
import math as m
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["font.sans-serif"]=["Microsoft YaHei"]
x = np.linspace(-4,4,80000)
y1 = stats.norm.pdf(x,0,1)
plt.plot(x,y1,c="red",label='标准正态密度函数')
plt.tight_layout()
y2 = stats.t.pdf(x,1)
plt.plot(x,y2,c="orange",label="t(1)")
y3 = stats.t.pdf(x,2)
plt.plot(x,y3,c="green",label="t(2)")
y4 = stats.t.pdf(x,10)
plt.plot(x,y4,c="blue",label="t(10)")
y5=0.5*np.exp(-abs(x))
plt.plot(x,y5,c="black",label="双指数分布")

plt.axvline(x=0, color='black', linestyle='-')

plt.legend(bbox_to_anchor=(1,1),
                 loc="upper right",
                 ncol=1,
                 mode="None",
                 borderaxespad=0,
                 shadow=False,
                 fancybox=True)
plt.show()

画图如下:

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Roy Teng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值