kanenko@mbk.nifty.com http://kanenko.a.la9.jp/
16 32...... h 0 h = ε () 0 ( ) 0 1 IEEE754 (ieee754.c Kerosoft Ltd.!) 1
2 : OS! : WindowsXP ( ) : X Window xcalc.. (,.) C double 10,???
3 :, ( ) : BASIC, Python, OCaML, CLISP, Dr Scheme, R :,.,. : FORTRAN, Pascal, C :. : Maxima, Risa/Asir, Pari/GP
N 1, i2. i=1 N, 10, 1+ 1 2 2 + 1 3 2 + 1 4 2 + 1 5 2 + 1 6 2 + 1 7 2 + 1 8 2 + 1 9 2 + 1 10 2. N = 100. (^^;.,.. s <- 0 for i:=1 to N do begin s <- s + 1/i^2 i end print s 4
(implement) 5 Pascal. (gdb ).,..,.
1 C C num2-1.c #include<stdio.h> #include<stdlib.h> int main(void) { int i,n; double s; printf("give N : "); scanf("%d",&n); s=(double)0; for (i=1;i<=n;i++) { s=s+(double)1/i/i; } printf("%22.15lf\n",s); return 0; } (double)1/i/i 1/i/i 1 1.0/i/i s (double)1/i/i (double)1/(i*i) i i num2-1.c gcc num2-1.c -o num2-1 num2-1 6
2 Pascal Pascal num2-1.p program zeta2; (* num2-1.p *) var i,n: integer; (* *) var s: double; begin (* *) write( Give N : ); readln(n); (* *) s:=0; (* s *) for i:=1 to N do begin (* *) s:=s+1.0/i/i; end; (* i *) writeln( Result :,s:18:15); (* *) end. Pascal, (* *).,, gpc num2-1.p -o num2-1, (executable) num2-1. num2-1. 7
3 FORTRAN 8 FORTRAN (F77) num2-1.f PROGRAM SERIES DOUBLE PRECISION S WRITE(*,*) Give N : READ(*,*)N S=0.0D0 DO 100 I=1,N S=S+1.0D0/I/I 100 CONTINUE WRITE(*,200) S 200 FORMAT(1H,F22.15) END FORTRAN 1950 ( ) 6 80 72 5, 1 I N A H, O Z = num2-1.f g77 num2-1.f -o num2-1 num2-1
,, 9 N N! 1,. 2. Q o 1 Ctrl-C. 2, kterm, ps XXXXX kill XXXXX. 1 cf. i i=1 ( )
( ) 1 N i 2 1 i2 i=1 i=1 1 i 2 1 i(i 1) ( 1 i 1 1 ) = 1 i N i=n+1 i=n+1 i=n+1 1 i 2 1 i(i+1) ( 1 i 1 ) = 1 i+1 N +1 i=n+1 N+1 i=n+1 1 x 2 = 1 N +1 i=n+1 i=n+1 1 i 2 N 1 x 2 = 1 N 10 N N+1 π 2 6 π = 3.14159265358979323846264338327950288419716939937510 C π 20 M_PI math.h
11 Taylor e x x i = i! i=0 C num2-2.c #include<stdio.h> #include<stdlib.h> int main(void) { int i,n; double x,s,t; printf("give x : "); scanf("%lf",&x); printf("give N : "); scanf("%d",&n); s=(double)1; /* 0 1 */ t=(double)1; /* */ for (i=1;i<=n;i++) { t=t*x/i; /* */ s=s+t; /* */ } printf("%22.15lf\n",s); return 0; } fac(i) s=s+x^i/fac(i) C ( pow(x,i) ) fac(i) i
Taylor e x = s N +R N, N s N = t i, t i = xi i!, R N = xn+1 (N +1)! eθx (0 θ 1). i=1 R N t N+1 e x t N+1 (s N + R N ) R N t N+1 s N 1 t N+1. N t N+1 R N t N+1 s N x, N exp(x) ( ) 12
( 1) 13 Taylor i )x 2i+1 sinx = (2i+1)! i=0 C num2-3.c #include<stdio.h> #include<stdlib.h> #include<math.h> int main(void) { int i,n; double x,s,t; printf("give x : "); scanf("%lf",&x); printf("give N : "); scanf("%d",&n); s=(double)0; t=(double)x; /* */ for (i=0;i<=n;i++) { s=s+t; /* */ } t=-t*x*x/(i+i+2)/(i+i+3); /* */ } printf("calculated value: %22.15lf\n",s); printf("value of library function: %22.15lf\n",sin(x)); return 0; x, N sin(x)
14 FORTRAN x**n T= (-1)**(2*I+1)*x**(2*I+1)/FAC(I) C exp, sin #include<math.h> gcc num2-3.c -lm -o num2-3 -lm ( ) libm.a libm.so /usr/lib/libm.a ( ) math.h, libm.a exp, sin ( 1) i 1 a i a i ց 0 i=1 N ( 1) i 1 a i a N+1 i=1
15 N O ( 1 ) 1 ( 1) n 1... N n 2, n n=1 n=1 O ( 1 ) (k > 1)... k N k 1 n 3 ( ) n=1 O ( 1 ) (a > 1)... a N 1 n 2n, 2 n n=0 n=1 O ( 1 ) x n (a > 1)... a N logn n!, x 2n+1 (2n+1)! n=0 n=0 O ( 1 ) (a > 1, k > 1)... a Nk O ( 1 ) (a > 1, b > 1)... (Newton a = e, b = 2 ) a bn 18
ζ(2) = 1 n2 n=1 1 n(n+1) = 1 n=1 1 (n 1)n(n+1) = 1 ( 1 2 n 1 + 1 n+1 2 ) = 1 n 2 n=2 n=2 ( 1 ζ(2) 1 = n 2 1 ) = n(n+1) n=1 ζ(2) 1 1 4 = 1 2 + ( n=2 = 1 2 ζ(2) = 7 4 n=2 n=2 n=1 1 n 2 (n+1), 1 n 2 (n+1) 1 (n 1)n(n+1) 1 n 2 (n 2 1), 1 n 2 (n 2 1) O ( 1 N 3 ) ) 16 ( 1 1 ) = 1 2 4
(1) Python (UNIX Cygwin ) g0620549$ python (. ) >>> 2+3*4+5**2 (Python >>> ) 39 (**, R.) >>> sin(1) Traceback (most recent call last): File "<stdin>", line 1, in? NameError: name sin is not defined >>> from math import * ( ) >>> sin(1) 0.8414709848078965 ( ) >>> sin(pi/4) ( pi ) 0.70710678118654746 >>> sqrt(2)/2 0.70710678118654757 ( ) >>> s=0 >>> for i in range(1,10000) : s=s+1.0/i/i... ( ) >>> s 1.6448340618480652 Ctrl-D ( d ) ( ), ( ) 17
(2) Risa/Asir,. 18 export PATH=${PATH}:/home/isstaff/kanenko/Risa/bin,. g0620549$ asir (. ) [0] 1/3; (asir [n]. ;) [1] 1.0/3; 0.333333 [3] @@-0.33333333333333; (@@.) 3.33067e-15 (, ) [4] 1/2+1/3; 5/6 [5] 2^32; 4294967296 [6] 2^100; ( ) [7] fac(13); ( ) 6227020800 [8] fac(1000); ( ) [9] sin(@pi/4); ( @pi ) sin(1/4*@pi) ( ) [10] eval(@@); ( @@ ) 0.7071067811865475243 ( ) [11] ctrl("bigfloat",1); ( ) 1 [12] setprec(100); ( 100 ) 105 ( ) [13] 1.0/3; ( ) [14] sin(@pi/4); sin(1/4*@pi) [15] eval(@@); ( ) [16] quit; ( ) @n n. C. X.
(3) num2-1.c,. 19 (4) num2-1.f,. (5) num2-2.c,.,. (6) num2-3.c,. sinx,., x = 20..
20 1 2.1 C n2 n=1 int main(void){ int i,n=1000; double s=(double)0; for (i=1;i<=n;i++){ s=s+1/i^2; } printf("%ld\n",s); return 0; } 2.2 2.3 2.1 (1) (2) n (3)
N 1 2.4 21 i 2 N = 10n n i=1 1 i 2 1 N O( 1 ) N 2 i=1 i.e. n 1 2n num2-1.c 2.5 (1) log(1+x) Taylor C. x (2) x = 1 1 1 2 +1 1 3 + +( 1)N 1 + = log2 N 1 1+x (3) ( ) ( 1 ) f(n) = (g(n)) N c 1,c 2 > 0 c 1 g(n) f(x) c 2 g(n) (4) N 2N O ( 1 ) N 2.