2020年4月19日日曜日

学習環境

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



    • f x = x x 2 + y 2 + z 2 1 2 = 1 2 x 2 + y 2 + z 2 - 1 2 · 2 x = x x 2 + y 2 + z 2 - 1 2

    • f y = y x 2 + y 2 + z 2 - 1 2

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, Rational
from sympy.plotting import plot3d


print('3.')

x, y, z = symbols('x, y, z')
f = (x ** 2 + y ** 2 + z ** 2) ** Rational(1, 2)


class TestPartialDerivative(TestCase):
    def test_dx(self):
        self.assertEqual(f.diff(x, 1),
                         x * (x ** 2 + y ** 2 + z ** 2) ** -Rational(1, 2))

    def test_dy(self):
        self.assertEqual(f.diff(y, 1),
                         y * (x ** 2 + y ** 2 + z ** 2) ** -Rational(1, 2))


p = plot3d(f.subs({z: 1}), show=True)
p.xlabel = x
p.ylabel = y
p.save('sample3.png')

if __name__ == "__main__":
    main()

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

% ./sample3.py -v
3.
test_dx (__main__.TestPartialDerivative) ... ok
test_dy (__main__.TestPartialDerivative) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.014s

OK
%

0 コメント:

コメントを投稿