int main ( void )
{
float *x, *p, E, D
int i, n
printf ( "n=" )
scanf ( "团渗搏%d", &n )
p = x = (float*) malloc ( sizeof(float) * n )
E = D = 0.0
for ( i = ni >0i-- )
{
scanf ( "%f", p )
E += *p++
}
E /= n
p = x
for ( i = ni >0i-- )
{
float tmp
tmp = *p++ - E
D += tmp * tmp
}
D /= n
free ( x )
printf ( "喊袜%f", D )
return 0
}
#include <iostream>using namespace std
int main()
{
double sum=0,s=0,e
int n
cout <<"输入数组元素个数" <<endl
cin>>n
int *a=new int[n]
for(int i=0i<ni++){
cout<<"输入第"<<i<<"个数纳饥"<<endl
cin>>a[i]
}
for(i=0i<ni++) //求和
sum+=a[i]
e=sum/n //求平均值
cout<<"["
for(i=0i<ni++){ //求方差
cout<<"("<<a[i]<<历茄配"-"<<e<<")*("<<a[i]<<"-"<<e<<")"
if(i!=n-1)
cout<<"+"肢指
s+=(a[i]-e)*(a[i]-e)
}
cout<<"]/"<<n
s=s/n
cout <<"="<<s<<"(方差)"<<endl
return 0
}
matlab的方差求算在matlab程序上输入下列例子:
Matlab 函数:var
>>X=[1,2,3,4]
>>var(X)=1.6667
>>sum((X(1,:)-mean(X)).^2)/length(X)=1.2500
>>sum((X(1,:)-mean(X)).^2)/(length(X)-1)=1.6667
var没有求矩阵的方差功能,可使用std先求均方差,再平方得到方差。
std,均方差,std(X,0,1)求列向量方差,std(X,0,2)求行向量方差。
>>X=[1 2
3 4]
>>std(X,0,1)=1.4142 1.4142
>>std(X,0,2)=0.7071
0.7071
若要启碰求整个矩阵所有元素的均方差,则要使用std2函数:
>>std2(X)=1.2910
要注意的是var函数所采用公式中,分母不是 ,而是 。这是因为var函数实际上求的并不是方差,而是误差理论中“有限次测量数据的标准偏差的估计值”。
扩展资料:matlab求方凳喊差时的注意事项:
1、装出错时,可换注册码继续安装,到同一目录;
2、谨记安装路径不要有中文名称;
3、成功安装完毕之后,如果遇到matlab启动后,窗口枣旁野在打开一到两秒后就自动关闭了, 可按以下方法试试:【假设你安装的目录为c:\MATLAB\】(不过不建议安装到C盘,那样会影响系统速度)
参考资料:百度百科 matlab
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)