Optimization 同时查找多个函数值的x 问题
给定一个函数Optimization 同时查找多个函数值的x 问题,optimization,numerical-methods,newtons-method,Optimization,Numerical Methods,Newtons Method,给定一个函数f和一个感兴趣的值列表[y1,y2,…,yn],如何查找列表[x1,x2,…,xn],从而使每个i的f(xi)=yi 我知道有很多根查找算法,我们可以使用其中任何一种来查找f-yi的根来查找xi。但是,至少对于二分法,如果我可以重用计算值,那么总时间应该减少,特别是如果计算f非常耗时,对吗 例子 例如,使用对分方法,我希望找到[x1,x2],这样f([x1,x2])=[1,5]。当查找y1=1时,将计算这些值 +------+-----+----+ | iter | x | y
f
和一个感兴趣的值列表[y1,y2,…,yn]
,如何查找列表[x1,x2,…,xn]
,从而使每个i
的f(xi)=yi
我知道有很多根查找算法,我们可以使用其中任何一种来查找f-yi的根
来查找xi
。但是,至少对于二分法,如果我可以重用计算值,那么总时间应该减少,特别是如果计算f
非常耗时,对吗
例子
例如,使用对分方法,我希望找到[x1,x2]
,这样f([x1,x2])=[1,5]
。当查找y1=1
时,将计算这些值
+------+-----+----+
| iter | x | y |
+------+-----+----+
| 1 | 8 | 14 |
+------+-----+----+
| 2 | 4 | 6 |
+------+-----+----+
| 3 | 2 | 2 |
+------+-----+----+
| 4 | 1 | 0 |
+------+-----+----+
| 5 | 1.5 | 1 |
+------+-----+----+
因此x1=1.5
。在查找y2=5
时,如果我们可以利用评估值
+------+-----+---+
| iter | x | y |
+------+-----+---+
| 1 | 3 | 4 | <- because 2, 4 are evaluated
+------+-----+---+
| 2 | 3.5 | 5 |
+------+-----+---+
+------+-----+---+
|iter | x | y|
+------+-----+---+
|1 | 3 | 4 |您可以在给定范围内制作函数表,xs=arange(xa,xb,h)
使用一些区间和样本密度的合理值,通过ys=f(xs)
计算函数表,然后使用反向插值获得寻根方法的起点,xi0=interp(yi,ys,xs)
。对于二分法或任何其他括号方法,可以从间隔[xi0-h,xi0+h]
开始
这是对函数值的全局信息的最系统的使用。然后,在根查找器中获得的值过于局部,无法对上述函数表进行必要的改进
但是继续做实验吧。从一个大的h
开始,并将计算值合并到表中,这需要更多的编码工作,但可能会有一些交叉,它确实会产生更适合的采样