ベクトルの微分 曲線の長さ、対数関数、三角関数、余弦、速度ベクトル、対数関数と余弦
続 解析入門 (原書第2版) (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第2章(ベクトルの微分)、2(曲線の長さ)の練習問題6.の解答を求めてみる。
よって、 求める曲線の長さは
コード
#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import Matrix, Derivative, log, Integral, sqrt, cos, pi
from sympy.plotting import plot_parametric
from sympy.abc import t, u
print('6.')
X = Matrix([t, log(cos(t))])
class Test(TestCase):
def test(self):
self.assertEqual(
float(Integral(1 / cos(t), (t, 0, pi / 4)).doit()),
float(log(sqrt(2) + 1))
)
p = plot_parametric(
(*X, (t, -pi / 3, 0)),
(*X, (t, 0, pi / 4)),
(*X, (t, pi / 4, pi / 3)),
show=False,
)
colors = ['red', 'green', 'blue', 'brown', 'orange',
'purple', 'pink', 'gray', 'skyblue', 'yellow']
for o, color in zip(p, colors):
o.line_color = color
print(o, color)
p.save('sample6.png')
p.show()
if __name__ == "__main__":
main()
入出力結果
% ./sample6.py -v
6.
parametric cartesian line: (t, log(cos(t))) for t over (-1.0471975511965979, 0.0) red
parametric cartesian line: (t, log(cos(t))) for t over (0.0, 0.7853981633974483) green
parametric cartesian line: (t, log(cos(t))) for t over (0.7853981633974483, 1.0471975511965979) blue
test (__main__.Test) ... ok
----------------------------------------------------------------------
Ran 1 test in 0.434s
OK
%