Я делаю примерку наименьших квадратов в python. И я получил сообщение об ошибке «NotImplementedError: бинарные операции между экземплярами UTPM и массивами объектов не поддерживаются». Я не могу понять, что здесь происходит.
Мой код:
from scipy import integrate
from scipy import optimize
import numpy as np
from math import *
import matplotlib.pyplot as plt
import algopy #pip install algopy
R = 8.314 # J/mol/K
a = np.array([1,2,3,4,5])
da2dt = np.array([2,6,4,6,7])
def reaction_rate(p,a):
T = np.array([10,20,30,40,50])
return p[0] * np.exp(- p[1]/R/T) * (1 - a)**p[2]
def errfunc(p,a,da2dt):
return reaction_rate(p,a) - da2dt
def jac_errfunc(p,a,da2dt):
ap = algopy.UTPM.init_jacobian(p)
return algopy.UTPM.extract_jacobian(errfunc(ap, a, da2dt))
guess = np.array([1e8,1e4,1.0])
print(guess)
result = optimize.leastsq(errfunc, guess, args=(a, da2dt), Dfun = jac_errfunc, full_output=1)
Спасибо за помощь заранее!
Лучший,
Jing