2010-11-26 25 views
3

有没有人有此算法的代码?任何基于C的编程语言都可以,但我更喜欢C#。Excel GoalSeek算法

我可以尝试实现它,但我敢肯定,我不是第一个......

编辑:这不是功课,这是一个“给我德codez”问题:DI只是不”不想重新发明轮子

+2

我不明白这个问题出了什么问题。 – 2011-09-14 00:02:27

回答

8

GoalSeek最有可能使用Bisection method

在数学二分法是 反复平分的间隔的求根方法,然后选择子区间,其中 根必须说谎进一步处理。这是一种非常简单和强大的方法,但它也相对较慢。因此,通常使用 来获得对于解决方案的粗略近似,然后将该解作为更快速收敛方法的起点。 1方法 也称间隔减半方法,2二进制搜索法 方法[3]或二分法。[4]

我发现了一个C#实现此处Bisection-based XIRR implementation in C#

3

有在看:

https://www.nuget.org/packages/TridentGoalSeek/

你的算法需要实现IGoalSeekAlgorithm接口。 然后用法如下:

var myAlgorithm = new MyAlgorithm(90463.45M, 200); 
var goalSeeker = new GoalSeek(myAlgorithm); 
var seekResult = goalSeeker.SeekResult(96178.21M);