2017年9月6日水曜日

学習環境

解析入門〈2〉(松坂 和夫(著)、岩波書店)の第10章(n次元空間)、10.1(ユークリッド空間)、問題1.を取り組んでみる。


  1. | a+b | 2 + | ab | 2 =( a+b )·( a+b )+( ab )·( ab ) =a·a+2a·b+b·b+( a·a2a·b+b·b ) = | a | 2 +2a·b+ | b | 2 +( | a | 2 2a·b+ | b | 2 ) =2( | a 2 |+ | b | 2 )

コード(Emacs)

Python 3

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from sympy import pprint, symbols, Matrix

print('1.')
a1, a2, b1, b2 = symbols('a1 a2 b1 b2', real=True)
a = Matrix([a1, a2])
b = Matrix([b1, b2])

expr1 = (a + b).norm() ** 2 + (a - b).norm() ** 2
expr2 = 2 * (a.norm() ** 2 + b.norm() ** 2)
for expr in [expr1, expr2]:
    pprint(expr)
    pprint(expr.factor())
    print()

print(expr1.expand() == expr2.expand())

入出力結果(Terminal, IPython)

$ ./sample1.py
1.
         2            2            2            2
(a₁ - b₁)  + (a₁ + b₁)  + (a₂ - b₂)  + (a₂ + b₂) 
  ⎛  2     2     2     2⎞
2⋅⎝a₁  + a₂  + b₁  + b₂ ⎠

    2       2       2       2
2⋅a₁  + 2⋅a₂  + 2⋅b₁  + 2⋅b₂ 
  ⎛  2     2     2     2⎞
2⋅⎝a₁  + a₂  + b₁  + b₂ ⎠

True
$

0 コメント:

コメントを投稿