2011|08|
2013|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|05|06|07|08|09|10|11|12|
2016|01|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|

2018-05-11 (対応済み) AKIYAMA ‏さんの「ソース見たが合計特殊出生率の定義がそもそも間違っている.やり直し.」関する、江端の考え方の報告

// 妊娠可能性率(ARTグラフより算出)

double pregnant_capability[100] = {0.0}; // 15歳を1.0とする

pregnant_capability[15]=1.000 ;

pregnant_capability[16]=0.9875 ;

pregnant_capability[17]=0.975 ;

pregnant_capability[18]=0.9625 ;

pregnant_capability[19]=0.95 ;

pregnant_capability[20]=0.9375 ;

pregnant_capability[21]=0.925 ;

pregnant_capability[22]=0.9125 ;

pregnant_capability[23]=0.9 ;

pregnant_capability[24]=0.8875 ;

pregnant_capability[25]=0.875 ;

pregnant_capability[26]=0.85625;

pregnant_capability[27]=0.8375 ;

pregnant_capability[28]=0.81875;

pregnant_capability[29]=0.8 ;

pregnant_capability[30]=0.78125;

pregnant_capability[31]=0.75 ;

pregnant_capability[32]=0.71875;

pregnant_capability[33]=0.6875 ;

pregnant_capability[34]=0.65625;

pregnant_capability[35]=0.625 ;

pregnant_capability[36]=0.5625 ;

pregnant_capability[37]=0.5 ;

pregnant_capability[38]=0.4375 ;

pregnant_capability[39]=0.375 ;

pregnant_capability[40]=0.3125 ;

pregnant_capability[41]=0.26875;

pregnant_capability[42]=0.225 ;

pregnant_capability[43]=0.18125;

pregnant_capability[44]=0.1375 ;

pregnant_capability[45]=0.09375;

pregnant_capability[46]=0.075 ;

pregnant_capability[47]=0.05625;

pregnant_capability[48]=0.0375 ;

pregnant_capability[49]=0.01875;

double sigma_pregnant_capability = 0;

for(int i = 15; i < 50; i++){ //

sigma_pregnant_capability += pregnant_capability[i]; // 同じ値を何度も計算している

}

for (int year = 1970; year < 2100; year++){ // 1970年から2100年までループ計算

// 数値をかえて再コンパイルのこと

#if 0

double dummy = 0;

for(int i = 15; i < 50; i++){ // 特殊出産率の対象 15歳から49歳までの人口加算

dummy += women[i];

}

// 1970年の特殊出生率 2.14 / 35は特殊出生率の対象期間(35年) / 1.05は男性の出生比率

// 2017年の特殊出生率 1.44 / 35は特殊出生率の対象期間(35年) / 1.05は男性の出生比率

double mem_new_birth = dummy * 2.14 / 35.0 * 1.05/(1.05+1.00);

double womem_new_birth = dummy * 2.14 / 35.0 * 1.00/(1.05+1.00);

#else

double sigma_rate_by_age = 0;

for(int i = 15; i < 50; i++){ // 特殊出産率の対象 15歳から49歳までの人口加算

sigma_rate_by_age += pregnant_capability[i] / women[i];

}

// "妊娠可能性係数" という概念を導入

double k_pregnant = 2.14 / sigma_rate_by_age; // 合計特殊出生率 "2.14" から逆算する

double mem_new_birth = k_pregnant * sigma_pregnant_capability * 1.05/(1.05+1.00);

double womem_new_birth = k_pregnant * sigma_pregnant_capability * 1.00/(1.05+1.00);

#endif

因みに、コード修正前と修正後でグラフを比較したが、ほとんど差が見れれなかった。

従って、これまでの計算方法でも、計算結果に差がでないことが分かった(まずは一安心)

(1970年スタート 特殊出生率2.14、2100年の段階で、0.0160548%程度の誤差しかなかった)