문제

가중 최소 제곱을 최소화하는 천연 스플라인에 맞는 수치 패키지를 찾으려고합니다.

Scipy에는 부 자연스러운 스플라인을 위해 원하는 것을 수행하는 패키지가 있습니다.

import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate, randn

x = np.arange(0,5,1.0/6)
xs = np.arange(0,5,1.0/500)

y = np.sin(x+1) + .2*np.random.rand(len(x)) -.1

knots = np.array([1,2,3,4])
tck = interpolate.splrep(x,y,s=0,k=3,t=knots,task=-1)
ys = interpolate.splev(xs,tck,der=0)

plt.figure()
plt.plot(xs,ys,x,y,'x')
도움이 되었습니까?

해결책

이 내부의 spline.py 파일 타르 파일 ~에서 이 페이지 기본적으로 자연 스플라인에 적합합니다. 코드도 있습니다 이 페이지 그것은 주로 당신이 원하는 것을 주장합니다. 그만큼 PYD3D 패키지 또한 자연 스플라인 기능 그것에 pydatautils 기준 치수. 이 마지막은 나에게 가장 유망한 것 같습니다. 그러나 자신의 매듭을 설정할 수있는 옵션이없는 것으로 보입니다. 어쩌면 당신이 소스를 보면 그것을 바로 잡을 방법을 찾을 수 있습니다.

또한, 나는 발견했다 이 메시지 Scipy 메일 링리스트에서 S = 0.0 (주어진 코드에서와 같이)을 사용하면 메시지의 작가에 따라 위의 절차를 사용하여 스플라인을 장착합니다. 나는 찾았다 이 splmake 자연 스플라인에 맞는 옵션이 있지만 소스를 살펴보면 아직 구현되지 않았다는 것을 알았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top