距離空間の世界 R^nにおける曲線 スパイラル、長さ、三角関数、正弦と余弦、ノルム
解析入門(中) (松坂和夫 数学入門シリーズ 5) (松坂 和夫 (著)、岩波書店)の第12章(距離空間の世界)、12.4(R^nにおける曲線)、問題2の解答を求めてみる。
よって求める 曲線、スパイラルの長さは、
コード
#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, Matrix, sin, cos, Derivative, pi, Integral, sqrt
from sympy.plotting import plot3d_parametric_line
print('3.')
a, b, t = symbols('a, b, t', real=True)
gamma = Matrix([a * cos(t), a * sin(t), b * t])
class Test(TestCase):
def test(self):
self.assertEqual(
Integral(Derivative(gamma, t, 1).doit().norm(),
(t, 0, 2 * pi)).doit(),
2 * pi * sqrt(a ** 2 + b ** 2)
)
X = gamma.subs({a: 1, b: 2})
p = plot3d_parametric_line(
(*X, (t, -pi, 0)),
(*X, (t, 0, 2 * pi)),
(*X, (t, 2 * pi, 3 * pi)),
legend=True,
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.save('sample3.png')
p.show()
if __name__ == "__main__":
main()
入出力結果
% ./sample3.py -v
3.
test (__main__.Test) ... ok
----------------------------------------------------------------------
Ran 1 test in 0.429s
OK
%