请问如何调整这个精度啊,求精解,试了很多办法不行啊,因为求的就是这个接近于0的数。
追答试了挺多次的:
10^302-10^301*normcdf(9.4683,0,1)
ans =
9.000000000000001e+301
不知道这是否能够说明normcdf(9.4683,0,1)=0.9999999(9的个数为10^301+15)。如果是,1-normcdf(9.4683,0,1)的值为0.000……1(小数点后0的个数为10^301+14)
知道呀,但是求的就是 那个十分接近的数,求教精解。
追答要精确值就只能用符号计算了。
matlab R2008b以前的版本可以使用以下任一命令调用maple内核计算
maple('mu:=0:sigma:=1:f:=exp( -(x-mu)^2/2/sigma^2 ) / sqrt(2*Pi*sigma^2):evalf(1-int(f,x=-infinity..9.4683),100)')%100位有效位数
maple('with(stats):f:=statevalf[cdf,normald[0,1]]:evalf(1-f(9.4683),100);')%100位有效位数
也可以用符号计算
f=sym('1/2-1/2*erf(1/2*2^(1/2)*9.4683)');
vpa(f,100)%100位有效位数
ans =
.14221746383027611959520771603353297278262496587630880991009368213600466113411554e-20
可以看到小数点后的前20位都是0
matlab算标准正态分布函数,1-normcdf(9.4683,0,1)的值为0,不知是否是...
应该不是精度不够,14位的精度概率还是显示1,x=9.4683时的概率非常接近1