2020年4月9日木曜日

学習環境

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


  1. f X = A · X = a , b · x , y = a x + b y

    よって求める x、 y の偏徴を A の座標で表すと、

    f x = a f y = b

コード

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

print('2.')

a, b, x, y = symbols('a, b, x, y')
A = Matrix([a, b])
X = Matrix([x, y])
f = A.dot(X)


class TestPartialDerivative(TestCase):
    def test_dx(self):
        self.assertEqual(Derivative(f, x, 1).doit(), a)

    def test_dy(self):
        self.assertEqual(Derivative(f, y, 1).doit(), b)


p = plot3d(*[f.subs({a: random.randrange(-10, 11),
                     b: random.randrange(-10, 11)})
             for _ in range(5)],
           show=False)

p.show()
p.save('sample2.png')

if __name__ == "__main__":
    main()

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

% ./sample2.py -v
2.
test_dx (__main__.TestPartialDerivative) ... ok
test_dy (__main__.TestPartialDerivative) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.003s

OK
%

0 コメント:

コメントを投稿