Я ищу подпрограмму нелинейной подгонки кривой (вероятно, скорее всего, найденную в R или Python, но я открыт для других языков), которая бы брала данные x, y и подгоняла к ней кривую.
Я должен иметь возможность указать в виде строки тип выражения, которое я хочу разместить.
Примеры:
"A+B*x+C*x*x"
"(A+B*x+C*x*x)/(D*x+E*x*x)"
"sin(A+B*x)*exp(C+D*x)+E+F*x"
Из этого я получу хотя бы значения констант (A, B, C и т. Д.) И, надеюсь, статистику о пригодности матча.
Существуют коммерческие программы для этого, но я ожидал, что смогу найти что-то такое же общее, как вписывание нужного выражения в языковую библиотеку в наши дни. Я подозреваю, что оптимизация SciPy могла бы сделать это, но я не вижу, чтобы это позволило мне определить уравнение. Точно так же я не могу найти именно то, что хочу в R.
Это то, что я ищу там, или мне нужно свернуть свое? Ненавижу делать это, если оно есть, и мне просто трудно его найти.
Edit: я хочу сделать это для немного большего контроля над процессом, чем я получаю от LAB Fit. Интерфейс LAB Fit ужасен. Я также хотел бы иметь возможность разбить диапазон на несколько частей и иметь разные кривые, представляющие разные части диапазона. В конце концов, результат должен быть в состоянии (по скорости) превзойти LUT с линейной интерполяцией, или я не заинтересован.
В моем текущем наборе проблем у меня есть триггерные функции или exp (), и мне нужно выполнять их 352800 раз в секунду в режиме реального времени (и использовать только часть процессора). Поэтому я строю кривую и использую данные, чтобы привести в порядок установщик кривой, чтобы получить менее дорогие приближения. В старые времена, LUT были почти всегда решением, но в настоящее время пропуск поиска памяти и приближение иногда бывают быстрее.