您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > parzen-估计与matlab仿真(含程序)
1Matlab编程作业1题目:设带估计的是个均值为0,方差为1的正态分布函数,若随机的抽取X样本中的1个,16个,256个作为学习样本,试用Parzen窗法估计pN(X)编程实现Parzen窗法,考虑正态分布随机数的生成方法,绘制类是课本中图3.6(第三版图3.7左边的一个)的图形。parzen窗设计一、parzen窗设计原理(一)、基本原理Parzen窗估计法是一种具有坚实理论基础和优秀性能的非参数函数估计方法,它能够较好地描述多维数据的分布状态。其基本思想就是利用一定范围内各点密度的平均值对总体密度函数进行估计。一般而言,设x为d维空间中任意一点,N是所选择的样本总数,为了对x处的分布概率密度^Nxp进行估计,以x为中心作一个边长为Nh的超立方体NV,则其体积为dNNVh,为计算落入NV中的样本数Nk,构造一个窗函数使得11,,1,2,...,20,jjduu其他(1)并使u满足条件0u,且1udu,则落入体积V中的样本数为1NiNiNxxkh,则此处概率密度的估计值是:^111NiNiNNxxNxpVh(2)式(2)是Parzen窗估计法的基本公式,u称为窗函数,或核函数、势函数。窗函数的作用是内插,每一样本对估计所起的作用取决于它到x的距离。在Parzen窗估计法的基本公式中,窗宽Nh是一个非常重要的参数。当样本数N有限时,Nh对估计的效果有着较大的影响。(二)、窗函数的选取2一般可以选择的窗函数有方窗、正态窗,指数窗函数等。基于实验要求,本文选择正态窗作为核函数:因此,选择正态核函数的情形下,正态窗函数为211exp22uu(3)概率密度的估计式为2^1111exp22NiNiNNxxNxphh二、程序说明(一)首先,生成Parzen窗估计函数文件functionp=Parzen(xi,x,h1,f)%xi是样本矩阵,x为概率密度函数自变量的取值%h1为样本数为1的宽度,f为窗口函数句柄%函数返回x对应的概率密度函数值ifisempty(f)%若没有指定的类型,使用正态窗函数f=@(u)(1/sqrt(2*pi))*exp(-0.5*u.^2);%返回矩阵xi的行数N=size(xi,2);hn=h1/sqrt(N);[XXi]=meshgrid(x,xi);p=sum(f((X-Xi)/hn)/hn)/N;end;(二),其次,写出主程序,如下:(1)当N=1,h1=0.25,h1=1,h1=4的程序。%正态分布随机数生成均值为0,标准差为1,1*1的矩阵xi=normrnd(0,1,[1,1]);x=linspace(-2,2,100);p=Parzen(xi,x,0.25,[]);subplot(2,2,1);plot(x,p);3title('N=1,h1=0.25')p=Parzen(xi,x,1,[]);subplot(2,2,2);plot(x,p);title('N=1,h1=1')p=Parzen(xi,x,4,[]);subplot(2,2,3);plot(x,p);title('N=1,h1=4')p=normpdf(x,0,1);subplot(2,2,4);plot(x,p);title('原始正太分布')仿真结果图(a)所示.(2)当N=16,h1=0.25,h1=1,h1=4的程序。%正态分布随机数生成均值为0,标准差为1,1*16的矩阵xi=normrnd(0,1,[1,16]);x=linspace(-2,2,100);p=Parzen(xi,x,0.25,[]);subplot(2,2,1);plot(x,p);title('N=16,h1=0.25')p=Parzen(xi,x,1,[]);subplot(2,2,2);plot(x,p);title('N=16,h1=1')p=Parzen(xi,x,4,[]);subplot(2,2,3);plot(x,p);title('N=16,h1=4')p=normpdf(x,0,1);subplot(2,2,4);plot(x,p);title('原始正太分布')4仿真结果图(b)所示.。(3)当N=256,h1=0.25,h1=1,h1=4的程序。%正态分布随机数生成均值为0,标准差为1,1*16的矩阵xi=normrnd(0,1,[1,256]);x=linspace(-2,2,100);p=Parzen(xi,x,0.25,[]);subplot(2,2,1);plot(x,p);title('N=256,h1=0.25')p=Parzen(xi,x,1,[]);subplot(2,2,2);plot(x,p);title('N=256,h1=1')p=Parzen(xi,x,4,[]);subplot(2,2,3);plot(x,p);title('N=256,h1=4')p=normpdf(x,0,1);subplot(2,2,4);plot(x,p);title('原始正太分布')仿真结果如图(c)所示。5(a)N=1,h1=0.25,1,4(b)N=16,h1=0.25,1,46(c)N=256,h1=0.25,1,4(三)实验结论从图形中,我们可以很明显的发现,估计结果依赖于N和h1,并且,随着N的增加,估计的结果越来越接近需要的效果,这说明,样本越多,估计的结果就越精确。
本文标题:parzen-估计与matlab仿真(含程序)
链接地址:https://www.777doc.com/doc-1569679 .html