让我们假设一个函数
f(x,y) = z
现在,我要选择x,以便f的输出与实际数据匹配,并且y以等距步长从1开始减小到零。输出是通过一组微分方程在函数f中计算的。
如何选择x,以使实际输出的误差尽可能小。假设我知道一组z-值,即
f(x,1) = z_1
f(x,0.9) = z_2
f(x,0.8) = z_3
现在发现x
,对真实数据的错误z_1,z_2,z_3
是最小的。一个人怎么能做到这一点?
优化的一种常见方法是最小二乘拟合,在该方法中,你基本上会尝试查找参数,以sum (f(params,xdata_i) - ydata_i))^2
使给定xdata
和最小化平方和:ydata
。在你的情况下:params
将为x
,分别xdata_i
为1、0.9和0.8以及ydata_i
z_1,z_2和z_3。
你应该考虑软件包scipy.optimize。它用于查找函数的参数。我认为此页面为如何使用它提供了很好的示例。