2020年5月22日金曜日

学習環境

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


  1. C と定数とする。

    問題のベクトル場は

    F X = C 1 X 3 · X X

    ポテンシャル関数は、

    ϕ X = - C 2 X 2

    実際に勾配ベクトル、偏微分を計算してみる。

    X = x 1 , , x n x i ϕ X = x i - C 2 k = 1 n x k 2 = C 2 1 k = 1 n x k 2 2 · 2 x i = C x i X 4 g r a d ϕ X = C · 1 X 3 · X X

コード

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

print('2.')

C = symbols('C', real=True)
xs = symbols('x:2', real=True)
X = Matrix(xs)
f = C * X / X.norm() ** 4
phi = -1 * C / (2 * X.norm() ** 2)

grad_phi = Matrix([phi.diff(xi, 1) for xi in xs])


class TestPotential(TestCase):
    def test(self):
        self.assertEqual(f.simplify(), grad_phi.simplify())


p = plot3d(phi.subs({C: 1}),
           show=True)
p.save('sample2.png')

if __name__ == "__main__":
    main()

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

% ./sample2.py -v
2.
test (__main__.TestPotential) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.272s

OK
%

0 コメント:

コメントを投稿