2020年5月15日金曜日

学習環境

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


  1. gradfx,y=grad10+6cosxcosy+3cos2x+4cos3y=-6sinxcosy-6sin2x,-6cosxsiny-12sin3ygradfπ3,π3=-6·12·32-6·32,-6·12·32=-932,-332

    よって、温度の最大増加の向きは

    -932,-332

    最大減少向きは

    932,332

コード

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

print('3.')

x, y = symbols('x, y')
f = 10 + 6 * cos(x) * cos(y) + 3 * cos(2 * x) + 4 * cos(3 * y)
gradf = Matrix([f.diff(o, 1) for o in [x, y]])
p = {x: pi / 3, y: pi / 3}
gradfp = gradf.subs(p)


class TestGrad(TestCase):
    def test(self):
        self.assertEqual(gradfp,
                         Matrix([-9 * sqrt(3) / 2, - 3 * sqrt(3) / 2]))


p0 = plot3d(f,
            (x, -5, 5),
            (y, -5, 5),
            show=False)
p0.show()
p0.save('sample3.png')


if __name__ == "__main__":
    main()

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

% ./sample3.py -v
3.
test (__main__.TestGrad) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.001s

OK
%

0 コメント:

コメントを投稿