如何解决相关变量和scipy curve_fit
我有一个物理模型,其中包含一个自变量X
和三个参数A
,B
和C
。因变量为Y=F(X,A,B,C)
,其中F
是平滑且连续的模型函数。
我有许多数据点为(X,Y)
的文件(每个文件)都适合模型以研究参数的变化。该模型对于自变量和所有参数都是非线性的。
为适应模型,我在整个文件中包含数据点的scipy.optimize curve_fit
内的Python中使用for loop
。对于每个文件,我都会得到最合适的参数(A,C)
,并且该模型非常适合所有文件。但是,当我在拟合之后检查参数错误时,我发现A
中的错误确实很大,甚至比相应的值高两个数量级。
经验告诉我,这些较大的差异可能是由于参数A
可能与其他任何参数相关联。为了检验这一假设,我针对A
和B
的值绘制了C
的值。我看到,实际上,出现了A=a*B^b
形式的幂律关系,这在物理上是可以接受的。
是否有一种方法可以告诉curve_fit
处理这种相关性,而不必引入新参数(例如a
和b
)以使模型具有最低的方差可能吗?
解决方法
尝试使用method = 'trf'
作为适合您的参数。这样可以避免使用最小二乘法,并且可以使用雅可比行列的伪逆。我相信特征值为零的雅可比行列式应该不是问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。