2010-07-13 3 views
2

Кто-нибудь знает какие-либо библиотеки для загрузки для Java?java peak fitting library

Я хочу дать ему массив данных, и это говорит мне о положении пика.

, например, для этих данных:

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 как я не хватает репутации, чтобы сделать новые теги ...

редактировать: Я бы предпочел Apache (или совместимый) лицензированный код ...

ответ

1

Вы хотите определить положение пика по методу наименьших квадратов? Я думаю, что самым популярным методом для этого является алгоритм Левенберга-Маркварда.

Я не знаю никаких библиотек Java, но я бы поискал такие термины, как: нелинейная кривая, нелинейные наименьшие квадраты, метод Левенберг-Марквардт или только метод Марквардта. Вы можете также рассмотреть возможность его кодирования самостоятельно. Если у вас есть библиотека для матричных манипуляций, это похоже на 20-30 строк кода (см. «Численные рецепты»).

Наконец-то есть мой program for peak detection and peak fitting (пик означает колоколообразную кривую), на GPL. Он включает в себя библиотеку (libfityk) и привязки на основе SWIG к этой библиотеке для Python и Lua. Кто-то сообщил о создании также привязок Java и использовании libfityk с Java. Но, честно говоря, это может быть излишним для ваших нужд.

1

Не уверен, что вы нашли ответ на этот вопрос, но вы, безусловно, можете использовать Apache Commons Math http://commons.apache.org/math/index.html В нем есть несколько методов кривой, а также реализация библиотеки Levenberg-Marquardt.