如何将两个数据集同时拟合成两个参考数据集并提取共享参数

2024-04-26 09:43:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有2个(模拟)数据集和2个(实验)参考数据集。你知道吗

由于模拟是以数值方式进行的,因此不知道方法/函数,只有模拟数据可用。你知道吗

这两个数据集共享我希望通过将模拟拟合到参考数据来提取的参数。你知道吗

我没有发现任何python功能可以使用数据集而不是拟合函数/模型来执行这种拟合/最小化/优化。你知道吗

具体来说:我有以下两个方程:

e1=a*s1+b*t1+c*u1和

e2=a*s2+b*t2+c*u2和

我想算出参数a,b,c

e1,e2是实验性的NxNnp.阵列(可以在热图中显示,也可以认为是f(x,y))和

s1、s2、t1、t2、u1、u2为MxMnp.阵列包含模拟数据。你知道吗

我希望左边和右边的方程(热图)尽可能相似,也考虑到这两个方程相似,以了解a,b,c

要使N=M是需要努力的,但这是可以做到的。 我知道,我必须使用两个模型,但我只知道如何将匹配的1xN实验和模拟阵列传递给模型。你知道吗


Tags: 数据函数模型参数数值热图t1方程
1条回答
网友
1楼 · 发布于 2024-04-26 09:43:20

我围绕scipy编写了一个名为^{}的包装器,它使这类问题变得简单,因此我认为您可能对使用它感兴趣。用symfit解决你的问题,你可以

from symfit import parameters, variables, Fit, Model

e1, e2, s1, s2, t1, t2, u1, u2 = variables('e1, e2, s1, s2, t1, t2, u1, u2')
a, b, c = parameters('a, b, c')

model = Model({
    e1: a * s1 + b * t1 + c * u1,
    e2: a * s2 + b * t2 + c * u2,
})

fit = Fit(model, u1=u1data, s1=s1data, ...)
fit_result = fit.execute()
print(fit_result)

有关详细信息,请参见documentation。祝你好运!你知道吗

相关问题 更多 >