2017年11月17日金曜日

学習環境

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


  1. 1r=0(1r)x1-ryr=(10)x1y0+(11)x0y1=x+y1r=0(1r)x1ryr=(10)x1y0+(11)x0y1=x+y
    (x+y)n=(x+y)(x+y)n-1=(x+y)n-1r=0(n-1r)x(n-1)-r(y)r=n-1r=0(n-1r)xn-r(y)r+n-1r=0(n-1r)x(n-1)-r(y)r+1=n-1r=0(n-1r)xn-r(y)r+nr=1(n-1r-1)xn-r(y)r=(n-10)xn+n-1r=1(n-1r)xn-r(y)r+n-1r=1(n-1r-1)xn-r(y)r+(n-1n-1)yn=xn+n-1r=1((n-1r)+(n-1r-1))xn-r(y)r+yn(x+y)n=(x+y)(x+y)n1=(x+y)n1r=0(n1r)x(n1)r(y)r=n1r=0(n1r)xnr(y)r+n1r=0(n1r)x(n1)r(y)r+1=n1r=0(n1r)xnr(y)r+nr=1(n1r1)xnr(y)r=(n10)xn+n1r=1(n1r)xnr(y)r+n1r=1(n1r1)xnr(y)r+(n1n1)yn=xn+n1r=1((n1r)+(n1r1))xnr(y)r+yn

    ここで

    (nr-1)+(n-1r-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)!=(nr)(nr1)+(n1r1)=(n1)!r!(n1r)!+(n1)!(r1)!(n1r+1)!=(n1)!r!(nr1)!+(n1)!(r1)!(nr)!=((nr)+r)(n1)!r!(nr)!=n!r!(nr)!=(nr)

    よって

    (x+y)n=xn+n-1r=1(nr)xn-r(y)r+yn=nr=0(nr)xn-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 コメント:

コメントを投稿