【发布时间】:2017-09-24 07:23:18
【问题描述】:
我正在尝试推导任意曲线的长度。
我从一个简单的例子开始,一个半径为 R 的圆。我得到了错误的结果!
结果似乎与 R 的真实结果不同,这可能会提示问题。
以下代码:
from scipy.integrate import quad
from scipy.misc import derivative
import numpy as np
r = lambda t: 1
x = lambda t: r(t)*np.cos(t)
Dx = lambda t: derivative(x, t)
y = lambda t: r(t)*np.sin(t)
Dy = lambda t: derivative(y, t)
print(quad(lambda t: np.sqrt(Dx(t)**2 + Dy(t)**2), 0, 2*np.pi))
结果
(5.287118128162912, 5.869880279799524e-14)
对于 R=1,它应该是 2*pi = 6.28...
对于 R=5 它是
(26.435590640814564, 2.9349401398997623e-13)
有什么建议吗?
【问题讨论】: