2020年4月17日金曜日

学習環境

解析入門 原書第3版 (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第Ⅵ部(多変数の関数)、第20章(合成微分律と勾配ベクトル)、1(合成微分律)の練習問題1の解答を求めてみる。



    • z r = r f x , y = r f u r , s , t , v r , s , t = g r a d f · d u d r , d v d r = d f dx , d f dy · d u d r , d v d r = d f dx d u d r + d f dy d v d r = D 1 f d u d r + D 2 f d v d r

    • z t = d f dx d u dt + d f dy d v dt

コード

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

print('1.')

x, y, r, s, t = symbols('x, y, r, s, t')
f = Function('f')(x, y)
u = Function('u')(r, s, t)
v = Function('v')(r, s, t)


class TestSyntheticDerivative(TestCase):
    def test_dr(self):
        self.assertEqual(
            f.subs({x: u, y: v}).diff(t, 1).simplify(),
            (f.diff(x, 1) * u.diff(t, 1) +
             f.diff(y, 1) * v.diff(t, 1)).subs({x: u, y: v}))

    def test_dt(self):
        self.assertEqual(
            f.subs({x: u, y: v}).diff(r, 1).simplify(),
            (f.diff(x, 1) * u.diff(r, 1) +
             f.diff(y, 1) * v.diff(r, 1)).subs({x: u, y: v}))


if __name__ == "__main__":
    main()

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

% ./sample1.py -v
1.
test_dr (__main__.TestSyntheticDerivative) ... ok
test_dt (__main__.TestSyntheticDerivative) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.377s

OK
%

0 コメント:

コメントを投稿