JScript+WSHでプログラミング基礎100本ノック その40 実践5 積分
その40 積分
課題
x^2(x * x をあらわします)を0~1の範囲で積分して得られる面積を求めてください。
ヒント
数学的に計算すると下記の通り1/3となります。
この計算を区分求積法で考えると下記のようになります。(懐かしい…)
コード例
main.js
--------
var nMax = 100000;
var xMin = 0;
var xMax = 1;
var ans = 0;
for(var k = 1; k <= nMax; k++){
ans += (1/nMax) * Math.pow(k/nMax, 2);
}
WScript.echo(ans);
出力結果
0.333338333349997
続行するには何かキーを押してください . . .
解説
数値計算系のプログラミングする際は、数学の知識が必要だったりします。
また、短冊をどのくらい細かくするか(nMaxをどのくらい大きくするか)によって精度は上がりますが、計算時間は長くなります。こういった関係をトレードオフの関係と言います。
また、変数の内部は2進数で表されるため、小数以下を扱う場合は誤差が生じる場合があります。これは丸め誤差と言われます。(詳細は調べてみてください)