我試圖導出任意曲線的長度。弧線長度使用scipy錯誤的結果
我從一個簡單的例子開始,一個半徑爲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)
有什麼建議嗎?
'1'用於功能定義,其中'y'是'x'的函數,而'y'的導數相對於'x'被使用。這種情況是不同的:參數方程中'x'和'y'都是't'的函數,所以在這裏不應該使用'1'。 –
你是對的。因爲我不得不做任何與弧長有關的事情,所以它太長了。我不知道他的代碼可能會遇到什麼問題。 –