学習環境
- Surface
- Windows 10 Pro (OS)
- Nebo(Windows アプリ)
- iPad
- MyScript Nebo - MyScript(iPad アプリ(iOS))
- 参考書籍
解析入門 原書第3版 (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第Ⅵ部(多変数の関数)、第20章(合成微分律と勾配ベクトル)、1(合成微分律)の練習問題8の解答を求めてみる。
とおく。
このとき、
よって、
コード
#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, Function, Matrix
from sympy.plotting import plot3d
print('8.')
x, y, z, r, u, v = symbols('x, y, z, r, u, v', real=True)
class TestDerivativeChainRule(TestCase):
def test_a(self):
X = Matrix([x, y, z])
d = {r: X.norm()}
g = Function('g')(r)
f = g.subs(d)
self.assertEqual(
(g.diff(r, 1).subs(d) ** 2).simplify(),
(f.diff(x, 1) ** 2 + f.diff(y, 1) ** 2 + f.diff(z, 1) ** 2)
.simplify()
)
def test_b(self):
f = Function('f')(u, v)
d = {u: x + y, v: x - y}
g = f.subs(d)
self.assertEqual(
(g.diff(x, 1) * g.diff(y, 1)).simplify(),
(f.diff(u) ** 2 - f.diff(v, 1) ** 2).subs(d).simplify()
)
def test_c(self):
f = Function('f')(r)
d = {r: 2 * x + 7 * y}
g = f.subs(d)
self.assertEqual(2 * g.diff(y), 7 * g.diff(x, 1))
if __name__ == "__main__":
main()
入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))
% ./sample8.py -v
8.
test_a (__main__.TestDerivativeChainRule) ... ok
test_b (__main__.TestDerivativeChainRule) ... ok
test_c (__main__.TestDerivativeChainRule) ... ok
----------------------------------------------------------------------
Ran 3 tests in 0.608s
OK
%
0 コメント:
コメントを投稿