article thumbnail image
Published 2022. 7. 12. 21:13

 

 

 

 

 

분산에 대한 두 식이, 같음을 보이고, 컴퓨터에서 정확한 공식은 어떤 공식인가?..

#include <iostream>
#include <vector>
#include <numeric>
#include <gsl/gsl_statistics_double.h>
auto main() -> int{
	using namespace std;

	vector<double> data;
	for(size_t i = 1; i < 101; i++){
		data.emplace_back(i);
	}

	double m = (std::accumulate(data.begin(), data.end(), 0))/static_cast<double>(data.size());

	double temp = 0;
	for(size_t i = 0; i < data.size(); i++){
		temp += pow((data[i] - m), 2);
	}
	double variance_1 = temp / static_cast<double>(data.size() - 1);
	
	temp = 0;
	for(size_t i = 0; i < data.size(); i++){
		temp += pow(data[i], 2);
	}
	temp += static_cast<double>(data.size()) * pow(m, 2);
	double variance_2 = temp / static_cast<double>(data.size() - 1);
	cout << "평균 = " << m << endl;
	cout << "분산_1 = " << variance_1 << endl;
	cout << "분산_2 = " << variance_2 << endl;
	cout << "분산_정답 = " << gsl_stats_variance_m(data.data(), 1, data.size(), m);
 }
 
//평균 = 50.5
//분산_1 = 841.667
//분산_2 = 5993.69
//분산_정답 = 841.667

 

 

GSL 문서

 

GNU Scientific Library — GSL 2.7 documentation

© Copyright 1996-2021 The GSL Team.

www.gnu.org

 

'삽질' 카테고리의 다른 글

Vector Identity  (0) 2022.07.21
좌표계  (0) 2022.07.15
[C++/WinRT] Core 데스크탑 앱 "Hello World" example  (0) 2021.01.06
ATL + Direct2D  (0) 2020.11.12
ATL 스켈레톤 윈도우  (0) 2020.10.30
복사했습니다!