![]() |
求助:这个程序的自变量为什么不能取小数,应该怎么改啊?
编的一个很普通的程序出问题了,请求高手帮忙解决?
h(x,n)中的x运行的时候,发现只能取整数,(但应该小数,整数都可以才对啊)请问问题出在哪,请高手帮忙解决一下,谢谢! 程序如下: %%%%%%%卡方(n)分布函数h(x,n)的计算 ** % H----返回P(X<=x)分布函数值 function H=h(x,n); clc '卡方分布分布函数计算值' h(x,1)=2*b(sqrt(x))-1; h(x,2)=1-exp(((-1)*x)/2); if n>=3 for i=3:n h(x,i)=h(x,i-2)-2*f(x,i); end H=h(x,i); end if n==1 H=h(x,1); end if n==2 H=h(x,2); end %%%%%****此处往下为辅助程序*******%%%%%%%%%% %%%%%%%标准正态分布的分布函数的计算 % x----输入x % B----返回P(X<=x)分布函数值 function B=b(x); clc '标准正态分布函数 F=' n=28; f=(1/sqrt(2*pi))*(exp((-1)*(x^2)/2));%标准正态分布密度函数 g=0; if x>=0&&x<=3 %此处往下为标准正态分布的分布函数B的计算 for i=0:n-1 k=n-i; g=((-1)^k)*k*(x^2)/(2*k+1+g); end B=0.5+f*x/(1+g); else if x>3 for i=0:n-1 k=n-i; g=k/(x+g); end B=1-f/(x+g); else B=1-b(-x); end end %%%%%%%%%%%%%%%%%%%函数f(x,i)的计算 function B=f(x,i); clc f(x,1)=(1/(sqrt(2*pi*x)))*exp(((-1)*x)/2); f(x,2)=(1/2)*exp(((-1)*x)/2); if i>=3 for j=3:i f(x,j)=(x/(j-2))*f(x,j-2); end B= f(x,j); end if i==1 B=f(x,1); end if i==2 B=f(x,2); end |
所有时间均为北京时间。现在的时间是 13:31。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.