Код: Выделить всё
def langmuir_ode(t, AL, Rmax, kon, koff):
A = np.interp(t, time, concs)
L = Rmax - AL
return kon * A * L - koff * AL
Далее я определяю функцию obj для вычисления ошибки между некоторыми смоделированными данными ysim и решением, найденнымsolve_ivp:
Код: Выделить всё
def obj(t, *args):
sol = solve_ivp(fun=langmuir_ode,
t_span=[0,t[-1]],
y0=[0.0],
t_eval=t,
args=args
)
sol = sol.y.ravel()
error = ysim - sol
res_sd = np.std(error)
print('Standard deviation of fit residuals:', format(res_sd,'.2f'))
SSQ = np.sum(error**2)
return SSQ
Код: Выделить всё
print('Sum of squared fit residuals:', format(obj(time, 250, 1e5, 5e-3),'.2f'))
Standard deviation of fit residuals: 1.58
Sum of squared fit residuals: 848.23
Код: Выделить всё
initial_values = 300, 5e4, 4e-5
fit = minimize(obj, initial_values)
Код: Выделить всё
Traceback (most recent call last):
File C:\Program Files\Spyder\pkgs\spyder_kernels\py3compat.py:356 in compat_exec
exec(code, globals, locals)
File c:\users\avdkadmin\untitled0.py:66
fit = minimize(obj, initial_values)
File C:\Program Files\Spyder\pkgs\scipy\optimize\_minimize.py:691 in minimize
res = _minimize_bfgs(fun, x0, args, jac, callback, **options)
File C:\Program Files\Spyder\pkgs\scipy\optimize\_optimize.py:1362 in _minimize_bfgs
sf = _prepare_scalar_function(fun, x0, jac, args=args, epsilon=eps,
File C:\Program Files\Spyder\pkgs\scipy\optimize\_optimize.py:332 in _prepare_scalar_function
sf = ScalarFunction(fun, x0, args, grad, hess,
File C:\Program Files\Spyder\pkgs\scipy\optimize\_differentiable_functions.py:158 in __init__
self._update_fun()
File C:\Program Files\Spyder\pkgs\scipy\optimize\_differentiable_functions.py:251 in _update_fun
self._update_fun_impl()
File C:\Program Files\Spyder\pkgs\scipy\optimize\_differentiable_functions.py:155 in update_fun
self.f = fun_wrapped(self.x)
File C:\Program Files\Spyder\pkgs\scipy\optimize\_differentiable_functions.py:137 in fun_wrapped
fx = fun(np.copy(x), *args)
File c:\users\avdkadmin\untitled0.py:50 in obj
sol = solve_ivp(fun=langmuir_ode,
File C:\Program Files\Spyder\pkgs\scipy\integrate\_ivp\ivp.py:540 in solve_ivp
raise ValueError("Values in `t_eval` are not within `t_span`.")
ValueError: Values in `t_eval` are not within `t_span`.
Есть предложения?
Подробнее здесь: https://stackoverflow.com/questions/788 ... parameters
Мобильная версия