見出し画像

高校数学10分プログラミング(数学B編 4.確率分布と統計的な推測)9日目「連続型確率変数を考える」解説

マガジンリスト > 数学B編 4.確率分布と統計的な推測 > 9日目 解説

本日の課題、おつかれさまでした。

課題の連続型確率変数による確率、期待値、分散及び標準偏差を計算するプログラムを作成することができたでしょうか。


解答例

今回の課題の連続型確率変数による確率、期待値、分散及び標準偏差を計算するプログラムの例を示します。

// 定数の確率密度関数による確率の計算
void setup(){

  // P(0≦X≦1)の値を計算する
  float a = 0.0;
  float b = 1.0;
  float prob = probability_of_constant_PDF(a,b);
  println("確率P(0≦X≦1):", prob);

  // 期待値の計算
  float m = expectation_value_of_constant_PDF();
  println("期待値:",m);
  
  // 分散の計算
  float v = variance_of_constant_PDF(m);
  println("分散:", v);
  
  // 標準偏差の計算
  float sd = sqrt(v);
  println("標準偏差:",sd);

}

// 定数の確率密度関数
float constant_PDF(
  float x
){
  float value;
  if(x >= 0.0 && x <= 2.0){
    value = 1.0/2.0;
  } else {
    value = 0.0;
  }
  return value;
}

// 定数の確率密度関数による確率P(a≦X≦b)を計算する関数(台形公式を利用)
float probability_of_constant_PDF(
  float a, // 積分領域の下限
  float b // 積分領域の上限
){
  float dx = 0.01;
  int division_num = (int)((b-a)/dx);
  float x, y1, y2;
  float prob = 0.0;
  for(int i=0; i<division_num; i++){
    x = a + i*dx;
    y1 = constant_PDF(x);
    y2 = constant_PDF(x+dx);
    prob = prob + (y1+y2)*dx/2.0;
  }
  return prob;
}

// 定数の確率密度関数による期待値を計算する関数(台形公式を利用)
float expectation_value_of_constant_PDF(){
  float dx = 0.01;
  float a = 0.0;
  float b = 2.0;
  int division_num = (int)((b-a)/dx);
  float x, y1, y2;
  float m = 0.0;
  for(int i=0; i<division_num; i++){
    x = a + i*dx;
    y1 = constant_PDF(x);
    y2 = constant_PDF(x+dx);
    m = m + (x+dx/2.0)*(y1+y2)*dx/2.0;
  }
  return m;
}

// 定数の確率密度関数による分散を計算する関数(台形公式を利用)
float variance_of_constant_PDF(
  float m // 期待値
){
  float dx = 0.01;
  float a = 0.0;
  float b = 2.0;
  int division_num = (int)((b-a)/dx);
  float x, y1, y2;
  float v = 0.0;
  for(int i=0; i<division_num; i++){
    x = a + i*dx;
    y1 = constant_PDF(x);
    y2 = constant_PDF(x+dx);
    v = v + (x+dx/2.0-m)*(x+dx/2.0-m)*(y1+y2)*dx/2.0;
  }
  return v;
}

ソースコード2 確率密度関数による確率$${P(0 \leq X \leq 1)}$$、期待値、分散、標準偏差を計算するプログラム(完成版)

ソースコード2を、Processing の開発環境ウィンドウを開いて(スケッチ名を「probability_PDF」とします)、テキストエディタ部分に書いて実行すると、コンソールに

確率P(0≦X≦1): 0.49999967
期待値: 1.0
分散: 0.33332494
標準偏差: 0.577343

と出力されます(図3)。

図3 スケッチ「probability_PDF」の実行結果

なお、これらを手計算で行ったときの結果は、

$$
\mathrm{確率:} \frac{1}{2} \mathrm{、期待値:}1 \mathrm{、分散:} \frac{1}{3} \mathrm{、標準偏差:} \frac{1}{\sqrt{3}}
$$

となるので、おおむね正しい結果が得られていることがわかります。


本日は以上です。
明日は、正規分布について考えていきます。

明日もよろしくお願いします。


読んだ感想などをお寄せください

本記事を読んだ感想や質問などを以下のお問い合せフォームからお寄せください。(お問合せフォームの本文に、本記事のタイトルを入れてください。)


MK’s papa


いいなと思ったら応援しよう!