플로팅중인 데이터 세트가 있습니다. 결과는 다음 그림과 같습니다 플롯의 곡률 감지
여기 내 파이썬 코드입니다 : 내가 기본 플롯의 곡률을 추적 추가 플롯을 추가 달성하기 위해 노력하고 무엇
import numpy as np
# Extra plotly bits
import plotly
import plotly.plotly as py
import plotly.graph_objs as go
a = np.array([[1, 0.00617329], [24, 0.133699], [48, 0.130072], [72, 0.0166202], [96, -0.187917], [120, -0.445023], [144, -0.698984],
[168, -0.942063], [192, -1.15151], [216, -1.30742], [240, -1.36852], [264, -1.33541], [288, -1.18194], [312, -0.982113],
[336, -0.772301], [360, -0.562501], [384, -0.3764], [408, -0.219537], [432, -0.106257], [456, -0.0369356], [480, -0.000313192]])
trace_a = go.Scatter(
x = a[:,0],
y = a[:,1],
mode = 'lines+markers',
name = 'a',
line = dict(
shape='line',
color = ('rgb(205, 12, 24)'),
width = 1)
)
data = [trace_a]
# Edit the layout
layout = dict(title = 'Curvature Test',
xaxis = dict(title = 'Data'),
yaxis = dict(title = 'Value'),
)
# Prepare Figure
fig = go.Figure(data=data, layout=layout)
# Plot
plotly.offline.plot(fig, filename='curvature.html')
.
아마도 다음 이미지 모양을(이 원형이고 노란색 표시 번째 줄거리의 첫 번째의 곡률을 나타내는 것을 증명하기 만한다.)
정확한 numpy/maths 솔루션을 찾을 수 없었기 때문에 각 데이터 포인트에 대해 이전 및 다음 접선의 내적 계산을 사용하여 다른 환경에서 프로토 타입을 만들었습니다.
가 어떻게 한 번 기본 하나의 곡률을 나타냅니다 그려진 두 번째 데이터 세트를 생성 할 수 있습니다 : 그래서 이것은 내 "가난한 살지 않는 곡률"해결책은?
면책 조항 : 이전에이 질문을했습니다. 그러나, 우아한 솔루션을 운동 관리하지 않았다. 나는 또한 곡률의 주제를 연구했고 곡률 계산을 알고있다. 그러나 나는 여전히 python/numpy와 올바른 수학적 접근법을 사용하여이 문제를 해결하기 위해 노력하고 있습니다. 나는 또한 다음에에 약간 시간을 보냈지 만, 내 문제를 해결하기 위해 제공된 정보를 완전히 포팅 할 수 없었습니다.
는 --- EDIT (1) --- 여기서
함수의 미분을 취하고 주어진 θ에서 J (θ)에 닿는 접선의 기울기를 계산합니다. 기울기가 다음 반복에서 양의 감소이면 최소에 가깝게 이동하고 경사 그것이 접선을 만질 때 약간의 음수 증가입니다, 당신이보고있는 것 같아요? –