统计计算源程序代码.docx
- 文档编号:30776530
- 上传时间:2023-08-23
- 格式:DOCX
- 页数:20
- 大小:18.68KB
统计计算源程序代码.docx
《统计计算源程序代码.docx》由会员分享,可在线阅读,更多相关《统计计算源程序代码.docx(20页珍藏版)》请在冰豆网上搜索。
统计计算源程序代码
//////////////////////////////////////////////////////////////////////////////////////////////
//样本均值和样本方差的计算公式-------P10-------3.2--------
#include
#include
voidmain()
{
intn;
cout<<"请输入样本值的个数n:
"< cin>>n; double*a=newdouble[n+1];//记录样本值 double*x=newdouble[n+1];//记录均值 double*s=newdouble[n+1];//记录方差 cout<<"请输入样本值: "< for(inti=1;i { cin>>a[i]; } //初始化 x[1]=a[1]; s[1]=0; //开始计算其余的均值和方差 for(intk=1;k { x[k+1]=x[k]+(a[k+1]-x[k])/(k+1); s[k+1]=(k-1)*s[k]/k+pow((a[k+1]-x[k]),2)/(k+1); } //输出结果 cout<<"均值分别为: "< for(i=1;i { cout< } cout< "< for(i=1;i { cout< } } ////////////////////////////////////////////////////////////////////////////////////////////////////// //样本离差阵的计算递推公式--------P14------3.6----- #include #include constintn=10,p=4;//定义样本值的个数为n=10,矩阵为4阶矩阵 voidmain() { doublem[n+1][p];//记录样本值 doublex[n+1][p];//记录均值向量 doubleA[n+1][p][p];//记录样本离差阵 inti,j; cout<<"请输入"< "< for(i=1;i { for(j=0;j { cin>>m[i][j]; } } //初始化 for(j=0;j { x[1][j]=m[1][j]; } //将样本离差阵设为零矩阵 for(i=1;i { for(j=0;j { A[1][i][j]=0; } } //开始计算样本均值向量和样本离差阵 for(intk=1;k { doubleb[p],c[p],d[p][p];//用来记录中间变量 for(i=0;i { //计算样本均值向量X(k+1) x[k+1][i]=x[k][i]+(m[k+1][i]-x[k][i])/(k+1); //为计算样本离差阵记录中间变量 b[i]=m[k+1][i]-x[k][i]; c[i]=b[i]; } //计算样本离差阵 for(i=0;i { for(j=0;j { d[i][j]=b[i]*c[j]; A[k+1][i][j]=A[k][i][j]+k*d[i][j]/(k+1); } } } } //////////////////////////////////////////////////////////// //求误差函数----------P57--4.1--- #include #include doubleCalculate(inti,doublex)//定义一个函数用来计算后面的级数展开式 { doublepx=x,pa=1,pb=1; for(intj=1;j { px*=x;//计算X的幂 pa*=2;//计算分子 pb*=(2*j-1);//计算分母的阶乘 } return(pa/pb*px);//返回级数展开式的结果 } voidmain() { inti=1; boolIsGoOn=true;//用来判断是否继续求级数的展开式 doublex;//变量 doubleprecision;//用来控制级数展开式的精度 doublesumall=0;//用来接收级数展开式的结果 doubleerf;//最后函数erf(x)的值 cout<<"请输入初始值和所要求的精度: "< cin>>x>>precision; while(IsGoOn)//开始求级数展开式的值 { sumall+=Calculate(i,x); //判断精度是否达到要求 if(Calculate(i+1,x)-Calculate(i,x) { IsGoOn=false; } i++; } erf=2*exp(-x*x)*sumall/sqrt(3.1415926);//最后求函数的值 cout< } /////////////////////////////////////////////////////////////////// //误差函数的近似公式-----P59---4.9---- #include #include voidmain() { //已知系数数组 doublea[]={0.0705230784,0.0422820123,0.0092705272, 0.0001520143,0.0002765672,0.0000430638}; doublex; //result用来记录中间变量,erf用来记录最后函数的值 doubleresult=0,erf; cin>>x;//输入初始值 for(inti=0;i<6;i++) { result+=a[i]*pow(x,i+1);//调用数学函数求n次方 } result+=1; erf=1-pow(result,-16); cout< } ////////////////////////////////////////////////////////////////////////////// //------------Toda近似公式-----P60---4.13------ #include #include voidmain() { doublex,y,u,result=0; doublea[11]={...};//此处没有把全部的值给写出来 cin>>x; y=-log(4*x*(1-x)); for(inti=0;i<11;i++) { result+=a[i]*pow(y,i);//调用数学函数 } result*=y; u=sqrt(result); cout< } //////////////////////////////////////////////////////////////////////////////////////////////////// //Beta分布的分布函数I(a,b)的递推公式---------P61----5.1---- #include #include doubleI(doublea,doubleb,doublex);//声明两个叠代函数 doubleU(doublea,doubleb,doublex); //这个叠代函数只能进行初始值为(0.5,0.5),(0.5,1),(1,0.5),(1,1)的计算,下同 doubleI(doublea,doubleb,doublex)//函数的定义部分 { doublepa=a,pb=b,px=x; if(pa==0.5&&pb==0.5)//根据公式写出各种情况的返回值 { return(1-2/(3.1415926*tan(sqrt((1-px)/px)))); } elseif(pa==0.5&&pb==1) { returnsqrt(px); } elseif(pa==1&&pb==0.5) { return(1-sqrt(1-px)); } elseif(pa==1&&pb==1) { returnpx; } else { if(pa>1) returnI(pa-1,pb,px)-U(pa-1,pb,px)/(pa-1);//不断分解,实现递归调用 if(pb>1) returnI(pa,pb-1,px)+U(pa,pb-1,px)/(pb-1); } } doubleU(doublea,doubleb,doublex) { doublepa=a,pb=b,px=x; if(pa==0.5&&pb==0.5) { return(sqrt(px*(1-px))/3.1415926); } elseif(pa==0.5&&pb==1) { returnsqrt(px)*(1-px)/2; } elseif(pa==1&&pb==0.5) { returnpx*sqrt(1-px)/2; } elseif(pa==1&&pb==1) { returnpx*(1-px); } else { if(pa>1) return(pa-1+pb)*px*U(pa-1,pb,px)/(pa-1); if(pb>1) return(pa+pb-1)*(1-px)*U(pa,pb-1,px)/(pb-1); } } voidmain() { doublea,b,x; cout<<"请输入所求I(a,b)中的a,b的值(请注意: a,b的值只能是1/2的整数倍! ):
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 统计 计算 源程序 代码