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
开始,并将计算值合并到表中,这需要更多的编码工作,但可能会有一些交叉,它确实会产生更适合的采样