衝撃の結果に打ちのめされるネムネコ [ひとこと言わねば]
衝撃の結果に打ちのめされるネムネコ
いま、第2種完全楕円積分
を計算するJavaScriptのプログラムを作って、計算させてみた。
(1)の定積分を、台形公式とシンプソン法を使って数値的に計算してみたんだけれど、台形公式の方がシンプソン法よりも精度よく計算できるんだよね。
k=0.8、分割数n=10のとき、
台形公式は、
E(0.8)=1.2763499431698992
CASIOさんの高精度計算サイトの計算結果は、
E(0.8)=1.276349943169906423309
なんと、小数点以下13位まで合っているんだケロよ。
というかなり粗い分割での計算で、小数点以下13位まで正確に計算できるんだよ。
この結果は衝撃的だね。
嘘じゃないにゃ。嘘だと思うならば、次のスクリプトをnemuneko.htmlとかなんとかつけて保存し、それをダブルクリックしてみるにゃ。
すると、ブラウザーが起動し、E(0.8)=1.2763499431698992と出るにゃ。
<script type="text/JavaScript">
var k = 0.8;
function f(x) {
return Math.sqrt(1.0-k*k*Math.sin(x)*Math.sin(x));
}
function Daikei(a,b,n) {
var h=(b-a)/n;
var s=(f(a)+f(b))/2.;
for (var i=1;i <n;i++) {
s=s+f(a+i*h);
};
s = s*h;
return s;
}
var a= 0. ;
var b = Math.PI/2;
var n = 10;
var E = Daikei(a,b,n);
alert('E('+k+')=' + E.toFixed(16));
</script>
被積分関数によってはシンプソン法よりも台形公式や中点公式の方が精度よく計算できる、ということは知っていたけれど、いや〜、こういうこともあるんだね。
驚きだにゃ。
シンプソン法よりもさらに高精度な計算ができる4次のルンゲ・クッタ法でも計算したんだけれど。
k=0.8、h=π/20と同一の条件で計算したもの。
最後の数字が違っているのは、四捨五入しているためだと思う。
https://goo.gl/1DsWQF
コメント 0