Оценка погрешности подгонки к 2D-функции - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть проблема, когда у меня есть числовой решатель для дифференциального уравнения, и я измерил многие параметры этого уравнения, но мне нужно соответствовать 3. Как включить ошибку измеренных аргументов в оценкуошибка в подогнанных параметрах?

Я использую scipy.optimize.leastsq для оценки погрешности подгонки.Мой код в основном такой:

import scipy.optimize as opt
def solve(x,y,parameters,arguments):
    #Not important, but I do not know the functional relationship between F(x,y) and the parameters and the arguments
# data is just my data
def difference(params,arguments)
    solutions = solve(data,params,arguments)
    return solutions-data
# p0 is just an array of initial conditions
fit,cov,info,mesg,ier = opt.leastsq(difference,p0,full_output=True,args=measured_values)

Это, однако, только дает мне ошибки в параметрах подгонки, но я знаю, что у меня также есть неопределенность в моих измеренных значениях.Есть ли способ оценить ошибку в параметрах соответствия, вызванную этими аргументами?

1 Ответ

0 голосов
/ 06 декабря 2018

С тех пор я понял, что могу оценить ошибку, используя формулу для частных производных и вычисляя частные производные для подбора, численно.Рассматриваемая формула, конечно, имеет вид:

# partial(F,x) is the partial derivative of F with respect to x
err_F = sqrt((partial(F,a)*err_a)**2+(partial(F,b)*err_b)**2+(partial(F,c)*err_c)**2)

Поскольку я не ищу ошибку в моей функции, я должен определить три функции (по одной для каждого из моих подогнанных параметров) и рассчитать их ошибку из этого.Надеюсь, это поможет кому-то, у кого может быть похожая проблема.

...