2020年5月13日水曜日

学習環境

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



    1. A = 1 , 2 , 2

      とおく。

      g r a d f x , y , z = g r a d z - e x sin y = - e x sin y , - e x cos y , 1 g r a d f P = g r a d f log 3 , 3 2 π , - 3 = - e log 3 sin 3 2 π , - e log 3 cos 3 2 π , 1 = 3 , 0 , 1

      よって、求める方向微係数は

      g r a d f P · A A = 3 , 0 , 1 · 1 , 2 , 2 1 + 4 + 4 = 1 3 3 + 2 = 5 3

    2. D A f P = g r a d f P cos θ = 10 cos θ

      よって、 最大値、品の値はそれぞれ

      10 , - 10

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, sin, Matrix, exp, pi, log, Rational
from sympy.plotting import plot3d

print('1.')

x, y, z = symbols('x, y, z')
f = z - exp(x) * sin(y)
p = {x: log(3), y: 3 * pi / 2, z: -3}
gradf = Matrix([f.diff(o, 1) for o in [x, y, z]])
a = Matrix([1, 2, 2])


class Test(TestCase):
    def test(self):
        self.assertEqual(gradf.subs(p).dot(a / a.norm()),
                         Rational(5, 3))


for o in [x, y, z]:
    p0 = plot3d(f.subs({o: 1}),
                show=False)
    p0.save(f'sample1_{o}.png')
p0.show()

if __name__ == "__main__":
    main()

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

% ./sample1.py -v
1.
test (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.032s

OK
%

0 コメント:

コメントを投稿