Processing math: 100%

2019年7月25日木曜日

学習環境

ラング線形代数学(下) (ちくま学現文庫)(S.ラング (著)、芹沢 正三 (翻訳)、筑摩書房)の8章(行列と双線形写像)、2(2次形式)、練習問題4の解答を求めてみる。



    1. 14(f((x1,x2)+(y1,y2))-f((x1,x2)-(y1,y2)))=14(f(x1+y1,x2+y2)-f(x1-y1,x2-y2))=14((x1+y1)(x2+y2)-(x1-y1)(x2-y2))=14(2x1y2+2x2y1)=12(x1y2+x2y1)

    2. g(X,Y)=14(f(x1+y1,x2+y2,x3+y3,x4+y4)-f(x1-y1,x2-y2,x3-y3,x4-y4))=14((x1+y1)(x3+y3)+(x4+y4)2-(x1-y1)(x3-y3)-(x4-y4)2)=14(2x1y3+2x3y1+4x4y4)=12(x1y3+x3y1)+x4y4

    3. 14(2(x1+y1)(x2+y2)-(x3+y3)(x4+y4)-2(x1-y1)(x2-y2)+(x3-y3)(x4-y4))=14(4x1y2+4x2y1-2x3y4-2x4y3)=x1x2+x2y1-12(x3y4+x4y3)

    4. 14((x1+y1)2-(x1-y1)2-5((x2+y2)(x3+y3)-(x2-y2)(x3-y3))+(x4+y4)2-(x4-y4)2)=14(4x1y1-5(2(x2y3+x3y2))+4x4y4)=x1y1-52(x2y3+x3y2)+x4y4

コード

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, Matrix,  Rational

print('4.')


def g(f, v, w):
    return (f(v + w) - f(v - w)) / 4


def f1(x):
    return x[0] * x[1]


def f2(x):
    return x[0] * x[2] + x[3] ** 2


def f3(x):
    return 2 * x[0] * x[1] - x[2] * x[3]


def f4(x):
    return x[0] ** 2 - 5 * x[1] * x[2] + x[3] ** 2


fs = [f1, f2, f3, f4]
v = Matrix(symbols('x1, x2, x3, x4'))
w = Matrix(symbols('y1, y2, y3, y4'))

for i, f in enumerate(fs):
    print(f'({chr(ord("a")+ i)})')
    pprint(g(f, v, w).expand())
    print()

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

C:\Users\...>py sample4.py
4.
(a)
x₁⋅y₂   x₂⋅y₁
───── + ─────
  2       2  

(b)
x₁⋅y₃   x₃⋅y₁        
───── + ───── + x₄⋅y₄
  2       2          

(c)
                x₃⋅y₄   x₄⋅y₃
x₁⋅y₂ + x₂⋅y₁ - ───── - ─────
                  2       2  

(d)
        5⋅x₂⋅y₃   5⋅x₃⋅y₂        
x₁⋅y₁ - ─────── - ─────── + x₄⋅y₄
           2         2           


C:\Users\...>

0 コメント:

コメントを投稿