Python优化
我有两个测量点的数据,还有两个计算点的数据。我正试图将这些数据之间的差异最小化。e、 g 尽量减少点1(测量值)和点1(计算值)之间的差异。 尽量减少点2(测量值)和点2(计算值)之间的差异 点1(计算)和点2(计算)的值作为二次分布的一部分连接:a*x^2+b*x+c。我只想更改“a”参数 因此,我试图通过仅更改一个参数来最小化点1和点2的差异Python优化,python,optimization,scipy,solver,Python,Optimization,Scipy,Solver,我有两个测量点的数据,还有两个计算点的数据。我正试图将这些数据之间的差异最小化。e、 g 尽量减少点1(测量值)和点1(计算值)之间的差异。 尽量减少点2(测量值)和点2(计算值)之间的差异 点1(计算)和点2(计算)的值作为二次分布的一部分连接:a*x^2+b*x+c。我只想更改“a”参数 因此,我试图通过仅更改一个参数来最小化点1和点2的差异 我将如何使用python实现这一点?我正在考虑使用scipy,什么是合适的优化工具?scipy.optimize有一些很好的方法,比如fsolve、r
我将如何使用python实现这一点?我正在考虑使用scipy,什么是合适的优化工具?
scipy.optimize
有一些很好的方法,比如fsolve
、root
、和最小化。阅读文档以了解它们是如何工作的,但这里有一个简短的示例来查找线性函数的根:
import scipy
from scipy.optimize import fsolve
def function_to_find_root_of(x, slope, yintercept):
''' x is a list of all the variables you need to minimize
the other variables will be passed in as constants '''
return slope*x + yintercept
m = 4
b = 7
print fsolve(function_to_find_root_of, x0=[10], args=(m, b), xtol=1e-10)
#prints [-1.75], which is the root of y=4x+7