반환 값 하나에 대해 문제를 해결하면 보간에 f_1(x,y)
과 f_2(x,y)
의 두 함수를 찾고 f(x, y) = [f_1(x,y), f_2(x,y)]
으로 함수를 구성 할 수 있습니다. 문제에 적합한 보간 기능을 해결하기위한 방법을 선택하십시오.
2 차원의 실제 보간 문제의 경우이를 처리 할 수있는 많은 방법이 있습니다. 필요한 것이 단순하다면 선형 보간법을 사용할 수 있습니다. piecewise 함수로 괜찮 으면 베 지어 커브 또는 스플라인을 사용할 수 있습니다. 또는 데이터가 일정한 경우 간단한 다항식 보간법을 사용할 수 있습니다 (물론 2D에서는 쉽지는 않지만 간단 함).
편집 : 추가 정보 및 일부 링크.
Bilinear interpolation (wikipedia)을 사용하여 조각 별 솔루션이 가능합니다.
다항식 보간의 경우 데이터가 모눈에있는 경우 다음 알고리즘을 사용할 수 있습니다 (메모리에있는 참조를 찾을 수 없습니다). 데이터 포인트가 k
l
에 의해 그리드에있는 경우 다음과 같이
, 당신의 다항식을 재 작성 : 여기
f(x,y) = cx_1(x)*y^(k-1) + cx_2(x)*y^(k-2) + ... + cx_k(x)
각 계수
cx_i(x)
도 정도
l
의 다항식이다. 첫 번째 단계는 그리드의 각 행이나 열을 보간하여 의 다항식을 찾을 수 있습니다. 이 작업이 완료되면 각
cx_i(x)
다항식의 보간 점으로 계수 세트 (즉,
l
다항식)가
cx_i(x0)
,
cx_i(x1)
, ...
cx_i(xl)
(총 1 * k 포인트를 제공)으로 나타납니다. 이제, 위의 상수를 보간 점으로 사용하여 이러한 다항식을 결정할 수 있습니다. 결과는
f(x,y)
입니다.
동일한 방법이 베 지어 곡선 또는 스플라인에 사용됩니다. 유일한 차이점은 다항식 계수 대신 제어점을 사용한다는 것입니다. 먼저 데이터 점을 생성 할 스플라인 세트를 얻은 다음 이러한 중간 커브의 제어점을 보간하여 서페이스 커브의 제어점을 얻습니다.
위의 알고리즘을 명확히하기 위해 예제를 추가하겠습니다.
0,0 => 1
0,1 => 2
1,0 => 3
1,1 => 4
우리는 피팅 두 다항식에 의해 시작 : (1, 0), (1, 1에 대한 데이터 포인트에 대해 하나의 (0,0)와 (0,1), 그리고 다른 사람의 다음과 같은 데이터 포인트를 보자) :
f_0(x) = x + 1
f_1(x) = x + 3
지금, 우리는 우리가 수직으로 이러한 다항식 계수를 읽어 coefficients.When을 결정하기 위해 다른 방향으로 보간, 우리는 두 다항식이 필요합니다. 하나는 0과 1 모두에서 1로 평가됩니다. 1에서 0에서 1로 평가하는 또 다른, 3 : 우리가 f(x,y)
로이 결합하면
cy_1(y) = 1
cy_2(y) = 2*y + 1
, 우리가 얻을 :
f(x,y) = cy_1(y)*x + cy_2(y)
= 1*x + (2*y + 1)*1
= x + 2*y + 1
당신이 기능에 대한 다항식 보간과 같은 뭔가를 찾고있다 2 변수? – amit
예. 하지만 그 함수는 2 개의 변수를 반환해야 할 것입니다 ... – Rella
당신은 복소수로 그것을 시도 할 수 있습니다. – starblue