Анализ входной строки в лямбда-функцию с несколькими параметрамиPython

Программы на Python
Anonymous
Анализ входной строки в лямбда-функцию с несколькими параметрами

Сообщение Anonymous »

Как мне преобразовать входную строку в правильную форму, которую можно было бы использовать в качестве первого параметра вызываемого scipy.optimize.curve_fit?

Код: Выделить всё

import numpy as np
from scipy.optimize import curve_fit
x = np.arange(100)
y = 2*np.exp(-x)*3.14/2+1
Строка представляет собой математическую формулу, введенную некоторыми пользователями, не знающими Python. Функция синтаксического анализа принимает на вход следующие формулы:

Код: Выделить всё

f = parse('a*exp(-x)*b/c+d')
f1 = parse('k*x+b')
f2 = parse('k*sin(x*w)+b')
и анализировать/интерпретировать их с помощью лямбда-функций Python:

Код: Выделить всё

f = lambda x,a,b,c,d: a*numpy.exp(-x)*b/c+d
f1 = lambda x,k,b: k*x+b
f2 = lambda x,k,w,b: k*sin(x*w)+b
чтобы f можно было вызвать с помощью Curve_fit

Код: Выделить всё

p,pcov = curve_fit(f,x,y)
Я нашел аналогичный вопрос в Stack Overflow, но ответов и комментариев нет.


Подробнее здесь: https://stackoverflow.com/questions/778 ... parameters

Вернуться в «Python»