私は任意の曲線の長さを導出しようとしています。scipyを使用した円弧長の結果が間違っています
私は、単純な例から、半径Rの円から始めます。私は間違った結果を得ます!
この結果は、Rによる真の結果とは異なるように見えますが、これは問題のヒントを与えるかもしれません。
次のコードがR = 5それを2 * PI = 6.28 ...
であるべきであるR = 1
(5.287118128162912, 5.869880279799524e-14)
で
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))
結果、は
(26.435590640814564, 2.9349401398997623e-13)
です。
'1'は' y'が 'x'の関数で' y'の 'x'の導関数が使われる関数定義のために使われます。この状況は異なります。パラメトリック方程式で、 'x'と' y'は 't'の関数であるので、ここでは' 1'は使われません。 –
あなたは正しいです。私は弧の長さに関連する何かをしなければならなかったので、それはあまりにも長いです。私は彼のコードの問題がその後どのようになるか分かりません。 –