X2分布t分布和f分布的性质及近似计算Word格式.docx
《X2分布t分布和f分布的性质及近似计算Word格式.docx》由会员分享,可在线阅读,更多相关《X2分布t分布和f分布的性质及近似计算Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
%图形显示参数,调试时用
switchpdflabel
case1
xstart=0;
%x轴起始点
width=120;
%x轴范围
xdis=30;
%x轴刻度间距
lenth=0.24;
%y轴范围
ydis=0.03;
%y轴刻度间距
speed=0.6;
%动画演进速率
case2
width=6;
xdis=3;
lenth=0.42;
ydis=0.05;
speed=0.5;
case3
width=2;
xdis=0.5;
lenth=4;
ydis=0.4;
speed=0.8;
end
end
%初始化模块
ifstrcmp(action,'
)
%数据初始化
%分布函数选择
pdflabel=0;
d=inputdlg({'
输入分布函数类型:
'
},'
选择分布函数'
1,{'
x2'
});
ifstrcmp(d,'
pdflabel=1;
elseifstrcmp(d,'
t'
pdflabel=2;
f'
pdflabel=3;
%不符合的输入报错
ifpdflabel==0
errordlg('
分布函数只能选择x2,t与f'
return
end
%整体用户界面建立,图形显示窗口嵌入
figNumber=figure(...
'
Name'
'
ChangingoftheX~2destributionfunction'
...
NumberTitle'
off'
Visible'
axes(...
Units'
normalized'
Position'
[0.060.0650.700.9]);
%显示初始现实画面
%初始显示参数
%画背景图
plot([xstartxstart+width],[lenthlenth],'
b'
holdon
r'
black'
legend('
X~2分布'
正态分布'
axis([xstartxstart+width0lenth]);
gridon
set(gca,'
XTick'
xstart:
xdis:
xstart+width);
YTick'
0:
ydis:
lenth);
holdoff
%分布函数动画初始参数
m=0;
n=1;
plot([-width-widthwidth],[0lenthlenth],'
r--'
T分布'
axis([-widthwidth0lenth]);
-width:
width);
n=2;
otherwise
plot(width,0,'
f分布'
axis([0width0lenth]);
%f分布输入n
n=inputdlg({'
输入n的值:
获取n'
5'
n=str2double(n{1});
ifn<
=4
要使正态逼近式成立n必须大于4!
m=1;
%按钮显示位置
top=0.95;
left=0.80;
btnWid=0.15;
btnHt=0.08;
spacing=0.02;
%“Start”按钮
btnNumber=1;
labelStr='
Start'
callbackStr='
dandn('
start'
)'
%显示按钮
btnPos=[lefttop-btnHtbtnWidbtnHt];
uicontrol(...
Style'
pushbutton'
btnPos,...
String'
labelStr,...
Callback'
callbackStr,...
[btnNumbermnpdflabel]);
%调用时的句柄参数传递
%关闭按钮
yPos=top-(btnHt+spacing);
push'
[leftyPos-btnHtbtnWidbtnHt],...
Close'
close(gcf)'
set(figNumber,'
on'
%显示初始图像
%“Start”按钮执行程序
elseifstrcmp(action,'
%参数初始化
method=data
(1);
m=data
(2);
n=data(3);
%“Stop”按钮设置,点击开始后替换“Start”按钮
btnNumber=2;
Stop'
stop'
stophld=uicontrol(...
%画图程序
while(method==1)%当未点击“Stop”则继续执行
%画x2分布密度函数
a=n/2;
b=2;
x=xstart:
0.1:
xstart+width;
y=gampdf(x,a,b);
plot(x,y,'
EraseMode'
normal'
%画近似正太分布密度函数
y1=normpdf(x,n,(2*n)^0.5);
plot(x,y1,'
r-'
%图形参数调节
gridon;
%显示当前n
temp=num2str(floor(n));
str=strcat('
n='
temp);
text(92,0.2,str);
%显示当前最大间距
dis=num2str(max(abs(y-y1)));
dis='
dis);
text(92,0.187,str);
%动画指令
drawnow;
holdoff;
n=n+speed;
%看stop是否按下
%更新传递参数
set(stophld,'
Userdata'
while(method==1)
%画t分布密度函数
x=-width:
width;
y=tpdf(x,n);
y1=normpdf(x,0,(n/(n-2))^0.5);
z=strcat('
text(3.3,0.335,z);
text(3.3,0.315,str);
%画f分布密度函数
x=0:
0.01:
y=fpdf(x,m,n);
y1=normpdf(x,n/(n-2),(2*n^2*(m+n-2)/m/(n-2)^2/(n-4))^0.5);
%显示当前m
temp1=num2str(floor(m));
m='
temp1);
text(1.55,3.32,str);
temp2=num2str(floor(n));
temp2);
text(1.78,3.32,str);
text(1.55,3,str);
m=m+speed;
%“Close”按钮执行程序
%读原有传递数据
%用“continue”按钮替代“Stop
Continue'
continue'
data
(1)=btnNumber;
%更新按钮标识
data);
%“continue”按钮执行程序
%读取传递数据
%用“Stop”按钮替代“continue”
conthld=uicontrol(...
%动画
%画系x2分布密度函数
set(conthld,'