2017年11月17日金曜日

学習環境

代数系入門 (松坂 和夫(著)、岩波書店)の第1章(整数)、2(数学的帰納法と除法の定理)、問題5.を取り組んでみる。


  1. r = 0 1 ( 1 r ) x 1 - r y r = ( 1 0 ) x 1 y 0 + ( 1 1 ) x 0 y 1 = x + y
    x + y n = x + y x + y n - 1 = x + y r = 0 n - 1 ( n - 1 r ) x n - 1 - r y r = r = 0 n - 1 ( n - 1 r ) x n - r y r + r = 0 n - 1 ( n - 1 r ) x n - 1 - r y r + 1 = r = 0 n - 1 ( n - 1 r ) x n - r y r + r = 1 n ( n - 1 r - 1 ) x n - r y r = ( n - 1 0 ) x n + r = 1 n - 1 ( n - 1 r ) x n - r y r + r = 1 n - 1 ( n - 1 r - 1 ) x n - r y r + ( n - 1 n - 1 ) y n = x n + r = 1 n - 1 ( n - 1 r ) + ( n - 1 r - 1 ) x n - r y r + y n

    ここで

    n r - 1 + ( n - 1 r - 1 ) = n - 1 ! r ! n - 1 - r ! + n - 1 ! r - 1 ! n - 1 - r + 1 ! = n - 1 ! r ! n - r - 1 ! + n - 1 ! r - 1 ! n - r ! = n - r + r n - 1 ! r ! n - r ! = n ! r ! n - r ! = ( n r )

    よって

    x + y n = x n + r = 1 n - 1 ( n r ) x n - r y r + y n = r = 0 n ( n r ) x n - r y r

    ゆえに帰納法により、すべての正の整数に対して問題の等式が成り立つ。(証明終)

コード(Emacs)

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, factorial, summation
import random

print('5.')
x, y = symbols('x, y', real=True)
n = symbols('n', integer=True, positive=True)
r = symbols('r', integer=True)


def comb(n, r):
    return factorial(n) / (factorial(r) * factorial(n - r))

expr1 = (x + y) ** n
expr2 = summation(comb(n, r) * (x ** (n - r)) * (y ** r), (r, 0, n))

for t in [expr1, expr2, expr1 == expr2]:
    pprint(t)
    print()

for _ in range(5):
    expr = (expr1 - expr2).subs({x: random.random()
                                 * 10, y: random.random() * 10})
    print(expr)
    for n0 in range(1, 6):
        pprint(float(expr.subs({n: n0})))
    print()

入出力結果(Terminal, Jupyter(IPython))

$ ./sample5.py
5.
       n
(x + y) 

   ⎛⎧           n                  ⎞
   ⎜⎪    ⎛    y⎞            │y│    ⎟
   ⎜⎪    ⎜1 + ─⎟        for ─── ≤ 1⎟
   ⎜⎪    ⎝    x⎠            │x│    ⎟
   ⎜⎪                              ⎟
   ⎜⎪  n                           ⎟
 n ⎜⎪ ____                         ⎟
x ⋅⎜⎨ ╲                            ⎟
   ⎜⎪  ╲     -r  r                 ⎟
   ⎜⎪   ╲   x  ⋅y ⋅n!              ⎟
   ⎜⎪   ╱  ───────────   otherwise ⎟
   ⎜⎪  ╱   r!⋅(n - r)!             ⎟
   ⎜⎪ ╱                            ⎟
   ⎜⎪ ‾‾‾‾                         ⎟
   ⎝⎩r = 0                         ⎠

False

0
0.0
0.0
0.0
0.0
0.0

0
0.0
0.0
0.0
0.0
0.0

0
0.0
0.0
0.0
0.0
0.0

13.0597580799118**n - 5.76745887013144**n*Sum(5.76745887013144**(-r)*7.29229920978039**r*factorial(n)/(factorial(r)*factorial(n - r)), (r, 0, n))
-5.944494821485156e-16
1.366347006568968e-14
1.223615482318982e-13
-6.6597079572399804e-12
-1.6640724589167732e-11

-1.90692947958286**n*Sum(1.90692947958286**(-r)*2.78454558430684**r*factorial(n)/(factorial(r)*factorial(n - r)), (r, 0, n)) + 4.6914750638897**n
7.749650795345911e-16
2.2012324034062304e-15
2.198690027880009e-14
1.7931365695109826e-13
9.157060898030184e-13

$

0 コメント:

コメントを投稿