2010-07-13 8 views
2

자바 피크 피팅 라이브러리를 아는 사람이 있습니까?자바 피크 피팅 라이브러리

데이터 배열을주고 싶습니다. 피크의 위치를 ​​알려줍니다. 이 데이터에 대한

예 :

x, y
-5, 0.875333026
-4, 0.885868909
-3, 0.895851362
-2, 0.903971085
-1, 0.908274124
0, 0.907117054
1, 0.901894046
2, 0.894918547
3, 0.887651936
4, 0.880114302
5, 0.872150014

는이 피크에 있다고 말할 것이다 (약) 나는 아마 가우스, 아니면 분할에 맞게 할 것입니다 -0.75

가우스 ...

. 나는 새 태그를 만들 수있는 충분한 명성을하지 않는 한 내가 curve-fitting하지 peak-fitting 또는 peak-finding로 태그 한

...

편집 : 제가 아파치 (또는 호환) 라이센스 코드를 선호하는 것 ...

답변

1

피크 - 최소 제곱 피팅의 위치를 ​​결정 하시겠습니까? 가장 일반적인 방법은 Levenberg-Marquardt 알고리즘이라고 생각합니다.

자바 라이브러리를 모르지만 비선형 커브 피팅, 비선형 최소 제곱, Levenberg-Marquardt 또는 Marquardt 메소드와 같은 용어를 검색합니다. 직접 코딩 할 수도 있습니다. 행렬 조작을위한 라이브러리를 가지고 있다면 그것은 20-30 줄의 코드와 같습니다 (수치 적 조리법 참조).

마지막으로 내 program for peak detection and peak fitting (종 모양의 종 모양 곡선)은 GPL에 있습니다. 라이브러리 (libfityk)와 Python 및 Lua 용 SWIG 기반 바인딩이이 라이브러리에 포함되어 있습니다. 누군가는 Java 바인딩을 생성하고 Java에서 libfityk를 사용한다고보고했습니다. 그러나 솔직히, 그것은 당신의 필요에 과잉이 될 수 있습니다.

1

아직 답을 찾지 못했지만 확실하게 Apache Commons Math http://commons.apache.org/math/index.html을 사용할 수 있는지 확실하지 않습니다. Levenberg-Marquardt 라이브러리의 구현뿐만 아니라 몇 가지 곡선 맞추기 방법이 있습니다.