교정되지 않은 나침반을 사용하여 현장에서 수집 한 간단한 측량 데이터가 있습니다. 이 분야에서 문제를 깨닫고 보정되지 않은 나침반과 11 개의 베어링에 기록 된 차이를 비교하여 좋은 나침반을 비교했습니다. 플롯은 그 차이가 죄 기능에 매우 가깝다는 것을 보여줍니다. 교정되지 않은 나침반을 사용하여 측량 데이터를 수정하기 위해이 결과 함수에 다항식 (차수 3)을 맞추고 싶습니다. 커브 피팅 프로그램은 피팅 커브가 불량합니다. 누구든지 무엇이 잘못되었는지 볼 수 있습니까?Scipy Bodgy 곡선 적합
import numpy as np
import scipy
import pylab
correctCompass=\
np.array([134.4,112.6,069.7,051.1,352.5,314.6,218.3,258.2,237.8,186.5,153.7])
errorCompass=\
np.array([131.6,108.9,065.6,047.0,349.8,314.0,284.6,262.7,243.4,189.8,153.2])
# sort compass values
for i in range(0,11):
for j in range(i+1,11):
if correctCompass[i] > correctCompass[j]:
tmp=correctCompass[j]
correctCompass[j]=correctCompass[i]
correctCompass[i]=tmp
tmp=errorCompass[j]
errorCompass[j]=errorCompass[i]
errorCompass[i]=tmp
diff = correctCompass - errorCompass + 15.0
height=diff.max() + 16.0
polycoeffs = scipy.polyfit(correctCompass, diff, 3)
# fit the data with a polynomial
yfit = scipy.polyval(polycoeffs,correctCompass)
pylab.plot(correctCompass, diff, 'k.')
pylab.plot(correctCompass, yfit, 'r-')
pylab.axis([0,360,-10.0,height])
pylab.show()
pylab에는 numpy가 들어 있으므로 두 개를 가져 오는 것이 중복됩니다. 나는 matplotlib.pyplot을 plt로 가져오고 numpy는 –