数学のブログ

ベクトルの微分 曲線の長さ、スパイラル、三角関数(正弦と余弦)、速度ベクトル、積分

続 解析入門 (原書第2版) (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第2章(ベクトルの微分)、2(曲線の長さ)の練習問題1の解答を求めてみる。

d dt ( cos t , sin t , t ) = ( - sin t , cos t , 1 )
0 1 sin 2 t + cos 2 t + 1 dt
= 0 1 2 dt
= 2

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import sin, cos, Matrix, Integral, Derivative, sqrt
from sympy.plotting import plot3d_parametric_line
from sympy.abc import t

print('1.')

X = Matrix([cos(t), sin(t), t])
X1 = Derivative(X, t, 1).doit()


class Test(TestCase):
    def test(self):
        self.assertEqual(
            Integral(X1.norm(), (t, 0, 1)).doit().simplify(),
            sqrt(2)
        )


p = plot3d_parametric_line(
    (*X, (t, -10, 0)),
    (*X, (t, 0, 1)),
    (*X, (t, 1, 10)),
    show=False)
colors = ['red', 'green', 'blue', 'brown', 'orange',
          'purple', 'pink', 'gray', 'skyblue', 'yellow']
for o, color in zip(p, colors):
    o.line_color = color
p.xlabel = 'x'
p.ylabel = 'y'
p.save('sample1.png')
p.show()

if __name__ == "__main__":
    main()

入出力結果

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

----------------------------------------------------------------------
Ran 1 test in 0.639s

OK
%