高校数学10分プログラミング(数学Ⅰ編 3.データの分析)8日目「データの分散、標準偏差を求める」
マガジンリスト > 数学Ⅰ編 3.データの分析 > 8日目 課題
おはようございます。
本日は、高校数学10分プログラミング(数学I編 3.データの分析)の8日目です。
本日の課題は、データの分散、標準偏差を求めるプログラムを作成することです。
偏差
データの各値$${x}$$と平均値$${\bar{x}}$$との差$${x-\bar{x}}$$
分散
偏差の2乗の平均値
$$
s^2 = \frac{1}{n} \{ (x_1-\bar{x})^2+(x_2-\bar{x})^2+ \cdots +(x_n-\bar{x})^2 \}
$$
なお、分散は
$$
s^2 = \overline{x^2} - \bar{x}^2
$$
と書くことができます。ここで、$${\overline{x^2}}$$は$${x^2}$$のデータの平均値を表します。
$$
\overline{x^2} = \frac{1}{n} (x_1^2+x_2^2+ \cdots + x_n^2)
$$
標準偏差
分散の正の平方根
$$
s = \sqrt{\frac{1}{n} \{ (x_1-\bar{x})^2+(x_2-\bar{x})^2+ \cdots +(x_n-\bar{x})^2 \}}
$$
課題
以下の「小テストの点数」のデータの平均値、分散、標準偏差を求め、その結果をコンソールに出力するプログラムを作成してください。
$$
3 \ 4 \ 9 \ 7 \ 6 \ 10 \ 5 \ 5 \ 7 \ 9 \ 6 \ 8 \ 1 \ 5 \ 7 \ 10 \ 8 \ 6 \ 3 \ 7
$$
ヒント
データの平均値の算出については、課題『高校数学10分プログラミング(数学Ⅰ編 3.データの分析)1日目「データの平均値を求める」』で作成した平均値を求める関数 calcmeanvalue を利用します。
// 平均値を計算する関数
float calcmeanvalue(
int data_num, // データ数
float[] data // データの配列
){
float sum = 0.0;
for(int i=0; i<data_num; i++){
sum += data[i];
}
return sum / data_num;
}
そして、平均値と同様に、分散と標準偏差の算出についても、それぞれ関数 calcvariance と calcstandarddeviation を準備して利用するようにします。
これらを踏まえて、データの平均値、分散、標準偏差を求めるプログラムはソースコード1のようになります。
// データの平均値、分散、標準偏差を計算する
void setup(){
// データ
int data_num = 20; // データ数
float[] data = {3,4,9,7,6,10,5,5,7,9,6,8,1,5,7,10,8,6,3,7}; // データ
// 平均値
float mean = calcmeanvalue(data_num, data);
println("平均値:", mean);
// 分散
float variance = calcvariance(data_num, data);
println("分散:", variance);
// 標準偏差
float sd = calcstandarddeviation(data_num, data);
println("標準偏差:", sd);
}
// 平均値を計算する関数
float calcmeanvalue(
int data_num, // データ数
float[] data // データの配列
){
float sum = 0.0;
for(int i=0; i<data_num; i++){
sum += data[i];
}
return sum / data_num;
}
// 分散を計算する関数
float calcvariance(
int data_num, // データ数
float[] data // データの配列
){
}
// 標準偏差を計算する関数
float calcstandarddeviation(
int data_num, // データ数
float[] data // データの配列
){
}
ソースコード1 データの平均値、分散、標準偏差を求めるプログラム(未完成)
ソースコード1の平均値を計算する関数 calcmeanvalue を参考にして、分散を計算する関数 calcvariance
// 平均値を計算する関数
float calcmeanvalue(
int data_num, // データ数
float[] data // データの配列
){
}
と標準偏差を計算する関数 calcstandarddeviation
// 標準偏差を計算する関数
float calcstandarddeviation(
int data_num, // データ数
float[] data // データの配列
){
}
の中身を追記して、プログラムを完成させてください。
それでは、よろしくお願いします。
MK's papa
この記事が気に入ったらサポートをしてみませんか?