f(x, m, E, I) = m * (x - x ** 2) / (E * I)
の値を取得したいのような関数がありますE
。と と呼ぶいくつかのデータX
とY
、 と呼ぶ y データのいくつかの不確実性がありますyerr
。さらに、パラメータm
とI
は物理量であり、ある程度の不確実性を伴って測定されています。
数量の不確実性を考慮して、関数f
をデータに適合させたいと考えています。現在、これは私がフィットを行うために使用しているコマンドです:X, Y
m, I
m = some value
I = some other value
popt, pcov = curve_fit(lambda x, E: f(x, m, E, I), X, Y, p0=[1e9], sigma=yerr)
m
もちろん、これはとの不確実性を考慮していませんI
。この不確実性を考慮して曲線を当てはめる方法はありますか?
たとえば、ここではモジュールの不確実性を使用して ODE を解きます。手順をコピーしようとしましたが、うまくいきませんでした。
import uncertainties as u
def f(x, m, E, I):
return m * (x - x ** 2) / (E * I)
m = u.ufloat(3e-4, 0.1e-6)
I = u.ufloat(1e-10, 0.2e-12)
@u.wrap
def fit():
popt, pcov = curve_fit(lambda x, E: f(x, m, E, I), X, Y, p0=[1e9], sigma=yerr)
return popt, pcov
前述のようにX, Y, yerr
、データとエラーはどこにありますか。Y