【发布时间】:2016-05-26 11:06:39
【问题描述】:
假设我定义了一个名为computeValue (double x)的函数:
- 其输入是双精度值
- 返回一个值,该值是通过使用数组的元素执行一组特定的操作获得的,如下所述。
另外,我们还有上面提到的array那个
- 是某个类的成员
- 仅包含 4 个位置。
- 第 1 个位置包含某个值,第 4 个位置包含另一个值,将作为我们函数的输入
- (棘手的地方来了),数组的第二个和第三个值应该是数组的位置 1 和 4 之间的线性插值的结果。也就是说,如果我们修改数组的位置 1 或 4,那么位置 2 和 3 应该会根据插值方法自动改变它们的值。
我的目标是调用寻根算法(例如 Newton-Raphson、正割法等),旨在最小化以下表达式:
f = CONSTANT - computeValue(array[4])
正如您可能已经观察到的那样,问题是每次我的寻根例程修改数组的第 4 个元素以获得新的解决方案时,我的数组的位置 2 和 3 应该相应地修改,因为它们是插值的结果(如上面第 4 点所述),从而改变了computeValue 的结果。
当根查找算法朝着根方向工作时,使数组的值动态变化的可能方法是什么?也许与存储定义插值的 lambda 表达式的数组有关?
【问题讨论】:
标签: c# arrays algorithm newtons-method linear-interpolation