2017-03-24 1 views
2

저는 프로그래밍이 새롭고 조각 별 선형 보간 함수를 작성하려고합니다. (아마도 numpy.interp 또는 scipy.interpolate.interp1d로 끝난다.)파이썬의 조각 별 선형 보간 함수

x = [1, 2.5, 3.4, 5.8, 6] y = [2, 4, 5.8, 4.3, 4]

파이썬을 사용하여 1에서 2.5, 2.5에서 3.4 사이의 모든 선형 다항식의 계수를 제공하는 조각 별 보간 함수를 설계하고 싶습니다. 물론 matlab에는 이것을하는 interp1 함수가 있지만 im은 python을 사용하고 matlab과 똑같은 작업을하고 싶지만 python은 valuse 만 제공하지만 선형 다항식 계수는 제공하지 않습니다! (matlab에서 우리는 pp.coefs로 이것을 얻을 수 있었다). 파이썬에서 pp.coefs를 얻는 방법 numpy.interp?

답변

0

numpy에서 numpy의 계수를 사용할 수 있습니다.이 계수는 주어진 피팅에 대해 가장 높은 학위 (여기에는 계수가 두 개 계수가 1 개임)부터 있습니다. 아래는 따라서 귀하의 답변을, 각 세그먼트 [1, 2.5], [2.5, 3.4] 당신에게 등

import numpy as np 

x = np.array(x) 
y = np.array(y) 

[np.polyfit(x[i:(i+2)], y[i:(i+2)],1) for i in range(len(x)-1)] 
#[array([ 1.33333333, 0.66666667]), array([ 2., -1.]), array([-0.625, 7.925]), array([ -1.5, 13. ])] 
+0

답장을 보내 주셔서 감사합니다. . . 하지만 난 정말 하나의 다항식을 가지고 싶지 않아 라인 세그먼트와 포인트를 첨부 몇 가지 이유로 선호하고 다음 다른 라인에 대한 결과 곡선의 교차점을 찾아야 만합니다. . . –

+0

@ Nima, 거기에 하나의 다항식이있을뿐만 아니라, 위의 계수는 각 선분에 대한 계수입니다! –

+0

정말 고마워요. 나는 내 대답을 얻었다. . . 이제 두 그래프 사이의 교차점을 어떻게 찾을 수 있을지 아십니까? –

0

방금 ​​점 (x0, y0)에서 (x1, y1)을 보간 라인에 라인이 y - y0 = ((y0 - y1)/(x0 - x1)) * (x - x0)으로 제공되는 공식을 사용하여 선형 보간을 수행하는 경우. 슬라이스 구문을 사용하여 목록의 2 요소 조각을 가져올 수 있습니다. 예를 들어 [2.5, 3.4]을 얻으려면 x[1:3]을 사용하십시오.

슬라이스 구문을 사용하면 선형 보간 공식을 구현하여 선형 다항식 보간의 계수를 계산할 수 있습니다.

+0

고맙습니다 계수의 목록을 제공합니다. . . 하지만 내 기본 질문은 두 개의 커브 사이의 교차점을 찾는 것입니다. 예를 들어 y = 2 * x 인 선과 점 집합입니다 (예 : x = [1, 2.5, 3.4, 5.8, 6] y = [2, 4, 5.8, 4.3, 4])를 사용하여 조각 별 선형을 사용하는 것을 선호합니다. . . 먼저이 조각 별 선형 곡선을 만들어서 ((solve))와 교점을 찾으십시오. . . 물론 사실상 나는 라인이 없다. . . –

+0

나는이 주석을 이해할 수 없다. 제가 설명한 방법으로 계수를 계산할 수 있습니다. 이것으로 요청한 포인트의 선형 보간을 생성 할 수 있습니다. –