2

f(x, m, E, I) = m * (x - x ** 2) / (E * I)の値を取得したいのような関数がありますE。と と呼ぶいくつかのデータXY、 と呼ぶ y データのいくつかの不確実性がありますyerr。さらに、パラメータmIは物理量であり、ある程度の不確実性を伴って測定されています。

数量の不確実性を考慮して、関数fをデータに適合させたいと考えています。現在、これは私がフィットを行うために使用しているコマンドです:X, Ym, 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

4

0 に答える 0