문제

이것은 수학과 관련이 있습니다. 그러나 이것은 컴퓨팅에도 유용합니다.

10 개의 좌표가 있다고 가정 해 봅시다. (x1, y1) (x2, y2) ..... 2d 공간에서. (즉, XY 평면에서). 각 좌표를 가로 질러 단일 부드러운 곡선을 찾을 수 있습니까?

질문을 확장하는 동안 공간이 3D 인 경우 주어진 공간 좌표 세트를 가로 질러 매끄러운 표면의 방정식을 찾을 수 있습니까?

그러한 계산을 수행 할 도구 (모든 언어) 도구가 있습니까?

도움이 되었습니까?

해결책

당신이 찾아야 할 것은 NURBS (또는 균일 한 합리적 B- 스플라인)를 구현하는 일부 라이브러리입니다. 2D는 3D의 특별한 경우이므로 2D와 3D에서 문제를 해결합니다.

대략적으로, 당신은 실제 방정식에 관심이 없으며, 부드러운 곡선이나 표면으로 근사한 포인트를 얻는 데 관심이 있습니다. 이는 2D 또는 3D 공간에서 "제어점"을 찾아 B- 스플라인베이스 함수를 곱한 것입니다. NURBS 라이브러리가 당신을 위해 이것을 할 것입니다.

건배 !

편집하다:

살펴보십시오 이 하나

다른 팁

포인트를 통해 항상 주문 10 다항식을 맞출 수 있습니다. 그러나 반드시 원하는 것은 아닙니다. 일련의 스플라인을 통해 부드러운 곡선을 장착하면 더 나은 결과를 얻을 수 있습니다. 그만큼 곡선에 맞는 Wikipedia에 관한 기사는 다양한 옵션에 대한 좋은 개요를 제공합니다.

2D 케이스에서는 곡선 피팅을 요구하고 있습니다. 이것은 실제로 Excel에 존재합니다. 여기서 포인트를 표시합니다 (X와 Y가 나열된 경우 일반적으로 XY 스 캐터를 사용한 다음 곡선을 마우스 오른쪽 버튼으로 클릭하십시오. 트렌드 라인 추가를 선택하십시오. 거기에서 어떤 종류의 기능을 사용하려는 기능을 선택할 수 있으며 이미지에 표시하도록 Excel을 요청할 수 있습니다 (옵션 옵션, "차트의"디스플레이 방정식 "을 확인하십시오). 멋지고 빠릅니다.

그렇지 않으면 MATLAB을 사용하여 LSQR (최소 제곱 방법)을 사용할 수 있습니다. 데이터를 가장 잘 설명하는 다항식을 찾으려면 PolyFit 기능을 사용할 수 있습니다. 최소 제곱 방법을 사용하지만 계수를 반환합니다. MATLAB에는 선형 방정식 시스템에 대한 "최상의"근사치를 해결/찾기위한 전체 다른 알고리즘 세트가 있습니다. LSQR은 Matlab이없는 경우 자신을 구현하는 것이 가장 간단하기 때문에 LSQR을 언급합니다. 반면에 그것은 선형 방정식 세트를 해결하기위한 것입니다. 데이터에 대해 아무것도 모릅니다.

스플라인을 살펴보십시오

'스플라인 보간 라이브러리'를 검색하면 구현에 유용한 힌트가 제공 될 수 있습니다.

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