| 場所> | 正 | 誤 |
|---|---|---|
| p. 45右 下から10行目 | fl. ca. 1380-1420 | 1380-1420 |
| p. 47右 18行目 | aν | aν |
| p. 50右 5行目 | {aν} | (aν) |
fl.はラテン語 floruit(活躍期)の略、ca.はラテン語 circa(頃)の略。
表2の出力に用いたCプログラム(文字コードはUTF-8)
/* Euler transformation implemented using Richarson extrapolation */
#include <stdio.h>
#include <math.h>
#define NMAX 20
#define PI 3.1415926535897932384626433
int main(void){
int n,k,sign;
double s[NMAX+1];
double t[NMAX+1][NMAX+1],sum;
sum = PI;
n = 1;
sign = 1;
s[1] = 4.0;
t[1][0] = s[1];
for(n = 2;n <= NMAX;n++){
sign *= -1;
s[n] = s[n-1] + sign * 4.0/((double) 2 * n - 1);
t[n][0] = s[n];
for(k=1;k<=n;k++){
t[n-k][k] = 0.5 * (t[n-k+1][k-1] + t[n-k][k-1]);
}
}
printf("Euler transformation\n");
printf("t[0][n]\n\n");
for(n = 5;n <= NMAX;n++){
if (n > 12 && n < 18) continue;
printf("%3d %20.15f %8.3e",n,t[0][n],t[0][n]-sum);
printf("\n");
}
printf("t[5][n-5]\n\n");
for(n = 5;n <= NMAX;n++){
if (n > 12 && n < 18) continue;
printf("%3d %20.15f %8.3e",n,t[5][n-5],t[5][n-5]-sum);
printf("\n");
}
printf("t[10][n-10]\n\n");
for(n = 10;n <= NMAX;n++){
if (n > 12 && n < 18) continue;
printf("%3d %20.15f %8.3e",n,t[10][n-10],t[10][n-10]-sum);
printf("\n");
}
return 0;
}
表3の出力に用いたCプログラム(文字コードはUTF-8)
/* Epsilon Algorithm */
#include <stdio.h>
#include <math.h>
#define NMAX 10
int main(void){
int n,k,kend,sign=1;
double s[NMAX];
double eps[NMAX+1][NMAX+1]; /* eps[n][k] = \epsilon_{k}^{(n)} */
s[0] = 4.0;
for(n = 1;n <= NMAX;n++){
sign *= -1;
s[n] = s[n-1] + (4 * sign) / (2.0 * n + 1.0);
}
for(n = 0;n <= NMAX;n++){
eps[n][0] = s[n];
if (n > 0) {
eps[n-1][1] = 1.0/(s[n] - s[n-1]);
}
for(k = 2;k <= n;k++){
eps[n-k][k] = eps[n-k+1][k-2] + 1.0 / (eps[n-k+1][k-1] - eps[n-k][k-1]);
}
}
for(n = 0;n <= NMAX-1;n++){
printf("%2d %15.10f",n,eps[n][0]);
if (n <= 1){
printf("\n");
continue;
}
kend = n/2;
for(k = 1;k <= kend;k++){
printf("%15.10f",eps[n-2*k][2*k]);
}
printf("\n");
}
return 0;
}
お気づきのことがありましたら、下記のメールアドレスにご一報ください。
メールアドレス 長田直樹 <osada "at" cis.twcu.ac.jp> (スパム防止のため@を"at"で置き換えています。)