2018年11月25日

【Javaで数値計算入門】その1:エイトケン加速

級数の和の加速法の一つエイトケン加速

円周率を求める級数の一つを加速させて計算する。
π/4なので、4倍すると円周率になる。

public class AitkenProcess {

public static void main(String... args) {
double[][] s = new double[10][10];

for (int n = 0; n < 10; n++) {
for (int k = 0; k < n + 1; k++) {
s[n][0] += Math.pow(-1., k) / (2 * k + 1);
}
System.out.printf("n = %3d, k= 0, s = %10.8f \n", n, s[n][0]);
}

for (int n = 1; n < 9; n++) {
for (int k = 0; k < n; k++) {
s[n][k + 1] = (s[n + 1][k] * s[n - 1][k] - (s[n][k] * s[n][k]))
/ (s[n + 1][k] + s[n - 1][k] - 2 * s[n][k]);

System.out.printf("n = %3d, k= %3d, s = %10.8f \n", n, k + 1, s[n][k + 1]);
}
}
}
}


※参考:「理工学のための数値計算法」p.9  


Posted by 和歌山サイエンスカフェインフィニティ at 21:15Comments(0)javaで数値計算入門