2020年4月22日水曜日

学習環境

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


  1. s = y x t = z x

    とおく。

    u x = u x x 3 f s , t = 3 x 2 f s , t + x 3 x f s , t = 3 x 2 f s , t + x 3 d f d s , d f dt · - y x 2 , - z x 2 = 3 x 2 f s , t - x y d f d s + z d f dt u y = x 3 d f d s , d f dt · 1 x , 0 = x 2 d f d s u z = x 3 d f d s , d f dt · 0 , 1 x = x 2 d f dt x u x + y u y + z u z = 3 x 3 f s , t - x 2 y d f d s - x 2 z d f dt + x 2 y d f d s + x 2 z dt d s = 3 u

コード

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

print('6.')

x, y, z = symbols('x, y, z')


class TestDerivativeChainRule(TestCase):
    def test(self):
        f = Function('f')(y / x, z / x)
        u = x ** 3 * f
        self.assertEqual(
            (x * u.diff(x, 1) + y * u.diff(y, 1) + z * u.diff(z, 1)).simplify(),
            3 * u)


if __name__ == "__main__":
    main()

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

% ./sample6.py -v 
6.
test (__main__.TestDerivativeChainRule) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.409s

OK
%

0 コメント:

コメントを投稿