2020年4月1日水曜日

学習環境

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



    1. gradxy+z=y,x,1gradf1,2,3=2,1,1

    2. gradx2y5+1=2xy5,5x2y4,0gradf1,2,3=64,80,0

    3. gradexyz=exyzyz,exyzxz,exyzxygradf1,2,3=6e6,3e6,2e6

    4. gradxyz=yz,xz,xygradf1,2,3=6,3,2

    5. gradxz+yz+xy=z+y,z+x,x+ygradf1,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 コメント:

コメントを投稿