X~2分布、t分布和f分布的性质及近似计算.doc_第1页
X~2分布、t分布和f分布的性质及近似计算.doc_第2页
X~2分布、t分布和f分布的性质及近似计算.doc_第3页
X~2分布、t分布和f分布的性质及近似计算.doc_第4页
X~2分布、t分布和f分布的性质及近似计算.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

以下为三个分布的动画演示程序,直接运行:function dandn(action) % X2分布、t分布和f分布的性质及近似计算% 制作人: 幸玮 石岩 顾秋容% All Rights Reserved% 2008.12%无输入参数时进行初始程序,否则调界面参数if nargin1, action=initialize;else %看是哪种分布 data=get(gco,UserData); pdflabel=data(4); %图形显示参数,调试时用 switch pdflabel case 1 xstart=0; %x轴起始点 width=120; %x轴范围 xdis=30; %x轴刻度间距 lenth=0.24; %y轴范围 ydis=0.03; %y轴刻度间距 speed=0.6; %动画演进速率 case 2 width=6; xdis=3; lenth=0.42; ydis=0.05; speed=0.5; case 3 width=2; xdis=0.5; lenth=4; ydis=0.4; speed=0.8; endend %初始化模块if strcmp(action,initialize) %数据初始化 %分布函数选择 pdflabel=0; d=inputdlg(输入分布函数类型:,选择分布函数,1,x2); if strcmp(d,x2) pdflabel=1; elseif strcmp(d,t) pdflabel=2; elseif strcmp(d,f) pdflabel=3; end %不符合的输入报错 if pdflabel=0 errordlg(分布函数只能选择x2,t与f) return end %整体用户界面建立,图形显示窗口嵌入 figNumber=figure( . Name,Changing of the X2 destribution function, . NumberTitle,off, . Visible,off); axes( . Units,normalized, . Visible,off, . Position,0.06 0.065 0.70 0.9); %显示初始现实画面 switch pdflabel case 1 %初始显示参数 xstart=0; %x轴起始点 width=120; %x轴范围 xdis=30; %x轴刻度间距 lenth=0.24; %y轴范围 ydis=0.03; %y轴刻度间距 %画背景图 plot(xstart xstart+width,lenth lenth,b); hold on plot(xstart xstart+width,lenth lenth,r); plot(xstart xstart+width,lenth lenth,black); legend(X2分布,正态分布); axis(xstart xstart+width 0 lenth); grid on set(gca,XTick,xstart:xdis:xstart+width); set(gca,YTick,0:ydis:lenth); hold off %分布函数动画初始参数 m=0; n=1; case 2 width=6; xdis=3; lenth=0.42; ydis=0.05; plot(-width -width width,0 lenth lenth,b); hold on plot(-width -width width,0 lenth lenth,r-); plot(-width -width width,0 lenth lenth,black); legend(T分布,正态分布); grid on axis(-width width 0 lenth); set(gca,XTick,-width:xdis:width); set(gca,YTick,0:ydis:lenth); hold off m=0; n=2; otherwise width=2; xdis=0.5; lenth=4; ydis=0.4; plot(width,0,b); hold on plot(width,0,r); legend(f分布,正态分布); axis(0 width 0 lenth); grid on set(gca,XTick,0:xdis:width); set(gca,YTick,0:ydis:lenth); hold off %f分布输入n n=inputdlg(输入n的值:,获取n,1,5); n=str2double(n1); if n=4 errordlg(要使正态逼近式成立n必须大于4!) return end m=1; end %按钮显示位置 top=0.95; left=0.80; btnWid=0.15; btnHt=0.08; spacing=0.02; %“Start”按钮 btnNumber=1; labelStr=Start; callbackStr=dandn(start); %显示按钮 btnPos=left top-btnHt btnWid btnHt; uicontrol( . Style,pushbutton, . Units,normalized, . Position,btnPos, . String,labelStr, . Callback,callbackStr, . UserData,btnNumber m n pdflabel); %调用时的句柄参数传递 %关闭按钮 yPos=top-(btnHt+spacing); uicontrol( . Style,push, . Units,normalized, . Position,left yPos-btnHt btnWid btnHt, . String,Close, . Callback,close(gcf); set(figNumber,Visible,on); %显示初始图像 %“Start”按钮执行程序elseif strcmp(action,start) %参数初始化 data=get(gco,UserData); method=data(1); m=data(2); n=data(3); %“Stop”按钮设置,点击开始后替换“Start”按钮 btnNumber=2; labelStr=Stop; callbackStr=dandn(stop); top=0.95; left=0.80; btnWid=0.15; btnHt=0.08; btnPos=left top-btnHt btnWid btnHt; stophld=uicontrol( . Style,pushbutton, . Units,normalized, . Position,btnPos, . String,labelStr, . Callback,callbackStr, . UserData,btnNumber m n pdflabel); %画图程序 switch pdflabel case 1 while(method=1) %当未点击“Stop”则继续执行 %画x2分布密度函数 a=n/2; b=2; x=xstart:0.1:xstart+width;y=gampdf(x,a,b); plot(x,y,b,EraseMode,normal); hold on %画近似正太分布密度函数 y1=normpdf(x,n,(2*n)0.5); plot(x,y1,r-); %图形参数调节 axis(xstart xstart+width 0 lenth); set(gca,XTick,xstart:xdis:xstart+width); set(gca,YTick,0:ydis:lenth); grid on; legend(X2分布,正态分布); %显示当前n temp=num2str(floor(n); str=strcat(n=,temp); text(92,0.2,str); %显示当前最大间距 dis=num2str(max(abs(y-y1); str=strcat(dis=,dis); text(92,0.187,str); %动画指令 drawnow; hold off; n=n+speed; %看stop是否按下 data=get(gco,UserData); method=data(1); %更新传递参数 set(stophld,Userdata,btnNumber m n pdflabel); end case 2 while(method=1) %画t分布密度函数 x=-width:0.1:width;y=tpdf(x,n); plot(x,y,EraseMode,normal); hold on %画近似正太分布密度函数 y1=normpdf(x,0,(n/(n-2)0.5); plot(x,y1,r-); %图形参数调节 axis(-width width 0 lenth); set(gca,XTick,-width:xdis:width); set(gca,YTick,0:ydis:lenth); grid on; legend(T分布,正态分布); %显示当前n temp=num2str(floor(n); z=strcat(n=,temp); text(3.3,0.335,z); %显示当前最大间距 dis=num2str(max(abs(y-y1); str=strcat(dis=,dis); text(3.3,0.315,str); %动画指令 drawnow; hold off; n=n+speed; %看stop是否按下 data=get(gco,UserData); method=data(1); %更新传递参数 set(stophld,Userdata,btnNumber m n pdflabel); end otherwise while(method=1) %画f分布密度函数 x=0:0.01:width;y=fpdf(x,m,n); plot(x,y,EraseMode,normal); hold on %画近似正太分布密度函数 y1=normpdf(x,n/(n-2),(2*n2*(m+n-2)/m/(n-2)2/(n-4)0.5); plot(x,y1,r); %图形参数调节 axis(0 width 0 lenth); set(gca,XTick,0:xdis:width); set(gca,YTick,0:ydis:lenth); grid on; legend(f分布,正态分布); %显示当前m temp1=num2str(floor(m); str=strcat(m=,temp1); text(1.55,3.32,str); %显示当前n temp2=num2str(floor(n); str=strcat(n=,temp2); text(1.78,3.32,str); %显示当前最大间距 dis=num2str(max(abs(y-y1); str=strcat(dis=,dis); text(1.55,3,str); %动画指令 drawnow; hold off; m=m+speed; %看stop是否按下 data=get(gco,UserData); method=data(1); %更新传递参数 set(stophld,Userdata,btnNumber m n pdflabel); end end %“Close”按钮执行程序elseif strcmp(action,stop) data=get(gco,UserData); %读原有传递数据 top=0.95; left=0.80; btnWid=0.15; btnHt=0.08; %用“continue”按钮替代“Stop btnNumber=1; labelStr=Continue; callbackStr=dandn(continue); data(1)=btnNumber; %更新按钮标识 btnPos=left top-btnHt btnWid btnHt; uicontrol( . Style,pushbutton, . Units,normalized, . Position,btnPos, . String,labelStr, . Callback,callbackStr, . UserData,data); %“continue”按钮执行程序elseif strcmp(action,continue) %读取传递数据 data=get(gco,UserData); method=data(1); m=data(2); n=data(3); %用“Stop”按钮替代“continue” btnNumber=2; labelStr=Stop; callbackStr=dandn(stop); top=0.95; left=0.80; btnWid=0.15; btnHt=0.08; btnPos=left top-btnHt btnWid btnHt; conthld=uicontrol( . Style,pushbutton, . Units,normalized, . Position,btnPos, . String,labelStr, . Callback,callbackStr, . UserData,btnNumber m n pdflabel); %动画 switch pdflabel case 1 while(method=1) %画系x2分布密度函数 a=n/2; b=2; %画x2分布密度函数 x=xstart:0.1:xstart+width;y=gampdf(x,a,b); plot(x,y,b,EraseMode,normal); hold on %画近似正太分布密度函数 y1=normpdf(x,n,(2*n)0.5); plot(x,y1,r-); %图形参数调节 axis(xstart xstart+width 0 lenth); set(gca,XTick,xstart:xdis:xstart+width); set(gca,YTick,0:ydis:lenth); grid on; legend(X2分布,正态分布); %显示当前n temp=num2str(floor(n); str=strcat(n=,temp); text(92,0.2,str); %显示当前最大间距 dis=num2str(max(abs(y-y1); str=strcat(dis=,dis); text(92,0.187,str); %动画指令 drawnow; hold off n=n+speed; %看stop是否按下 data=get(gco,UserData); method=data(1); %更新传递参数 set(conthld,UserData,btnNumber m n pdflabel); end case 2 while(method=1) x=-width:0.1:width;y=tpdf(x,n); plot(x,y,EraseMode,normal); hold on %画近似正太分布密度函数 y1=normpdf(x,0,(n/(n-2)0.5); plot(x,y1,r-); %图形参数调节 axis(-width width 0 lenth); set(gca,XTick,-width:xdis:width); set(gca,YTick,0:ydis:lenth); grid on; legend(T分布,正态分布); %显示当前n temp=num2str(floor(n); z=strcat(n=,temp); text(3.3,0.335,z); %显示当前最大间距 dis=num2str(max(abs(y-y1); str=strcat(dis=,dis); text(3.3,0.315,str); %动画指令 drawnow; hold off n=n+speed; %看stop是否按下 data=g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论