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進数で表されるため、小数以下を扱う場合は誤差が生じる場合があります。これは丸め誤差と言われます。(詳細は調べてみてください)

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