2020年4月1日水曜日

学習環境

解析入門 原書第3版 (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第Ⅵ部(多変数の関数)、第19章(多変数の関数)、2(偏微分)の練習問題11の解答を求めてみる。



    1. g r a d x y + z = y , x , 1 g r a d f 1 , 2 , 3 = 2 , 1 , 1

    2. g r a d x 2 y 5 + 1 = 2 x y 5 , 5 x 2 y 4 , 0 g r a d f 1 , 2 , 3 = 64 , 80 , 0

    3. g r a d e x y z = e x y z y z , e x y z x z , e x y z x y g r a d f 1 , 2 , 3 = 6 e 6 , 3 e 6 , 2 e 6

    4. g r a d x y z = y z , x z , x y g r a d f 1 , 2 , 3 = 6 , 3 , 2

    5. g r a d x z + y z + x y = z + y , z + x , x + y g r a d f 1 , 2 , 3 = 5 , 4 , 3

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, Matrix, exp

print('11.')

x, y, z = symbols('x, y, z', real=True)
xyzs = [(y, x, 1),
        (2 * x * y ** 5, 5 * x ** 2 * y ** 4, 0),
        (exp(x * y * z) * y * z,
         exp(x * y * z) * x * z,
         exp(x * y * z) * x * y),
        (y * z, x * z, x * y),
        (z + y, z + x, x + y)]
p = {x: 1, y: 2, z: 3}
grad_fps = [(2, 1, 1),
            (64, 80, 0),
            (6 * exp(6), 3 * exp(6), 2 * exp(6)),
            (6, 3, 2),
            (5, 4, 3)]


class TestPartialDerivative(TestCase):
    def test(self):
        for xyz, grad_fp in zip(xyzs, grad_fps):
            self.assertEqual(Matrix(xyz).subs(p), Matrix(grad_fp))


if __name__ == "__main__":
    main()

入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))

% ./sample11.py -v
11.
test (__main__.TestPartialDerivative) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.010s

OK
%

0 コメント:

コメントを投稿