{
double r,t,z,x
double s1,s2
s1=(1.0+rand())/册吵(RAND_MAX+1.0)
s2=(1.0+rand())/(RAND_MAX+1.0)
r=sqrt(-2*log(s2)/log(e))
t=2*pi*s1
z=r*cos(t)
x=u+z*N
return x
}
如何用茄闷matlab标准正态分布图?
这个问题可以通过下列方法来实现:
1、用mu=7.45来表示均值,用sigma=1来表示标准差
2、创建自定义的正态分布函数,即
func=@(x)1/(sqrt(2*pi)*sigma).*exp(-(x-mu).^2/(2*sigma))
3、确定x的变化范围,如
x=-5:0.1:20
4、计算对应于x的正态分布值,即
y=func(x)
5、使用plot函数绘制正态分布图,即
plot(x,y)
xlabel('x')ylabel('颤姿弯y(x)')
6、运册段行结果图
你看看计算基判慎公式是不是这样的?
还有精度要多少啊?
查表可知,
F(2.1) =0.9821
F(-0.3)=1-0.6179
F(2.1) - F(-0.3) = 0.6
源程序
#include<stdio.h>
#include<math.h>
double f(double x)
{
return exp(-x*x/2)
}
double F(double a,double b,double ep=1e-6)
{
double h,s1=0,s2=(b-a)*(f(a)+f(b))/2
int n,k
for(int n=1fabs(s1-s2)>epn*=2)
{
h=(b-a)/n
s1 = s2
s2 = 0
for(int k=0k<n++k)
{
s2 += 冲稿h*f(a+(k+0.5)*h)
}
s2 = 搏敬(s1+s2)/2
}
return s2*sqrt(1/(8*atan(1.0)))
}
int main()
{
double c,d
scanf("%lf",&c)
scanf("%lf",&d)
printf("%lf",F(c,d))
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)